YES 2019-05-11 07:09:41,349 INFO [UltimateCore.java:185]: Initializing application 2019-05-11 07:09:41,352 INFO [UltimateCore.java:202]: -------------------------------------------------------------------------------- 2019-05-11 07:09:41,356 INFO [PluginFactory.java:62]: -------------------------------------------------------------------------------- 2019-05-11 07:09:41,356 INFO [PluginFactory.java:63]: Detecting plugins... 2019-05-11 07:09:41,357 INFO [PluginFactory.java:287]: 1 IController plugins available 2019-05-11 07:09:41,357 INFO [PluginFactory.java:287]: 4 ISource plugins available 2019-05-11 07:09:41,358 INFO [PluginFactory.java:287]: 1 IOutput plugins available 2019-05-11 07:09:41,358 INFO [PluginFactory.java:287]: 10 IGenerator plugins available 2019-05-11 07:09:41,359 INFO [PluginFactory.java:287]: 5 IAnalysis plugins available 2019-05-11 07:09:41,362 INFO [PluginFactory.java:241]: Loaded controller UltimateCore 2019-05-11 07:09:41,362 INFO [PluginFactory.java:70]: Finished detecting plugins! 2019-05-11 07:09:41,363 INFO [PluginFactory.java:71]: Loading services ... 2019-05-11 07:09:41,363 INFO [PluginFactory.java:272]: 0 IServiceFactory services available 2019-05-11 07:09:41,363 INFO [PluginFactory.java:73]: Finished loading services! 2019-05-11 07:09:41,363 INFO [PluginFactory.java:74]: -------------------------------------------------------------------------------- 2019-05-11 07:09:41,365 INFO [SettingsManager.java:46]: Loading settings from ./../termcomp2015.epf 2019-05-11 07:09:43,615 INFO [SettingsManager.java:54]: Loading preferences was successful 2019-05-11 07:09:43,615 INFO [SettingsManager.java:55]: Preferences different from defaults: 2019-05-11 07:09:43,616 INFO [PluginFactory.java:178]: -------------------------------------------------------------------------------- 2019-05-11 07:09:43,616 INFO [PluginFactory.java:179]: Loading all admissible plugins (creating one instance, loading preferences) 2019-05-11 07:09:43,971 INFO [PluginFactory.java:196]: Finished loading 20 admissible plugins (all were admissible) 2019-05-11 07:09:43,972 INFO [PluginFactory.java:198]: -------------------------------------------------------------------------------- 2019-05-11 07:09:43,972 INFO [SettingsManager.java:61]: Preferences of LassoRanker differ from their defaults: 2019-05-11 07:09:43,972 INFO [SettingsManager.java:63]: * Only non-decreasing invariants=true 2019-05-11 07:09:43,972 INFO [SettingsManager.java:63]: * Termination analysis=LINEAR_WITH_GUESSES 2019-05-11 07:09:43,973 INFO [SettingsManager.java:63]: * SMT solver command=z3 -smt2 -in SMTLIB2_COMPLIANT=true 2019-05-11 07:09:43,973 INFO [SettingsManager.java:63]: * Nontermination analysis=LINEAR_WITH_GUESSES 2019-05-11 07:09:43,973 INFO [SettingsManager.java:61]: Preferences of BlockEncoding differ from their defaults: 2019-05-11 07:09:43,973 INFO [SettingsManager.java:63]: * Rating-Boundary (empty for LBE)=0 2019-05-11 07:09:43,973 INFO [SettingsManager.java:63]: * Strategy for the edge rating=DISJUNCTIVE_RATING 2019-05-11 07:09:43,974 INFO [SettingsManager.java:61]: Preferences of BuchiAutomizer differ from their defaults: 2019-05-11 07:09:43,974 INFO [SettingsManager.java:63]: * Lasso Analysis=Linear_with_guesses 2019-05-11 07:09:43,974 INFO [SettingsManager.java:63]: * Use external solver (rank synthesis)=false 2019-05-11 07:09:43,974 INFO [SettingsManager.java:63]: * Buchi interpolant automaton=StagedBlast 2019-05-11 07:09:43,974 INFO [SettingsManager.java:63]: * Construct termination proof for TermComp=true 2019-05-11 07:09:43,975 INFO [SettingsManager.java:61]: Preferences of CACSL2BoogieTranslator differ from their defaults: 2019-05-11 07:09:43,975 INFO [SettingsManager.java:63]: * Check unreachability of error function in SV-COMP mode=false 2019-05-11 07:09:43,975 INFO [SettingsManager.java:63]: * Size of pointer (in bytes)=8 2019-05-11 07:09:43,975 INFO [SettingsManager.java:63]: * Check if freed pointer was valid=false 2019-05-11 07:09:43,975 INFO [SettingsManager.java:63]: * How to treat unsigned ints differently from normal ones=IGNORE 2019-05-11 07:09:43,975 INFO [SettingsManager.java:61]: Preferences of CodeCheck differ from their defaults: 2019-05-11 07:09:43,976 INFO [SettingsManager.java:63]: * Timeout in seconds=100000 2019-05-11 07:09:43,976 INFO [SettingsManager.java:63]: * The redirection strategy for Impulse=RANDOmSTRONGEST 2019-05-11 07:09:43,976 INFO [SettingsManager.java:61]: Preferences of RCFGBuilder differ from their defaults: 2019-05-11 07:09:43,976 INFO [SettingsManager.java:63]: * Size of a code block=SequenceOfStatements 2019-05-11 07:09:43,976 INFO [SettingsManager.java:63]: * Convert code blocks to CNF=false 2019-05-11 07:09:43,977 INFO [SettingsManager.java:63]: * To the following directory=/home/matthias/ultimate/dump 2019-05-11 07:09:43,977 INFO [SettingsManager.java:63]: * Command for external solver=./../z3/z3 SMTLIB2_COMPLIANT=true -memory:4560 -smt2 -in -t:12000 2019-05-11 07:09:43,977 INFO [SettingsManager.java:61]: Preferences of TraceAbstraction differ from their defaults: 2019-05-11 07:09:43,977 INFO [SettingsManager.java:63]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true 2019-05-11 07:09:43,977 INFO [SettingsManager.java:61]: Preferences of UltimateCore differ from their defaults: 2019-05-11 07:09:43,978 INFO [SettingsManager.java:63]: * Log level for plugins=warn 2019-05-11 07:09:43,978 INFO [SettingsManager.java:61]: Preferences of UltimateCore differ from their defaults: 2019-05-11 07:09:43,978 INFO [SettingsManager.java:63]: * Log level for plugins=warn 2019-05-11 07:09:43,978 INFO [UltimateCore.java:76]: Initializing controller ... 2019-05-11 07:09:44,215 INFO [PersistenceAwareModelManager.java:56]: Repository-Root is: /tmp 2019-05-11 07:09:44,222 INFO [ToolchainManager.java:402]: [Toolchain 1]: Parser CDTParser is usable for /export/starexec/sandbox2/benchmark/theBenchmark.c 2019-05-11 07:09:44,222 INFO [ToolchainManager.java:214]: [Toolchain 1]: Parser(s) successfully initiated... 2019-05-11 07:09:44,225 INFO [ToolchainManager.java:187]: [Toolchain 1]: Toolchain data selected. 2019-05-11 07:09:44,226 INFO [PluginConnector.java:252]: Initializing CDTParser... 2019-05-11 07:09:44,227 INFO [PluginConnector.java:257]: CDTParser initialized 2019-05-11 07:09:44,227 INFO [ToolchainManager.java:355]: [Toolchain 1]: Parsing single file: /export/starexec/sandbox2/benchmark/theBenchmark.c 2019-05-11 07:09:44,353 INFO [ToolchainManager.java:238]: ####################### [Toolchain 1] ####################### 2019-05-11 07:09:44,355 INFO [ToolchainWalker.java:61]: Walking toolchain with 6 elements. 2019-05-11 07:09:44,355 INFO [PluginConnector.java:90]: ------------------------CACSL2BoogieTranslator---------------------------- 2019-05-11 07:09:44,355 INFO [PluginConnector.java:252]: Initializing CACSL2BoogieTranslator... 2019-05-11 07:09:44,359 INFO [PluginConnector.java:257]: CACSL2BoogieTranslator initialized 2019-05-11 07:09:44,360 INFO [PluginConnector.java:162]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,470 INFO [PluginConnector.java:110]: ------------------------ END CACSL2BoogieTranslator---------------------------- 2019-05-11 07:09:44,470 INFO [PluginConnector.java:90]: ------------------------Boogie Preprocessor---------------------------- 2019-05-11 07:09:44,471 INFO [PluginConnector.java:252]: Initializing Boogie Preprocessor... 2019-05-11 07:09:44,471 INFO [PluginConnector.java:257]: Boogie Preprocessor initialized 2019-05-11 07:09:44,486 INFO [PluginConnector.java:162]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,491 INFO [PluginConnector.java:162]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,491 INFO [PluginConnector.java:162]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,493 INFO [PluginConnector.java:162]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,495 INFO [PluginConnector.java:162]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,495 INFO [PluginConnector.java:162]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,496 INFO [PluginConnector.java:110]: ------------------------ END Boogie Preprocessor---------------------------- 2019-05-11 07:09:44,497 INFO [PluginConnector.java:90]: ------------------------RCFGBuilder---------------------------- 2019-05-11 07:09:44,497 INFO [PluginConnector.java:252]: Initializing RCFGBuilder... 2019-05-11 07:09:44,497 INFO [PluginConnector.java:257]: RCFGBuilder initialized 2019-05-11 07:09:44,498 INFO [PluginConnector.java:162]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,594 INFO [MonitoredProcess.java:173]: Starting monitored process 1 with ./../z3/z3 SMTLIB2_COMPLIANT=true -memory:4560 -smt2 -in -t:12000 (exit command is (exit), workingDir is null) 2019-05-11 07:09:44,596 INFO [MonitoredProcess.java:275]: Waiting until toolchain timeout for monitored process 1 with ./../z3/z3 SMTLIB2_COMPLIANT=true -memory:4560 -smt2 -in -t:12000 2019-05-11 07:09:44,705 INFO [PluginConnector.java:110]: ------------------------ END RCFGBuilder---------------------------- 2019-05-11 07:09:44,705 INFO [PluginConnector.java:90]: ------------------------BlockEncoding---------------------------- 2019-05-11 07:09:44,706 INFO [PluginConnector.java:252]: Initializing BlockEncoding... 2019-05-11 07:09:44,707 INFO [PluginConnector.java:257]: BlockEncoding initialized 2019-05-11 07:09:44,707 INFO [PluginConnector.java:162]: Executing the observer BlockEncodingObserver from plugin BlockEncoding for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,721 INFO [PluginConnector.java:162]: Executing the observer MinModelConversionObserver from plugin BlockEncoding for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:44,736 WARN [TransFormula.java:607]: CodeBlock already infeasible 2019-05-11 07:09:44,737 WARN [TransFormula.java:607]: CodeBlock already infeasible 2019-05-11 07:09:44,769 INFO [PluginConnector.java:110]: ------------------------ END BlockEncoding---------------------------- 2019-05-11 07:09:44,770 INFO [PluginConnector.java:90]: ------------------------TraceAbstraction---------------------------- 2019-05-11 07:09:44,770 INFO [PluginConnector.java:252]: Initializing TraceAbstraction... 2019-05-11 07:09:44,771 INFO [PluginConnector.java:257]: TraceAbstraction initialized 2019-05-11 07:09:44,771 INFO [PluginConnector.java:162]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.blockencoding CFG 11.05 07:09:44" (1/5) ... 2019-05-11 07:09:44,772 INFO [PluginConnector.java:162]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 11.05 07:09:44" (2/5) ... 2019-05-11 07:09:44,773 INFO [PluginConnector.java:162]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "BlockEncodedModel CFG 11.05 07:09:44" (3/5) ... 2019-05-11 07:09:44,773 INFO [PluginConnector.java:162]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "CDTParser AST 11.05 07:09:44" (4/5) ... 2019-05-11 07:09:44,773 INFO [PluginConnector.java:162]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 11.05 07:09:44" (5/5) ... Automizer settings: Hoare:true NWA Interpolation:ForwardPredicates Determinization: PREDICATE_ABSTRACTION 2019-05-11 07:09:44,866 INFO [PluginConnector.java:110]: ------------------------ END TraceAbstraction---------------------------- 2019-05-11 07:09:44,867 INFO [PluginConnector.java:90]: ------------------------BuchiAutomizer---------------------------- 2019-05-11 07:09:44,867 INFO [PluginConnector.java:252]: Initializing BuchiAutomizer... 2019-05-11 07:09:44,867 INFO [PluginConnector.java:257]: BuchiAutomizer initialized 2019-05-11 07:09:44,869 INFO [PluginConnector.java:162]: Executing the observer BuchiAutomizerObserver from plugin BuchiAutomizer for "de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 11.05 07:09:44" (1/1) ... 2019-05-11 07:09:50,128 INFO [PluginConnector.java:110]: ------------------------ END BuchiAutomizer---------------------------- 2019-05-11 07:09:50,129 INFO [Benchmark.java:150]: Toolchain (without parser) took 5775.05 ms. Allocated memory was 643.3 MB in the beginning and 744.0 MB in the end (delta: 100.7 MB). Free memory was 604.2 MB in the beginning and 701.5 MB in the end (delta: -97.3 MB). Peak memory consumption was 3.3 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,131 INFO [Benchmark.java:150]: CDTParser took 114.69 ms. Allocated memory is still 643.3 MB. Free memory was 612.2 MB in the beginning and 605.5 MB in the end (delta: 6.7 MB). Peak memory consumption was 6.7 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,132 INFO [Benchmark.java:150]: CACSL2BoogieTranslator took 114.84 ms. Allocated memory is still 643.3 MB. Free memory was 604.2 MB in the beginning and 600.2 MB in the end (delta: 4.0 MB). Peak memory consumption was 4.0 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,133 INFO [Benchmark.java:150]: Boogie Preprocessor took 26.17 ms. Allocated memory is still 643.3 MB. Free memory was 600.2 MB in the beginning and 598.8 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,134 INFO [Benchmark.java:150]: RCFGBuilder took 208.49 ms. Allocated memory is still 643.3 MB. Free memory was 598.8 MB in the beginning and 582.5 MB in the end (delta: 16.3 MB). Peak memory consumption was 16.3 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,135 INFO [Benchmark.java:150]: BlockEncoding took 64.16 ms. Allocated memory is still 643.3 MB. Free memory was 582.5 MB in the beginning and 577.2 MB in the end (delta: 5.3 MB). Peak memory consumption was 5.3 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,135 INFO [Benchmark.java:150]: TraceAbstraction took 96.79 ms. Allocated memory is still 643.3 MB. Free memory was 577.2 MB in the beginning and 571.8 MB in the end (delta: 5.3 MB). Peak memory consumption was 5.3 MB. Max. memory is 53.1 GB 2019-05-11 07:09:50,136 INFO [Benchmark.java:150]: BuchiAutomizer took 5261.24 ms. Allocated memory was 643.3 MB in the beginning and 744.0 MB in the end (delta: 100.7 MB). Free memory was 571.8 MB in the beginning and 701.5 MB in the end (delta: -129.7 MB). There was no memory consumed. Max. memory is 53.1 GB 2019-05-11 07:09:50,143 INFO [ResultNotifier.java:119]: RESULT: Ultimate could not prove your program: Toolchain returned no Result. RESULT: Ultimate could not prove your program: Toolchain returned no Result. 2019-05-11 07:09:50,143 INFO [ToolchainManager.java:286]: ####################### End [Toolchain 1] ####################### 2019-05-11 07:09:50,143 INFO [BasicToolchainJob.java:73]: --- Results --- 2019-05-11 07:09:50,143 INFO [BasicToolchainJob.java:75]: * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: 2019-05-11 07:09:50,143 INFO [BasicToolchainJob.java:89]: - AllSpecificationsHoldResult: All specifications hold 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:95]: We were not able to verify any specifiation because the program does not contain any specification. 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:89]: - ProcedureContractResult [Line: 13]: Procedure Contract for main 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:95]: Derived contract for procedure main: 1 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:89]: - InvariantResult [Line: 21]: Loop Invariant 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:95]: Derived loop invariant: 1 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:89]: - BenchmarkResult: Ultimate Automizer benchmark data 2019-05-11 07:09:50,144 INFO [BasicToolchainJob.java:95]: CFG has 14 locations, 0 error locations. Automizer needed 0.0s and 0 iterations. Automata difference (including EdgeChecker) took 0.0s. Computation of Hoare annotation took 0.0s. Minimization removed 0 states and took 0.0s. Biggest automaton had 14 states and ocurred in iteration 0. InterpolantCoveringCapability: 0/0 ICC %: NaN EdgeCheckerBenchmarkData: No data available TraceCheckerBenchmark: No data available InterpolantConsolidationBenchmark: No data available 2019-05-11 07:09:50,145 INFO [BasicToolchainJob.java:75]: * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.buchiautomizer: 2019-05-11 07:09:50,145 INFO [BasicToolchainJob.java:89]: - BenchmarkResult: Constructed decomposition of program 2019-05-11 07:09:50,145 INFO [BasicToolchainJob.java:95]: Your program was decomposed into 13 terminating modules (5 trivial, 6 deterministic, 2 nondeterministic). One deterministic module has affine ranking function y + 0 and consists of 7 locations. One deterministic module has affine ranking function y + 0 and consists of 6 locations. One deterministic module has affine ranking function x + 0 and consists of 6 locations. One deterministic module has affine ranking function y + 0 and consists of 8 locations. One deterministic module has affine ranking function y + 0 and consists of 11 locations. One deterministic module has affine ranking function y + 0 and consists of 10 locations. One nondeterministic module has affine ranking function y + 0 and consists of 6 locations. One nondeterministic module has affine ranking function x + 0 and consists of 6 locations. 5 modules have a trivial ranking function, the largest among these consists of 7 locations. 2019-05-11 07:09:50,145 INFO [BasicToolchainJob.java:89]: - BenchmarkResult: Constructed termination proof in form of nested word automata 2019-05-11 07:09:50,146 INFO [BasicToolchainJob.java:95]: Your program was decomposed into the following automata NestedWordAutomaton finiteAutomatonIteration3 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "638#unseeded" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "655#(<= main_~y~2 oldRank0)" "671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" }, initialStates = {"638#unseeded" }, finalStates = {"654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("638#unseeded" "call #t~ret3 := main();" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("638#unseeded" "call ULTIMATE.init();" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "655#(<= main_~y~2 oldRank0)") ("655#(<= main_~y~2 oldRank0)" "assume true;" "655#(<= main_~y~2 oldRank0)") ("655#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))") ("671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") ("671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") }, returnTransitions = { ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "638#unseeded" "return;" "638#unseeded") } ); NestedWordAutomaton finiteAutomatonIteration5 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "2036#(<= main_~x~2 oldRank0)" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "2014#unseeded" }, initialStates = {"2014#unseeded" }, finalStates = {"2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" }, callTransitions = { ("2014#unseeded" "call #t~ret3 := main();" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2014#unseeded" "call ULTIMATE.init();" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2036#(<= main_~x~2 oldRank0)" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2036#(<= main_~x~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))") ("2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") }, returnTransitions = { ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2014#unseeded" "return;" "2014#unseeded") } ); NestedWordAutomaton finiteAutomatonIteration7 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"2688#(<= (+ main_~x~2 1) oldRank0)" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "2626#(<= main_~y~2 oldRank0)" "2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "2604#unseeded" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" }, initialStates = {"2604#unseeded" }, finalStates = {"2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("2604#unseeded" "call #t~ret3 := main();" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2604#unseeded" "call ULTIMATE.init();" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))") ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("2626#(<= main_~y~2 oldRank0)" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2626#(<= main_~y~2 oldRank0)") ("2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, returnTransitions = { ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2604#unseeded" "return;" "2604#unseeded") } ); NestedWordAutomaton finiteAutomatonIteration8 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"3776#(<= (+ main_~x~2 1) oldRank0)" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "3689#unseeded" "3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "3711#(<= main_~y~2 oldRank0)" }, initialStates = {"3689#unseeded" }, finalStates = {"3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("3689#unseeded" "call #t~ret3 := main();" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3689#unseeded" "call ULTIMATE.init();" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume true;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume true;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))") ("3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("3711#(<= main_~y~2 oldRank0)" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") }, returnTransitions = { ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "3689#unseeded" "return;" "3689#unseeded") } ); NestedWordAutomaton finiteAutomatonIteration9 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "6465#(<= (+ main_~x~2 1) oldRank0)" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "6312#unseeded" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "6335#(<= main_~y~2 oldRank0)" }, initialStates = {"6312#unseeded" }, finalStates = {"6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("6312#unseeded" "call #t~ret3 := main();" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6312#unseeded" "call ULTIMATE.init();" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6335#(<= main_~y~2 oldRank0)") ("6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))") ("6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))" "assume true;" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))") ("6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("6335#(<= main_~y~2 oldRank0)" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") }, returnTransitions = { ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "6312#unseeded" "return;" "6312#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration1 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "68#(<= main_~y~2 oldRank0)" "85#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "58#unseeded" "27#false" "61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "77#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" }, initialStates = {"58#unseeded" }, finalStates = {"67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "27#false" }, callTransitions = { ("58#unseeded" "call #t~ret3 := main();" "61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("58#unseeded" "call ULTIMATE.init();" "61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "68#(<= main_~y~2 oldRank0)") ("67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "68#(<= main_~y~2 oldRank0)") ("67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume !true;" "27#false") ("68#(<= main_~y~2 oldRank0)" "assume true;" "68#(<= main_~y~2 oldRank0)") ("68#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "77#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))") ("68#(<= main_~y~2 oldRank0)" "assume !true;" "27#false") ("68#(<= main_~y~2 oldRank0)" "assume !(~y~2 > 0 && ~x~2 > 0);" "68#(<= main_~y~2 oldRank0)") ("68#(<= main_~y~2 oldRank0)" "#res := 0;assume true;" "68#(<= main_~y~2 oldRank0)") ("85#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("27#false" "assume true;" "27#false") ("27#false" "#res := 0;assume true;" "27#false") ("61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "67#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("77#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "85#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") ("77#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "85#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") }, returnTransitions = { ("27#false" "58#unseeded" "return;" "27#false") ("61#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "58#unseeded" "return;" "58#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration2 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"224#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "219#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "190#unseeded" "206#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "207#(<= main_~y~2 oldRank0)" }, initialStates = {"190#unseeded" }, finalStates = {"206#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("190#unseeded" "call #t~ret3 := main();" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("190#unseeded" "call ULTIMATE.init();" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("224#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "206#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "206#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("219#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "224#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") ("219#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "224#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") ("206#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "207#(<= main_~y~2 oldRank0)") ("207#(<= main_~y~2 oldRank0)" "assume true;" "207#(<= main_~y~2 oldRank0)") ("207#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "219#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))") }, returnTransitions = { ("193#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "190#unseeded" "return;" "190#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration3 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "638#unseeded" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "655#(<= main_~y~2 oldRank0)" "671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" }, initialStates = {"638#unseeded" }, finalStates = {"654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("638#unseeded" "call #t~ret3 := main();" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("638#unseeded" "call ULTIMATE.init();" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("654#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "655#(<= main_~y~2 oldRank0)") ("655#(<= main_~y~2 oldRank0)" "assume true;" "655#(<= main_~y~2 oldRank0)") ("655#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))") ("671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") ("671#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "678#(and (<= main_~y~2 oldRank0) (<= 1 main_~y~2) (<= main_~z~2 oldRank0) (<= 1 oldRank0))") }, returnTransitions = { ("641#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "638#unseeded" "return;" "638#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration4 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"977#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "996#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "949#(<= main_~x~2 oldRank0)" "927#unseeded" }, initialStates = {"927#unseeded" }, finalStates = {"948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" }, callTransitions = { ("927#unseeded" "call #t~ret3 := main();" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("927#unseeded" "call ULTIMATE.init();" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("977#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "996#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("977#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "996#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "949#(<= main_~x~2 oldRank0)") ("948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "949#(<= main_~x~2 oldRank0)") ("996#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "948#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") ("949#(<= main_~x~2 oldRank0)" "assume true;" "949#(<= main_~x~2 oldRank0)") ("949#(<= main_~x~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "977#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))") }, returnTransitions = { ("930#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "927#unseeded" "return;" "927#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration5 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "2036#(<= main_~x~2 oldRank0)" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "2014#unseeded" }, initialStates = {"2014#unseeded" }, finalStates = {"2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" }, callTransitions = { ("2014#unseeded" "call #t~ret3 := main();" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2014#unseeded" "call ULTIMATE.init();" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2036#(<= main_~x~2 oldRank0)" "assume true;" "2036#(<= main_~x~2 oldRank0)") ("2036#(<= main_~x~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2064#(and (<= 1 main_~x~2) (<= main_~x~2 oldRank0))") ("2085#(and (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= main_~x~2 oldRank0) (<= 1 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2035#(and (<= 0 oldRank0) (<= (+ main_~x~2 1) oldRank0))") }, returnTransitions = { ("2017#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2014#unseeded" "return;" "2014#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration6 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"2688#(<= (+ main_~x~2 1) oldRank0)" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "2626#(<= main_~y~2 oldRank0)" "2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "2604#unseeded" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" }, initialStates = {"2604#unseeded" }, finalStates = {"2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("2604#unseeded" "call #t~ret3 := main();" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2604#unseeded" "call ULTIMATE.init();" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))") ("2688#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("2626#(<= main_~y~2 oldRank0)" "assume true;" "2626#(<= main_~y~2 oldRank0)") ("2626#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("2740#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2761#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2626#(<= main_~y~2 oldRank0)") ("2667#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2688#(<= (+ main_~x~2 1) oldRank0)") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "2625#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, returnTransitions = { ("2607#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "2604#unseeded" "return;" "2604#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration8 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"3776#(<= (+ main_~x~2 1) oldRank0)" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "3689#unseeded" "3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "3711#(<= main_~y~2 oldRank0)" }, initialStates = {"3689#unseeded" }, finalStates = {"3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("3689#unseeded" "call #t~ret3 := main();" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3689#unseeded" "call ULTIMATE.init();" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3776#(<= (+ main_~x~2 1) oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume true;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))") ("3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))" "assume true;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))") ("3971#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("4006#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= (+ main_~x~2 2) oldRank0) (<= (+ main_~z~2 2) oldRank0) (<= main_~z~2 oldRank0) (<= 3 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3863#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3776#(<= (+ main_~x~2 1) oldRank0)") ("3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3711#(<= main_~y~2 oldRank0)") ("3866#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3891#(and (<= (+ main_~x~2 1) oldRank0) (<= (+ main_~x~2 2) oldRank0))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3710#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("3711#(<= main_~y~2 oldRank0)" "assume true;" "3711#(<= main_~y~2 oldRank0)") ("3711#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "3752#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") }, returnTransitions = { ("3692#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "3689#unseeded" "return;" "3689#unseeded") } ); NestedWordAutomaton buchiAutomatonIteration9 = ( callAlphabet = {"call #t~ret3 := main();" "call ULTIMATE.init();" }, internalAlphabet = {"assume true;" "assume true;" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "assume !true;" "#res := 0;assume true;" "assume true;" "assume !!(~y~2 > 0 && ~x~2 > 0);" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "assume true;" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "assume !(~y~2 > 0 && ~x~2 > 0);" }, returnAlphabet = {"return;" "return;" }, states = {"6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "6465#(<= (+ main_~x~2 1) oldRank0)" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "6312#unseeded" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "6335#(<= main_~y~2 oldRank0)" }, initialStates = {"6312#unseeded" }, finalStates = {"6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" }, callTransitions = { ("6312#unseeded" "call #t~ret3 := main();" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6312#unseeded" "call ULTIMATE.init();" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") }, internalTransitions = { ("6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6544#(and (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2))") ("6465#(<= (+ main_~x~2 1) oldRank0)" "assume true;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6335#(<= main_~y~2 oldRank0)") ("6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))") ("6563#(and (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume true;" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "havoc ~x~2;havoc ~y~2;havoc ~z~2;~x~2 := #t~nondet0;havoc #t~nondet0;~y~2 := #t~nondet1;havoc #t~nondet1;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))") ("6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))" "assume true;" "6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))") ("6334#(and (<= 0 oldRank0) (<= (+ main_~y~2 1) oldRank0))" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume !(#t~nondet2 != 0);havoc #t~nondet2;~x~2 := ~y~2 + ~x~2;~y~2 := ~z~2 - 1;~z~2 := ~x~2 + ~z~2;" "6589#(and (<= (+ main_~y~2 2) oldRank0) (<= main_~y~2 oldRank0) (<= 2 oldRank0))") ("6574#(and (<= (+ main_~y~2 2) oldRank0) (<= (+ main_~z~2 1) oldRank0) (<= (+ main_~x~2 1) oldRank0) (<= main_~y~2 oldRank0) (<= 1 main_~x~2) (<= main_~z~2 oldRank0) (<= 2 oldRank0))" "assume #t~nondet2 != 0;havoc #t~nondet2;~y~2 := ~y~2 + ~x~2;~x~2 := ~z~2 - 1;~z~2 := ~y~2 + ~z~2;" "6465#(<= (+ main_~x~2 1) oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume !!(~y~2 > 0 && ~x~2 > 0);" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume !(~x~2 > ~y~2);~z~2 := ~x~2;" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") ("6335#(<= main_~y~2 oldRank0)" "assume true;" "6335#(<= main_~y~2 oldRank0)") ("6335#(<= main_~y~2 oldRank0)" "assume ~x~2 > ~y~2;~z~2 := ~y~2;" "6434#(and (<= main_~y~2 oldRank0) (<= main_~z~2 oldRank0))") }, returnTransitions = { ("6315#(and unseeded (or (and |old(unseeded)| unseeded) (and (not unseeded) (not |old(unseeded)|))))" "6312#unseeded" "return;" "6312#unseeded") } ); 2019-05-11 07:09:50,149 INFO [BasicToolchainJob.java:89]: - BenchmarkResult: Timing statistics 2019-05-11 07:09:50,150 INFO [BasicToolchainJob.java:95]: BüchiAutomizer plugin needed 5.2s and 10 iterations. Analysis of lassos took 1.7s. Construction of modules took 0.8s. Büchi inclusion checks took 2.3s. Highest rank in rank-based complementation 3. Minimization removed 507 states and took 0.0s. Non-live state removal took 0.0s Buchi closure took 0.0s. Biggest automaton had 338 states and ocurred in iteration 8. Nontrivial modules had stage [5, 1, 2, 0, 0]. InterpolantCoveringCapabilityFinite: 51/64 InterpolantCoveringCapabilityBuchi: 9/25 EdgeCheckerBenchmarkData: HoareTripleChecks: 58 SDtfs, 17 SDslu, 126 SDs, 0 lazy, 1136 Sat,508 Unsat,0 Unknown,0 NotChecked. HoareTripleCheck time: 0.8s LassoAnalysisResults: nont0 unkn0 SFLI0 SFLT4 conc0 concLT1 SILN0 SILU0 SILI1 SILT3 lasso0 LassoPreprocessingBenchmarks: Termination: inital29 mio100 ax100 hnf96 lsp89 arr100 mio100 lsp100 div100 bol100 ite100 ukn100 eq177 hnf93 smp100 dnf100 smp100 tf104 neg100 sie100 Nontermination: inital29 mio100 ax100 hnf96 lsp89 arr100 mio100 lsp100 div100 bol100 ite100 ukn100 eq177 hnf93 smp100 dnf100 smp100 tf104 neg100 sie100 LassoTerminationAnalysisBenchmarks: ConstraintsSatisfiability: unsat Degree: 0 Time: 4ms VariablesStem: 0 VariablesLoop: 1 DisjunctsStem: 1 DisjunctsLoop: 2 SupportingInvariants: 0 MotzkinApplications: 4 2019-05-11 07:09:50,150 INFO [BasicToolchainJob.java:89]: - TerminationAnalysisResult: Termination proven 2019-05-11 07:09:50,150 INFO [BasicToolchainJob.java:95]: Buchi Automizer proved that your program is terminating 2019-05-11 07:09:50,150 INFO [BasicToolchainJob.java:75]: * Results from UltimateCore: 2019-05-11 07:09:50,151 INFO [BasicToolchainJob.java:89]: - BenchmarkResult: Toolchain Benchmarks 2019-05-11 07:09:50,157 INFO [BasicToolchainJob.java:95]: Benchmark results are: * CDTParser took 114.69 ms. Allocated memory is still 643.3 MB. Free memory was 612.2 MB in the beginning and 605.5 MB in the end (delta: 6.7 MB). Peak memory consumption was 6.7 MB. Max. memory is 53.1 GB * CACSL2BoogieTranslator took 114.84 ms. Allocated memory is still 643.3 MB. Free memory was 604.2 MB in the beginning and 600.2 MB in the end (delta: 4.0 MB). Peak memory consumption was 4.0 MB. Max. memory is 53.1 GB * Boogie Preprocessor took 26.17 ms. Allocated memory is still 643.3 MB. Free memory was 600.2 MB in the beginning and 598.8 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 53.1 GB * RCFGBuilder took 208.49 ms. Allocated memory is still 643.3 MB. Free memory was 598.8 MB in the beginning and 582.5 MB in the end (delta: 16.3 MB). Peak memory consumption was 16.3 MB. Max. memory is 53.1 GB * BlockEncoding took 64.16 ms. Allocated memory is still 643.3 MB. Free memory was 582.5 MB in the beginning and 577.2 MB in the end (delta: 5.3 MB). Peak memory consumption was 5.3 MB. Max. memory is 53.1 GB * TraceAbstraction took 96.79 ms. Allocated memory is still 643.3 MB. Free memory was 577.2 MB in the beginning and 571.8 MB in the end (delta: 5.3 MB). Peak memory consumption was 5.3 MB. Max. memory is 53.1 GB * BuchiAutomizer took 5261.24 ms. Allocated memory was 643.3 MB in the beginning and 744.0 MB in the end (delta: 100.7 MB). Free memory was 571.8 MB in the beginning and 701.5 MB in the end (delta: -129.7 MB). There was no memory consumed. Max. memory is 53.1 GB 2019-05-11 07:09:50,183 INFO [UltimateCore.java:84]: Preparing to exit Ultimate with return code 0 Closed successfully