/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 98 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 551 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) AND (7) JBCTerminationSCC (8) SCCToIRSProof [SOUND, 33 ms] (9) IRSwT (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 15 ms] (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (19) YES (20) JBCTerminationSCC (21) SCCToIRSProof [SOUND, 137 ms] (22) IRSwT (23) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (24) IRSwT (25) IRSwTTerminationDigraphProof [EQUIVALENT, 302 ms] (26) IRSwT (27) IntTRSCompressionProof [EQUIVALENT, 4 ms] (28) IRSwT (29) FilterProof [EQUIVALENT, 0 ms] (30) IntTRS (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] (32) IntTRS (33) RankingReductionPairProof [EQUIVALENT, 27 ms] (34) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: /** * Parts of the below code have been adapted from * * http://www0.cs.ucl.ac.uk/staff/p.ohearn/Talks/SAStalk.pdf * * Based on the motivating example of the paper * * Automatic termination proofs for programs with shape-shifting heaps * Josh Berdine, Byron Cook, Dino Distefano, and Peter W. O’Hearn * In Proc. CAV'06, LNCS 4144, pp. 386 - 400, 2006. */ public class Kernel95 { /** * A reference to the next list element. */ private Kernel95 next; public static void main(String[] args) { int random1 = args[0].length(); int random2 = args[1].length(); //slide68(random1, random2); //slide88(random1, random2); //slide93(random1, random2); slide95(random1, random2); } /** * Create a new list element. * @param n a reference to the next element. */ public Kernel95(final Kernel95 n) { this.next = n; } /** * Create a new cyclical list of a length x. * @param x some length * @return cyclical list of length max(1, x) */ public static Kernel95 create(int x) { Kernel95 last, current; last = current = new Kernel95(null); while (--x > 0) current = new Kernel95(current); return last.next = current; } /** * Check if the last bit of x is > 0. */ private static boolean check(int x) { return x % 2 > 0; } public static void slide68(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; c = c.next; if (check(random2)) { // nondet() p.next = c; //dispose(o); o = null; // Java's garbage collector will notice that the object // previously referenced by o is not referenced any more // and will release it (of course, in the next loop iteration // this would happen anyway); obviously, this does not have // quite the impact of a proper "dispose" operation, which // also renders all other pointer invalid that happen to point // to the same address } else { p = o; } // get a fresh random bit to the end of random2 random2 = random2 / 2; } } public static void slide88(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; //c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; //dispose(o); o = null; // Java's garbage collector will notice that the object // previously referenced by o is not referenced any more // and will release it c = o; // for a faithful translation of the original C code, // let c point to whatever o points to -- the interesting // aspect is that dereferencing this memory location // henceforth is a very bad idea (in C, obviously, this would // not necessarily lead to a clean exception at runtime) } else { p = o; } c = c.next; // get a fresh random bit to the end of random2 random2 = random2 / 2; } } /** * Non-terminating. */ public static void slide93(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; //c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; o.next = o; } else { p = o; } c = c.next; // get a fresh random bit to the end of random2 random2 = random2 / 2; } } public static void slide95(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; o.next = o; } else { p = o; } // get a fresh random bit to the end of random2 random2 = random2 / 2; } } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: /** * Parts of the below code have been adapted from * * http://www0.cs.ucl.ac.uk/staff/p.ohearn/Talks/SAStalk.pdf * * Based on the motivating example of the paper * * Automatic termination proofs for programs with shape-shifting heaps * Josh Berdine, Byron Cook, Dino Distefano, and Peter W. O’Hearn * In Proc. CAV'06, LNCS 4144, pp. 386 - 400, 2006. */ public class Kernel95 { /** * A reference to the next list element. */ private Kernel95 next; public static void main(String[] args) { int random1 = args[0].length(); int random2 = args[1].length(); //slide68(random1, random2); //slide88(random1, random2); //slide93(random1, random2); slide95(random1, random2); } /** * Create a new list element. * @param n a reference to the next element. */ public Kernel95(final Kernel95 n) { this.next = n; } /** * Create a new cyclical list of a length x. * @param x some length * @return cyclical list of length max(1, x) */ public static Kernel95 create(int x) { Kernel95 last, current; last = current = new Kernel95(null); while (--x > 0) current = new Kernel95(current); return last.next = current; } /** * Check if the last bit of x is > 0. */ private static boolean check(int x) { return x % 2 > 0; } public static void slide68(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; c = c.next; if (check(random2)) { // nondet() p.next = c; //dispose(o); o = null; // Java's garbage collector will notice that the object // previously referenced by o is not referenced any more // and will release it (of course, in the next loop iteration // this would happen anyway); obviously, this does not have // quite the impact of a proper "dispose" operation, which // also renders all other pointer invalid that happen to point // to the same address } else { p = o; } // get a fresh random bit to the end of random2 random2 = random2 / 2; } } public static void slide88(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; //c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; //dispose(o); o = null; // Java's garbage collector will notice that the object // previously referenced by o is not referenced any more // and will release it c = o; // for a faithful translation of the original C code, // let c point to whatever o points to -- the interesting // aspect is that dereferencing this memory location // henceforth is a very bad idea (in C, obviously, this would // not necessarily lead to a clean exception at runtime) } else { p = o; } c = c.next; // get a fresh random bit to the end of random2 random2 = random2 / 2; } } /** * Non-terminating. */ public static void slide93(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; //c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; o.next = o; } else { p = o; } c = c.next; // get a fresh random bit to the end of random2 random2 = random2 / 2; } } public static void slide95(int random1, int random2) { Kernel95 h = create(random1); Kernel95 p = h; Kernel95 c = p.next; while (c != h) { Kernel95 o = c; c = c.next; if (check(random2)) { // nondet() Kernel95 e = o.next; p.next = e; o.next = o; } else { p = o; } // get a fresh random bit to the end of random2 random2 = random2 / 2; } } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: Kernel95.main([Ljava/lang/String;)V: Graph of 202 nodes with 1 SCC. Kernel95.create(I)LKernel95;: Graph of 42 nodes with 1 SCC. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 2 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Kernel95.create(I)LKernel95; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 17 IRulesP rules: f860_0_create_Load(EOS(STATIC_860), i82, o74[Kernel95.next]o73) -> f865_0_create_LE(EOS(STATIC_865), i82, i82, o74[Kernel95.next]o73) :|: TRUE f865_0_create_LE(EOS(STATIC_865), i85, i85, o74[Kernel95.next]o73) -> f872_0_create_LE(EOS(STATIC_872), i85, i85, o74[Kernel95.next]o73) :|: TRUE f872_0_create_LE(EOS(STATIC_872), i85, i85, o74[Kernel95.next]o73) -> f880_0_create_New(EOS(STATIC_880), i85, o74[Kernel95.next]o73) :|: i85 > 0 f880_0_create_New(EOS(STATIC_880), i85, o74[Kernel95.next]o73) -> f885_0_create_Duplicate(EOS(STATIC_885), i85, o74[Kernel95.next]o73) :|: TRUE f885_0_create_Duplicate(EOS(STATIC_885), i85, o74[Kernel95.next]o73) -> f890_0_create_Load(EOS(STATIC_890), i85, o74[Kernel95.next]o73) :|: TRUE f890_0_create_Load(EOS(STATIC_890), i85, o74[Kernel95.next]o73) -> f896_0_create_InvokeMethod(EOS(STATIC_896), i85, o74[Kernel95.next]o73) :|: TRUE f896_0_create_InvokeMethod(EOS(STATIC_896), i85, o74[Kernel95.next]o73) -> f907_0__init__Load(EOS(STATIC_907), i85, o74[Kernel95.next]o73) :|: TRUE f907_0__init__Load(EOS(STATIC_907), i85, o74[Kernel95.next]o73) -> f922_0__init__InvokeMethod(EOS(STATIC_922), i85, o74[Kernel95.next]o73) :|: TRUE f922_0__init__InvokeMethod(EOS(STATIC_922), i85, o74[Kernel95.next]o73) -> f942_0__init__Load(EOS(STATIC_942), i85, o74[Kernel95.next]o73) :|: TRUE f942_0__init__Load(EOS(STATIC_942), i85, o74[Kernel95.next]o73) -> f954_0__init__Load(EOS(STATIC_954), i85, o74[Kernel95.next]o73) :|: TRUE f954_0__init__Load(EOS(STATIC_954), i85, o74[Kernel95.next]o73) -> f959_0__init__FieldAccess(EOS(STATIC_959), i85, o74[Kernel95.next]o73) :|: TRUE f959_0__init__FieldAccess(EOS(STATIC_959), i85, o74[Kernel95.next]o73) -> f969_0__init__Return(EOS(STATIC_969), i85, o74[Kernel95.next]o73) :|: TRUE f969_0__init__Return(EOS(STATIC_969), i85, o74[Kernel95.next]o73) -> f973_0_create_Store(EOS(STATIC_973), i85, o74[Kernel95.next]o73) :|: TRUE f973_0_create_Store(EOS(STATIC_973), i85, o74[Kernel95.next]o73) -> f978_0_create_JMP(EOS(STATIC_978), i85, o74[Kernel95.next]o73) :|: TRUE f978_0_create_JMP(EOS(STATIC_978), i85, o74[Kernel95.next]o73) -> f1134_0_create_Inc(EOS(STATIC_1134), i85, o74[Kernel95.next]o73) :|: TRUE f1134_0_create_Inc(EOS(STATIC_1134), i85, o74[Kernel95.next]o73) -> f847_0_create_Inc(EOS(STATIC_847), i85, o82[Kernel95.next]o73) :|: TRUE f847_0_create_Inc(EOS(STATIC_847), i55, o74[Kernel95.next]o73) -> f860_0_create_Load(EOS(STATIC_860), i55 + -1, o74[Kernel95.next]o73) :|: TRUE Combined rules. Obtained 1 IRulesP rules: f860_0_create_Load(EOS(STATIC_860), i82:0, o74[Kernel95.next]o73:0) -> f860_0_create_Load(EOS(STATIC_860), i82:0 - 1, o82[Kernel95.next]o73:0) :|: i82:0 > 0 Filtered constant ground arguments: f860_0_create_Load(x1, x2, x3) -> f860_0_create_Load(x2, x3) EOS(x1) -> EOS Filtered unneeded arguments: f860_0_create_Load(x1, x2) -> f860_0_create_Load(x1) Finished conversion. Obtained 1 rules.P rules: f860_0_create_Load(i82:0) -> f860_0_create_Load(i82:0 - 1) :|: i82:0 > 0 ---------------------------------------- (9) Obligation: Rules: f860_0_create_Load(i82:0) -> f860_0_create_Load(i82:0 - 1) :|: i82:0 > 0 ---------------------------------------- (10) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (11) Obligation: Rules: f860_0_create_Load(i82:0) -> f860_0_create_Load(arith) :|: i82:0 > 0 && arith = i82:0 - 1 ---------------------------------------- (12) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f860_0_create_Load(i82:0) -> f860_0_create_Load(arith) :|: i82:0 > 0 && arith = i82:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f860_0_create_Load(i82:0) -> f860_0_create_Load(arith) :|: i82:0 > 0 && arith = i82:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f860_0_create_Load(i82:0:0) -> f860_0_create_Load(i82:0:0 - 1) :|: i82:0:0 > 0 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f860_0_create_Load(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f860_0_create_Load(i82:0:0) -> f860_0_create_Load(c) :|: c = i82:0:0 - 1 && i82:0:0 > 0 ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f860_0_create_Load(x)] = x The following rules are decreasing: f860_0_create_Load(i82:0:0) -> f860_0_create_Load(c) :|: c = i82:0:0 - 1 && i82:0:0 > 0 The following rules are bounded: f860_0_create_Load(i82:0:0) -> f860_0_create_Load(c) :|: c = i82:0:0 - 1 && i82:0:0 > 0 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Kernel95.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *Kernel95: [next] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (21) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 59 IRulesP rules: f2226_0_slide95_EQ(EOS(STATIC_2226), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) -> f2228_0_slide95_Load(EOS(STATIC_2228), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) :|: TRUE f2228_0_slide95_Load(EOS(STATIC_2228), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) -> f2230_0_slide95_Store(EOS(STATIC_2230), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) :|: TRUE f2230_0_slide95_Store(EOS(STATIC_2230), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) -> f2231_0_slide95_Load(EOS(STATIC_2231), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) :|: TRUE f2231_0_slide95_Load(EOS(STATIC_2231), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) -> f2232_0_slide95_FieldAccess(EOS(STATIC_2232), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) :|: TRUE f2232_0_slide95_FieldAccess(EOS(STATIC_2232), i200, o499[Kernel95.next]o499, o540[Kernel95.next]o500, o540[Kernel95.next]o499, o540[Kernel95.next]o498) -> f2233_0_slide95_FieldAccess(EOS(STATIC_2233), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: o541[Kernel95.next]o500 < o540[Kernel95.next]o500 && o540[Kernel95.next]o500 >= 0 && o541[Kernel95.next]o498 < o540[Kernel95.next]o498 && o540[Kernel95.next]o498 >= 0 f2233_0_slide95_FieldAccess(EOS(STATIC_2233), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2234_0_slide95_Store(EOS(STATIC_2234), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2234_0_slide95_Store(EOS(STATIC_2234), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2235_0_slide95_Load(EOS(STATIC_2235), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2235_0_slide95_Load(EOS(STATIC_2235), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2239_0_slide95_InvokeMethod(EOS(STATIC_2239), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2239_0_slide95_InvokeMethod(EOS(STATIC_2239), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2240_0_check_Load(EOS(STATIC_2240), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2240_0_check_Load(EOS(STATIC_2240), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2241_0_check_ConstantStackPush(EOS(STATIC_2241), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2241_0_check_ConstantStackPush(EOS(STATIC_2241), i200, i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2242_0_check_IntArithmetic(EOS(STATIC_2242), i200, i200, 2, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2242_0_check_IntArithmetic(EOS(STATIC_2242), i200, i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2243_0_check_LE(EOS(STATIC_2243), i200, i200 % 2, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 2 f2243_0_check_LE(EOS(STATIC_2243), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2245_0_check_LE(EOS(STATIC_2245), i200, 0, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 0 f2243_0_check_LE(EOS(STATIC_2243), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2246_0_check_LE(EOS(STATIC_2246), i200, 1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 1 f2245_0_check_LE(EOS(STATIC_2245), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2248_0_check_ConstantStackPush(EOS(STATIC_2248), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: 0 <= 0 && matching1 = 0 f2248_0_check_ConstantStackPush(EOS(STATIC_2248), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2254_0_check_Return(EOS(STATIC_2254), i200, 0, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2254_0_check_Return(EOS(STATIC_2254), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2260_0_slide95_EQ(EOS(STATIC_2260), i200, 0, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 0 f2260_0_slide95_EQ(EOS(STATIC_2260), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2262_0_slide95_Load(EOS(STATIC_2262), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) :|: o541[Kernel95.next]o540 > o541[Kernel95.next]o500 && o541[Kernel95.next]o500 >= 0 && matching1 = 0 f2262_0_slide95_Load(EOS(STATIC_2262), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) -> f2264_0_slide95_Store(EOS(STATIC_2264), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) :|: TRUE f2264_0_slide95_Store(EOS(STATIC_2264), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) -> f2266_0_slide95_Load(EOS(STATIC_2266), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) :|: TRUE f2266_0_slide95_Load(EOS(STATIC_2266), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) -> f2340_0_slide95_Load(EOS(STATIC_2340), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o540) :|: TRUE f2340_0_slide95_Load(EOS(STATIC_2340), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2346_0_slide95_ConstantStackPush(EOS(STATIC_2346), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2346_0_slide95_ConstantStackPush(EOS(STATIC_2346), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2352_0_slide95_IntArithmetic(EOS(STATIC_2352), i200, 2, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2352_0_slide95_IntArithmetic(EOS(STATIC_2352), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2355_0_slide95_Store(EOS(STATIC_2355), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: i212 = i200 / 2 && i212 <= i200 && matching1 = 2 f2355_0_slide95_Store(EOS(STATIC_2355), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2362_0_slide95_JMP(EOS(STATIC_2362), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2362_0_slide95_JMP(EOS(STATIC_2362), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2386_0_slide95_Load(EOS(STATIC_2386), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2386_0_slide95_Load(EOS(STATIC_2386), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2196_0_slide95_Load(EOS(STATIC_2196), i212, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500, o541[Kernel95.next]o499) :|: TRUE f2196_0_slide95_Load(EOS(STATIC_2196), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o498, o501[Kernel95.next]o500, o501[Kernel95.next]o499) -> f2204_0_slide95_Load(EOS(STATIC_2204), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o498, o501[Kernel95.next]o500, o501[Kernel95.next]o499) :|: TRUE f2204_0_slide95_Load(EOS(STATIC_2204), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o498, o501[Kernel95.next]o500, o501[Kernel95.next]o499) -> f2221_0_slide95_EQ(EOS(STATIC_2221), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o498, o501[Kernel95.next]o500, o501[Kernel95.next]o499) :|: TRUE f2221_0_slide95_EQ(EOS(STATIC_2221), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o498, o501[Kernel95.next]o500, o501[Kernel95.next]o499) -> f2226_0_slide95_EQ(EOS(STATIC_2226), i200, o499[Kernel95.next]o499, o501[Kernel95.next]o500, o501[Kernel95.next]o499, o501[Kernel95.next]o498) :|: o501[Kernel95.next]o498 > 0 f2246_0_check_LE(EOS(STATIC_2246), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2251_0_check_ConstantStackPush(EOS(STATIC_2251), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: 1 > 0 && matching1 = 1 f2251_0_check_ConstantStackPush(EOS(STATIC_2251), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2257_0_check_JMP(EOS(STATIC_2257), i200, 1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2257_0_check_JMP(EOS(STATIC_2257), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2261_0_check_Return(EOS(STATIC_2261), i200, 1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 1 f2261_0_check_Return(EOS(STATIC_2261), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2263_0_slide95_EQ(EOS(STATIC_2263), i200, 1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE && matching1 = 1 f2263_0_slide95_EQ(EOS(STATIC_2263), i200, matching1, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2265_0_slide95_Load(EOS(STATIC_2265), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: 1 > 0 && matching1 = 1 f2265_0_slide95_Load(EOS(STATIC_2265), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2267_0_slide95_FieldAccess(EOS(STATIC_2267), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2267_0_slide95_FieldAccess(EOS(STATIC_2267), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2269_0_slide95_Store(EOS(STATIC_2269), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2269_0_slide95_Store(EOS(STATIC_2269), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2271_0_slide95_Load(EOS(STATIC_2271), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2271_0_slide95_Load(EOS(STATIC_2271), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2273_0_slide95_Load(EOS(STATIC_2273), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2273_0_slide95_Load(EOS(STATIC_2273), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2275_0_slide95_FieldAccess(EOS(STATIC_2275), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) :|: TRUE f2275_0_slide95_FieldAccess(EOS(STATIC_2275), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o500, o541[Kernel95.next]o498) -> f2301_0_slide95_FieldAccess(EOS(STATIC_2301), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: o541[Kernel95.next]o500 > 0 f2301_0_slide95_FieldAccess(EOS(STATIC_2301), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2312_0_slide95_FieldAccess(EOS(STATIC_2312), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2301_0_slide95_FieldAccess(EOS(STATIC_2301), i200, o559[Kernel95.next]o559, o541[Kernel95.next]o556, o541[Kernel95.next]o556) -> f2313_0_slide95_FieldAccess(EOS(STATIC_2313), i200, o541[Kernel95.next]o556) :|: TRUE f2312_0_slide95_FieldAccess(EOS(STATIC_2312), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2317_0_slide95_Load(EOS(STATIC_2317), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498new, o541[Kernel95.next]o500) :|: o541[Kernel95.next]o498new <= o541[Kernel95.next]o498 && o541[Kernel95.next]o498 >= 0 f2317_0_slide95_Load(EOS(STATIC_2317), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2324_0_slide95_Load(EOS(STATIC_2324), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2324_0_slide95_Load(EOS(STATIC_2324), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2331_0_slide95_FieldAccess(EOS(STATIC_2331), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2331_0_slide95_FieldAccess(EOS(STATIC_2331), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2338_0_slide95_JMP(EOS(STATIC_2338), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2338_0_slide95_JMP(EOS(STATIC_2338), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) -> f2340_0_slide95_Load(EOS(STATIC_2340), i200, o499[Kernel95.next]o499, o541[Kernel95.next]o498, o541[Kernel95.next]o500) :|: TRUE f2313_0_slide95_FieldAccess(EOS(STATIC_2313), i200, o541[Kernel95.next]o556) -> f2322_0_slide95_Load(EOS(STATIC_2322), i200, o541[Kernel95.next]o556) :|: TRUE f2322_0_slide95_Load(EOS(STATIC_2322), i200, o541[Kernel95.next]o556) -> f2329_0_slide95_Load(EOS(STATIC_2329), i200, o541[Kernel95.next]o556) :|: TRUE f2329_0_slide95_Load(EOS(STATIC_2329), i200, o541[Kernel95.next]o556) -> f2336_0_slide95_FieldAccess(EOS(STATIC_2336), i200, o541[Kernel95.next]o556) :|: TRUE f2336_0_slide95_FieldAccess(EOS(STATIC_2336), i200, o541[Kernel95.next]o556) -> f2339_0_slide95_JMP(EOS(STATIC_2339), i200, o541[Kernel95.next]o556) :|: TRUE f2339_0_slide95_JMP(EOS(STATIC_2339), i200, o541[Kernel95.next]o556) -> f2343_0_slide95_Load(EOS(STATIC_2343), i200, o541[Kernel95.next]o556) :|: TRUE f2343_0_slide95_Load(EOS(STATIC_2343), i200, o541[Kernel95.next]o556) -> f2350_0_slide95_ConstantStackPush(EOS(STATIC_2350), i200, o541[Kernel95.next]o556) :|: TRUE f2350_0_slide95_ConstantStackPush(EOS(STATIC_2350), i200, o541[Kernel95.next]o556) -> f2353_0_slide95_IntArithmetic(EOS(STATIC_2353), i200, 2, o541[Kernel95.next]o556) :|: TRUE f2353_0_slide95_IntArithmetic(EOS(STATIC_2353), i200, matching1, o541[Kernel95.next]o556) -> f2360_0_slide95_Store(EOS(STATIC_2360), i213, o541[Kernel95.next]o556) :|: i213 = i200 / 2 && i213 <= i200 && matching1 = 2 f2360_0_slide95_Store(EOS(STATIC_2360), i213, o541[Kernel95.next]o556) -> f2366_0_slide95_JMP(EOS(STATIC_2366), i213, o541[Kernel95.next]o556) :|: TRUE f2366_0_slide95_JMP(EOS(STATIC_2366), i213, o541[Kernel95.next]o556) -> f2436_0_slide95_Load(EOS(STATIC_2436), i213, o541[Kernel95.next]o556) :|: TRUE f2436_0_slide95_Load(EOS(STATIC_2436), i213, o541[Kernel95.next]o556) -> f2196_0_slide95_Load(EOS(STATIC_2196), i213, o541[Kernel95.next]o541, o541[Kernel95.next]o556, o541[Kernel95.next]o556, o541[Kernel95.next]o541) :|: o541[Kernel95.next]o541 = 0 Combined rules. Obtained 6 IRulesP rules: f2226_0_slide95_EQ(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 0 && o541[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o540:0 > o541[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 > 0 && i200:0 >= div1 f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(EOS(STATIC_2226), div1, o499[Kernel95.next]o499:0, o541[Kernel95.next]o540:0, o541[Kernel95.next]o499:0, o541[Kernel95.next]o498:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 0 && o541[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o540:0 > o541[Kernel95.next]o500:0 && i200:0 >= div1 && o541[Kernel95.next]o498:0 > 0 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 < 2 && i200:0 - 2 * div1 > -2 f2226_0_slide95_EQ(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && i200:0 >= div1 && o541[Kernel95.next]o500:0 > 0 && o541[Kernel95.next]o498:0 > -1 && o541[Kernel95.next]o498new:0 > 0 && o541[Kernel95.next]o498new:0 <= o541[Kernel95.next]o498:0 f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(EOS(STATIC_2226), div1, o499[Kernel95.next]o499:0, o541[Kernel95.next]o500:0, o541[Kernel95.next]o499:0, o541[Kernel95.next]o498new:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && i200:0 >= div1 && o541[Kernel95.next]o500:0 > 0 && o541[Kernel95.next]o498:0 > -1 && o541[Kernel95.next]o498new:0 <= o541[Kernel95.next]o498:0 && o541[Kernel95.next]o498new:0 > 0 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 < 2 && i200:0 - 2 * div1 > -2 f2226_0_slide95_EQ(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && o541[Kernel95.next]o498:0 > 0 && i200:0 >= div1 f2226_0_slide95_EQ'(EOS(STATIC_2226), i200:0, o499[Kernel95.next]o499:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o499:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(EOS(STATIC_2226), div1, 0, o541[Kernel95.next]o498:0, 0, o541[Kernel95.next]o498:0) :|: o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o500:0 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && o541[Kernel95.next]o498:0 > 0 && i200:0 >= div1 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 < 2 && i200:0 - 2 * div1 > -2 Filtered constant ground arguments: f2226_0_slide95_EQ(x1, x2, x3, x4, x5, x6) -> f2226_0_slide95_EQ(x2, x3, x4, x5, x6) f2226_0_slide95_EQ'(x1, x2, x3, x4, x5, x6) -> f2226_0_slide95_EQ'(x2, x3, x4, x5, x6) EOS(x1) -> EOS Filtered unneeded arguments: f2226_0_slide95_EQ(x1, x2, x3, x4, x5) -> f2226_0_slide95_EQ(x1, x3, x5) f2226_0_slide95_EQ'(x1, x2, x3, x4, x5) -> f2226_0_slide95_EQ'(x1, x3, x5) Finished conversion. Obtained 6 rules.P rules: f2226_0_slide95_EQ(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) :|: o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 0 && o541[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o540:0 > o541[Kernel95.next]o500:0 && i200:0 >= div1 && o541[Kernel95.next]o498:0 > 0 f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(div1, o541[Kernel95.next]o540:0, o541[Kernel95.next]o498:0) :|: o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 0 && o541[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o540:0 > o541[Kernel95.next]o500:0 && i200:0 >= div1 && o541[Kernel95.next]o498:0 > 0 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 > -2 && i200:0 - 2 * div1 < 2 f2226_0_slide95_EQ(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) :|: o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && i200:0 >= div1 && o541[Kernel95.next]o500:0 > 0 && o541[Kernel95.next]o498:0 > -1 && o541[Kernel95.next]o498new:0 <= o541[Kernel95.next]o498:0 && o541[Kernel95.next]o498new:0 > 0 f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(div1, o541[Kernel95.next]o500:0, o541[Kernel95.next]o498new:0) :|: o541[Kernel95.next]o500:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && i200:0 >= div1 && o541[Kernel95.next]o500:0 > 0 && o541[Kernel95.next]o498:0 > -1 && o541[Kernel95.next]o498new:0 <= o541[Kernel95.next]o498:0 && o541[Kernel95.next]o498new:0 > 0 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 > -2 && i200:0 - 2 * div1 < 2 f2226_0_slide95_EQ(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) :|: o541[Kernel95.next]o498:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && i200:0 >= div1 && o541[Kernel95.next]o498:0 > 0 f2226_0_slide95_EQ'(i200:0, o501[Kernel95.next]o500:0, o501[Kernel95.next]o498:0) -> f2226_0_slide95_EQ(div1, o541[Kernel95.next]o498:0, o541[Kernel95.next]o498:0) :|: o541[Kernel95.next]o498:0 < o501[Kernel95.next]o500:0 && o501[Kernel95.next]o500:0 > -1 && o541[Kernel95.next]o498:0 < o501[Kernel95.next]o498:0 && o501[Kernel95.next]o498:0 > -1 && i200:0 - 2 * div = 1 && o541[Kernel95.next]o498:0 > 0 && i200:0 >= div1 && i200:0 - 2 * div > -2 && i200:0 - 2 * div < 2 && i200:0 - 2 * div1 > -2 && i200:0 - 2 * div1 < 2 ---------------------------------------- (22) Obligation: Rules: f2226_0_slide95_EQ(x, x1, x2) -> f2226_0_slide95_EQ'(x, x1, x2) :|: x3 < x1 && x1 > -1 && x4 < x2 && x2 > -1 && x - 2 * x5 = 0 && x3 > -1 && x6 > x3 && x >= x7 && x4 > 0 f2226_0_slide95_EQ'(x8, x9, x10) -> f2226_0_slide95_EQ(x11, x12, x13) :|: x14 < x9 && x9 > -1 && x13 < x10 && x10 > -1 && x8 - 2 * x15 = 0 && x14 > -1 && x12 > x14 && x8 >= x11 && x13 > 0 && x8 - 2 * x15 > -2 && x8 - 2 * x15 < 2 && x8 - 2 * x11 > -2 && x8 - 2 * x11 < 2 f2226_0_slide95_EQ(x16, x17, x18) -> f2226_0_slide95_EQ'(x16, x17, x18) :|: x19 < x17 && x17 > -1 && x20 < x18 && x18 > -1 && x16 - 2 * x21 = 1 && x16 >= x22 && x19 > 0 && x20 > -1 && x23 <= x20 && x23 > 0 f2226_0_slide95_EQ'(x24, x25, x26) -> f2226_0_slide95_EQ(x27, x28, x29) :|: x28 < x25 && x25 > -1 && x30 < x26 && x26 > -1 && x24 - 2 * x31 = 1 && x24 >= x27 && x28 > 0 && x30 > -1 && x29 <= x30 && x29 > 0 && x24 - 2 * x31 > -2 && x24 - 2 * x31 < 2 && x24 - 2 * x27 > -2 && x24 - 2 * x27 < 2 f2226_0_slide95_EQ(x32, x33, x34) -> f2226_0_slide95_EQ'(x32, x33, x34) :|: x35 < x33 && x33 > -1 && x35 < x34 && x34 > -1 && x32 - 2 * x36 = 1 && x32 >= x37 && x35 > 0 f2226_0_slide95_EQ'(x38, x39, x40) -> f2226_0_slide95_EQ(x41, x42, x42) :|: x42 < x39 && x39 > -1 && x42 < x40 && x40 > -1 && x38 - 2 * x43 = 1 && x42 > 0 && x38 >= x41 && x38 - 2 * x43 > -2 && x38 - 2 * x43 < 2 && x38 - 2 * x41 > -2 && x38 - 2 * x41 < 2 ---------------------------------------- (23) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (24) Obligation: Rules: f2226_0_slide95_EQ(x, x1, x2) -> f2226_0_slide95_EQ'(x, x1, x2) :|: x3 < x1 && x1 > -1 && x4 < x2 && x2 > -1 && x - 2 * x5 = 0 && x3 > -1 && x6 > x3 && x >= x7 && x4 > 0 f2226_0_slide95_EQ'(x8, x9, x10) -> f2226_0_slide95_EQ(x11, x12, x13) :|: x14 < x9 && x9 > -1 && x13 < x10 && x10 > -1 && x8 - 2 * x15 = 0 && x14 > -1 && x12 > x14 && x8 >= x11 && x13 > 0 && x8 - 2 * x15 > -2 && x8 - 2 * x15 < 2 && x8 - 2 * x11 > -2 && x8 - 2 * x11 < 2 f2226_0_slide95_EQ(x16, x17, x18) -> f2226_0_slide95_EQ'(x16, x17, x18) :|: x19 < x17 && x17 > -1 && x20 < x18 && x18 > -1 && x16 - 2 * x21 = 1 && x16 >= x22 && x19 > 0 && x20 > -1 && x23 <= x20 && x23 > 0 f2226_0_slide95_EQ'(x24, x25, x26) -> f2226_0_slide95_EQ(x27, x28, x29) :|: x28 < x25 && x25 > -1 && x30 < x26 && x26 > -1 && x24 - 2 * x31 = 1 && x24 >= x27 && x28 > 0 && x30 > -1 && x29 <= x30 && x29 > 0 && x24 - 2 * x31 > -2 && x24 - 2 * x31 < 2 && x24 - 2 * x27 > -2 && x24 - 2 * x27 < 2 f2226_0_slide95_EQ(x32, x33, x34) -> f2226_0_slide95_EQ'(x32, x33, x34) :|: x35 < x33 && x33 > -1 && x35 < x34 && x34 > -1 && x32 - 2 * x36 = 1 && x32 >= x37 && x35 > 0 f2226_0_slide95_EQ'(x38, x39, x40) -> f2226_0_slide95_EQ(x41, x42, x42) :|: x42 < x39 && x39 > -1 && x42 < x40 && x40 > -1 && x38 - 2 * x43 = 1 && x42 > 0 && x38 >= x41 && x38 - 2 * x43 > -2 && x38 - 2 * x43 < 2 && x38 - 2 * x41 > -2 && x38 - 2 * x41 < 2 ---------------------------------------- (25) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f2226_0_slide95_EQ(x, x1, x2) -> f2226_0_slide95_EQ'(x, x1, x2) :|: x3 < x1 && x1 > -1 && x4 < x2 && x2 > -1 && x - 2 * x5 = 0 && x3 > -1 && x6 > x3 && x >= x7 && x4 > 0 (2) f2226_0_slide95_EQ'(x8, x9, x10) -> f2226_0_slide95_EQ(x11, x12, x13) :|: x14 < x9 && x9 > -1 && x13 < x10 && x10 > -1 && x8 - 2 * x15 = 0 && x14 > -1 && x12 > x14 && x8 >= x11 && x13 > 0 && x8 - 2 * x15 > -2 && x8 - 2 * x15 < 2 && x8 - 2 * x11 > -2 && x8 - 2 * x11 < 2 (3) f2226_0_slide95_EQ(x16, x17, x18) -> f2226_0_slide95_EQ'(x16, x17, x18) :|: x19 < x17 && x17 > -1 && x20 < x18 && x18 > -1 && x16 - 2 * x21 = 1 && x16 >= x22 && x19 > 0 && x20 > -1 && x23 <= x20 && x23 > 0 (4) f2226_0_slide95_EQ'(x24, x25, x26) -> f2226_0_slide95_EQ(x27, x28, x29) :|: x28 < x25 && x25 > -1 && x30 < x26 && x26 > -1 && x24 - 2 * x31 = 1 && x24 >= x27 && x28 > 0 && x30 > -1 && x29 <= x30 && x29 > 0 && x24 - 2 * x31 > -2 && x24 - 2 * x31 < 2 && x24 - 2 * x27 > -2 && x24 - 2 * x27 < 2 (5) f2226_0_slide95_EQ(x32, x33, x34) -> f2226_0_slide95_EQ'(x32, x33, x34) :|: x35 < x33 && x33 > -1 && x35 < x34 && x34 > -1 && x32 - 2 * x36 = 1 && x32 >= x37 && x35 > 0 (6) f2226_0_slide95_EQ'(x38, x39, x40) -> f2226_0_slide95_EQ(x41, x42, x42) :|: x42 < x39 && x39 > -1 && x42 < x40 && x40 > -1 && x38 - 2 * x43 = 1 && x42 > 0 && x38 >= x41 && x38 - 2 * x43 > -2 && x38 - 2 * x43 < 2 && x38 - 2 * x41 > -2 && x38 - 2 * x41 < 2 Arcs: (1) -> (2) (2) -> (1), (3), (5) (3) -> (4), (6) (4) -> (1), (3), (5) (5) -> (4), (6) (6) -> (1), (3), (5) This digraph is fully evaluated! ---------------------------------------- (26) Obligation: Termination digraph: Nodes: (1) f2226_0_slide95_EQ(x, x1, x2) -> f2226_0_slide95_EQ'(x, x1, x2) :|: x3 < x1 && x1 > -1 && x4 < x2 && x2 > -1 && x - 2 * x5 = 0 && x3 > -1 && x6 > x3 && x >= x7 && x4 > 0 (2) f2226_0_slide95_EQ'(x24, x25, x26) -> f2226_0_slide95_EQ(x27, x28, x29) :|: x28 < x25 && x25 > -1 && x30 < x26 && x26 > -1 && x24 - 2 * x31 = 1 && x24 >= x27 && x28 > 0 && x30 > -1 && x29 <= x30 && x29 > 0 && x24 - 2 * x31 > -2 && x24 - 2 * x31 < 2 && x24 - 2 * x27 > -2 && x24 - 2 * x27 < 2 (3) f2226_0_slide95_EQ(x16, x17, x18) -> f2226_0_slide95_EQ'(x16, x17, x18) :|: x19 < x17 && x17 > -1 && x20 < x18 && x18 > -1 && x16 - 2 * x21 = 1 && x16 >= x22 && x19 > 0 && x20 > -1 && x23 <= x20 && x23 > 0 (4) f2226_0_slide95_EQ'(x38, x39, x40) -> f2226_0_slide95_EQ(x41, x42, x42) :|: x42 < x39 && x39 > -1 && x42 < x40 && x40 > -1 && x38 - 2 * x43 = 1 && x42 > 0 && x38 >= x41 && x38 - 2 * x43 > -2 && x38 - 2 * x43 < 2 && x38 - 2 * x41 > -2 && x38 - 2 * x41 < 2 (5) f2226_0_slide95_EQ(x32, x33, x34) -> f2226_0_slide95_EQ'(x32, x33, x34) :|: x35 < x33 && x33 > -1 && x35 < x34 && x34 > -1 && x32 - 2 * x36 = 1 && x32 >= x37 && x35 > 0 (6) f2226_0_slide95_EQ'(x8, x9, x10) -> f2226_0_slide95_EQ(x11, x12, x13) :|: x14 < x9 && x9 > -1 && x13 < x10 && x10 > -1 && x8 - 2 * x15 = 0 && x14 > -1 && x12 > x14 && x8 >= x11 && x13 > 0 && x8 - 2 * x15 > -2 && x8 - 2 * x15 < 2 && x8 - 2 * x11 > -2 && x8 - 2 * x11 < 2 Arcs: (1) -> (6) (2) -> (1), (3), (5) (3) -> (2), (4) (4) -> (1), (3), (5) (5) -> (2), (4) (6) -> (1), (3), (5) This digraph is fully evaluated! ---------------------------------------- (27) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (28) Obligation: Rules: f2226_0_slide95_EQ'(x8:0, x9:0, x10:0) -> f2226_0_slide95_EQ(x11:0, x12:0, x13:0) :|: x8:0 - 2 * x11:0 > -2 && x8:0 - 2 * x11:0 < 2 && x8:0 - 2 * x15:0 < 2 && x8:0 - 2 * x15:0 > -2 && x13:0 > 0 && x8:0 >= x11:0 && x14:0 < x12:0 && x14:0 > -1 && x8:0 - 2 * x15:0 = 0 && x10:0 > -1 && x13:0 < x10:0 && x9:0 > -1 && x9:0 > x14:0 f2226_0_slide95_EQ(x32:0, x33:0, x34:0) -> f2226_0_slide95_EQ'(x32:0, x33:0, x34:0) :|: x37:0 <= x32:0 && x35:0 > 0 && x32:0 - 2 * x36:0 = 1 && x34:0 > -1 && x35:0 < x34:0 && x33:0 > -1 && x35:0 < x33:0 f2226_0_slide95_EQ(x:0, x1:0, x2:0) -> f2226_0_slide95_EQ'(x:0, x1:0, x2:0) :|: x:0 >= x7:0 && x4:0 > 0 && x6:0 > x3:0 && x3:0 > -1 && x:0 - 2 * x5:0 = 0 && x2:0 > -1 && x4:0 < x2:0 && x1:0 > -1 && x3:0 < x1:0 f2226_0_slide95_EQ'(x24:0, x25:0, x26:0) -> f2226_0_slide95_EQ(x27:0, x28:0, x29:0) :|: x24:0 - 2 * x27:0 > -2 && x24:0 - 2 * x27:0 < 2 && x24:0 - 2 * x31:0 < 2 && x24:0 - 2 * x31:0 > -2 && x29:0 > 0 && x30:0 >= x29:0 && x30:0 > -1 && x28:0 > 0 && x27:0 <= x24:0 && x24:0 - 2 * x31:0 = 1 && x26:0 > -1 && x30:0 < x26:0 && x25:0 > -1 && x28:0 < x25:0 f2226_0_slide95_EQ(x16:0, x17:0, x18:0) -> f2226_0_slide95_EQ'(x16:0, x17:0, x18:0) :|: x23:0 <= x20:0 && x23:0 > 0 && x20:0 > -1 && x19:0 > 0 && x22:0 <= x16:0 && x16:0 - 2 * x21:0 = 1 && x18:0 > -1 && x20:0 < x18:0 && x17:0 > -1 && x19:0 < x17:0 f2226_0_slide95_EQ'(x38:0, x39:0, x40:0) -> f2226_0_slide95_EQ(x41:0, x42:0, x42:0) :|: x38:0 - 2 * x41:0 > -2 && x38:0 - 2 * x41:0 < 2 && x38:0 - 2 * x43:0 < 2 && x38:0 - 2 * x43:0 > -2 && x41:0 <= x38:0 && x42:0 > 0 && x38:0 - 2 * x43:0 = 1 && x40:0 > -1 && x42:0 < x40:0 && x39:0 > -1 && x42:0 < x39:0 ---------------------------------------- (29) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f2226_0_slide95_EQ'(INTEGER, INTEGER, INTEGER) f2226_0_slide95_EQ(INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (30) Obligation: Rules: f2226_0_slide95_EQ'(x8:0, x9:0, x10:0) -> f2226_0_slide95_EQ(x11:0, x12:0, x13:0) :|: x8:0 - 2 * x11:0 > -2 && x8:0 - 2 * x11:0 < 2 && x8:0 - 2 * x15:0 < 2 && x8:0 - 2 * x15:0 > -2 && x13:0 > 0 && x8:0 >= x11:0 && x14:0 < x12:0 && x14:0 > -1 && x8:0 - 2 * x15:0 = 0 && x10:0 > -1 && x13:0 < x10:0 && x9:0 > -1 && x9:0 > x14:0 f2226_0_slide95_EQ(x32:0, x33:0, x34:0) -> f2226_0_slide95_EQ'(x32:0, x33:0, x34:0) :|: x37:0 <= x32:0 && x35:0 > 0 && x32:0 - 2 * x36:0 = 1 && x34:0 > -1 && x35:0 < x34:0 && x33:0 > -1 && x35:0 < x33:0 f2226_0_slide95_EQ(x:0, x1:0, x2:0) -> f2226_0_slide95_EQ'(x:0, x1:0, x2:0) :|: x:0 >= x7:0 && x4:0 > 0 && x6:0 > x3:0 && x3:0 > -1 && x:0 - 2 * x5:0 = 0 && x2:0 > -1 && x4:0 < x2:0 && x1:0 > -1 && x3:0 < x1:0 f2226_0_slide95_EQ'(x24:0, x25:0, x26:0) -> f2226_0_slide95_EQ(x27:0, x28:0, x29:0) :|: x24:0 - 2 * x27:0 > -2 && x24:0 - 2 * x27:0 < 2 && x24:0 - 2 * x31:0 < 2 && x24:0 - 2 * x31:0 > -2 && x29:0 > 0 && x30:0 >= x29:0 && x30:0 > -1 && x28:0 > 0 && x27:0 <= x24:0 && x24:0 - 2 * x31:0 = 1 && x26:0 > -1 && x30:0 < x26:0 && x25:0 > -1 && x28:0 < x25:0 f2226_0_slide95_EQ(x16:0, x17:0, x18:0) -> f2226_0_slide95_EQ'(x16:0, x17:0, x18:0) :|: x23:0 <= x20:0 && x23:0 > 0 && x20:0 > -1 && x19:0 > 0 && x22:0 <= x16:0 && x16:0 - 2 * x21:0 = 1 && x18:0 > -1 && x20:0 < x18:0 && x17:0 > -1 && x19:0 < x17:0 f2226_0_slide95_EQ'(x38:0, x39:0, x40:0) -> f2226_0_slide95_EQ(x41:0, x42:0, x42:0) :|: x38:0 - 2 * x41:0 > -2 && x38:0 - 2 * x41:0 < 2 && x38:0 - 2 * x43:0 < 2 && x38:0 - 2 * x43:0 > -2 && x41:0 <= x38:0 && x42:0 > 0 && x38:0 - 2 * x43:0 = 1 && x40:0 > -1 && x42:0 < x40:0 && x39:0 > -1 && x42:0 < x39:0 ---------------------------------------- (31) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (32) Obligation: Rules: f2226_0_slide95_EQ'(x24:0:0, x25:0:0, x26:0:0) -> f2226_0_slide95_EQ(x27:0:0, x28:0:0, x29:0:0) :|: x25:0:0 > -1 && x28:0:0 < x25:0:0 && x30:0:0 < x26:0:0 && x26:0:0 > -1 && x24:0:0 - 2 * x31:0:0 = 1 && x27:0:0 <= x24:0:0 && x28:0:0 > 0 && x30:0:0 > -1 && x30:0:0 >= x29:0:0 && x29:0:0 > 0 && x24:0:0 - 2 * x31:0:0 > -2 && x24:0:0 - 2 * x31:0:0 < 2 && x24:0:0 - 2 * x27:0:0 < 2 && x24:0:0 - 2 * x27:0:0 > -2 f2226_0_slide95_EQ'(x38:0:0, x39:0:0, x40:0:0) -> f2226_0_slide95_EQ(x41:0:0, x42:0:0, x42:0:0) :|: x39:0:0 > -1 && x42:0:0 < x39:0:0 && x42:0:0 < x40:0:0 && x40:0:0 > -1 && x38:0:0 - 2 * x43:0:0 = 1 && x42:0:0 > 0 && x41:0:0 <= x38:0:0 && x38:0:0 - 2 * x43:0:0 > -2 && x38:0:0 - 2 * x43:0:0 < 2 && x38:0:0 - 2 * x41:0:0 < 2 && x38:0:0 - 2 * x41:0:0 > -2 f2226_0_slide95_EQ(x16:0:0, x17:0:0, x18:0:0) -> f2226_0_slide95_EQ'(x16:0:0, x17:0:0, x18:0:0) :|: x17:0:0 > -1 && x19:0:0 < x17:0:0 && x20:0:0 < x18:0:0 && x18:0:0 > -1 && x16:0:0 - 2 * x21:0:0 = 1 && x22:0:0 <= x16:0:0 && x19:0:0 > 0 && x20:0:0 > -1 && x23:0:0 > 0 && x23:0:0 <= x20:0:0 f2226_0_slide95_EQ(x32:0:0, x33:0:0, x34:0:0) -> f2226_0_slide95_EQ'(x32:0:0, x33:0:0, x34:0:0) :|: x33:0:0 > -1 && x35:0:0 < x33:0:0 && x35:0:0 < x34:0:0 && x34:0:0 > -1 && x32:0:0 - 2 * x36:0:0 = 1 && x35:0:0 > 0 && x37:0:0 <= x32:0:0 f2226_0_slide95_EQ(x:0:0, x1:0:0, x2:0:0) -> f2226_0_slide95_EQ'(x:0:0, x1:0:0, x2:0:0) :|: x1:0:0 > -1 && x3:0:0 < x1:0:0 && x4:0:0 < x2:0:0 && x2:0:0 > -1 && x:0:0 - 2 * x5:0:0 = 0 && x3:0:0 > -1 && x6:0:0 > x3:0:0 && x4:0:0 > 0 && x:0:0 >= x7:0:0 f2226_0_slide95_EQ'(x8:0:0, x9:0:0, x10:0:0) -> f2226_0_slide95_EQ(x11:0:0, x12:0:0, x13:0:0) :|: x9:0:0 > -1 && x9:0:0 > x14:0:0 && x13:0:0 < x10:0:0 && x10:0:0 > -1 && x8:0:0 - 2 * x15:0:0 = 0 && x14:0:0 > -1 && x14:0:0 < x12:0:0 && x8:0:0 >= x11:0:0 && x13:0:0 > 0 && x8:0:0 - 2 * x15:0:0 > -2 && x8:0:0 - 2 * x15:0:0 < 2 && x8:0:0 - 2 * x11:0:0 < 2 && x8:0:0 - 2 * x11:0:0 > -2 ---------------------------------------- (33) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f2226_0_slide95_EQ' ] = 2*f2226_0_slide95_EQ'_3 + -1 [ f2226_0_slide95_EQ ] = 2*f2226_0_slide95_EQ_3 The following rules are decreasing: f2226_0_slide95_EQ'(x24:0:0, x25:0:0, x26:0:0) -> f2226_0_slide95_EQ(x27:0:0, x28:0:0, x29:0:0) :|: x25:0:0 > -1 && x28:0:0 < x25:0:0 && x30:0:0 < x26:0:0 && x26:0:0 > -1 && x24:0:0 - 2 * x31:0:0 = 1 && x27:0:0 <= x24:0:0 && x28:0:0 > 0 && x30:0:0 > -1 && x30:0:0 >= x29:0:0 && x29:0:0 > 0 && x24:0:0 - 2 * x31:0:0 > -2 && x24:0:0 - 2 * x31:0:0 < 2 && x24:0:0 - 2 * x27:0:0 < 2 && x24:0:0 - 2 * x27:0:0 > -2 f2226_0_slide95_EQ'(x38:0:0, x39:0:0, x40:0:0) -> f2226_0_slide95_EQ(x41:0:0, x42:0:0, x42:0:0) :|: x39:0:0 > -1 && x42:0:0 < x39:0:0 && x42:0:0 < x40:0:0 && x40:0:0 > -1 && x38:0:0 - 2 * x43:0:0 = 1 && x42:0:0 > 0 && x41:0:0 <= x38:0:0 && x38:0:0 - 2 * x43:0:0 > -2 && x38:0:0 - 2 * x43:0:0 < 2 && x38:0:0 - 2 * x41:0:0 < 2 && x38:0:0 - 2 * x41:0:0 > -2 f2226_0_slide95_EQ(x16:0:0, x17:0:0, x18:0:0) -> f2226_0_slide95_EQ'(x16:0:0, x17:0:0, x18:0:0) :|: x17:0:0 > -1 && x19:0:0 < x17:0:0 && x20:0:0 < x18:0:0 && x18:0:0 > -1 && x16:0:0 - 2 * x21:0:0 = 1 && x22:0:0 <= x16:0:0 && x19:0:0 > 0 && x20:0:0 > -1 && x23:0:0 > 0 && x23:0:0 <= x20:0:0 f2226_0_slide95_EQ(x32:0:0, x33:0:0, x34:0:0) -> f2226_0_slide95_EQ'(x32:0:0, x33:0:0, x34:0:0) :|: x33:0:0 > -1 && x35:0:0 < x33:0:0 && x35:0:0 < x34:0:0 && x34:0:0 > -1 && x32:0:0 - 2 * x36:0:0 = 1 && x35:0:0 > 0 && x37:0:0 <= x32:0:0 f2226_0_slide95_EQ(x:0:0, x1:0:0, x2:0:0) -> f2226_0_slide95_EQ'(x:0:0, x1:0:0, x2:0:0) :|: x1:0:0 > -1 && x3:0:0 < x1:0:0 && x4:0:0 < x2:0:0 && x2:0:0 > -1 && x:0:0 - 2 * x5:0:0 = 0 && x3:0:0 > -1 && x6:0:0 > x3:0:0 && x4:0:0 > 0 && x:0:0 >= x7:0:0 f2226_0_slide95_EQ'(x8:0:0, x9:0:0, x10:0:0) -> f2226_0_slide95_EQ(x11:0:0, x12:0:0, x13:0:0) :|: x9:0:0 > -1 && x9:0:0 > x14:0:0 && x13:0:0 < x10:0:0 && x10:0:0 > -1 && x8:0:0 - 2 * x15:0:0 = 0 && x14:0:0 > -1 && x14:0:0 < x12:0:0 && x8:0:0 >= x11:0:0 && x13:0:0 > 0 && x8:0:0 - 2 * x15:0:0 > -2 && x8:0:0 - 2 * x15:0:0 < 2 && x8:0:0 - 2 * x11:0:0 < 2 && x8:0:0 - 2 * x11:0:0 > -2 The following rules are bounded: f2226_0_slide95_EQ'(x24:0:0, x25:0:0, x26:0:0) -> f2226_0_slide95_EQ(x27:0:0, x28:0:0, x29:0:0) :|: x25:0:0 > -1 && x28:0:0 < x25:0:0 && x30:0:0 < x26:0:0 && x26:0:0 > -1 && x24:0:0 - 2 * x31:0:0 = 1 && x27:0:0 <= x24:0:0 && x28:0:0 > 0 && x30:0:0 > -1 && x30:0:0 >= x29:0:0 && x29:0:0 > 0 && x24:0:0 - 2 * x31:0:0 > -2 && x24:0:0 - 2 * x31:0:0 < 2 && x24:0:0 - 2 * x27:0:0 < 2 && x24:0:0 - 2 * x27:0:0 > -2 f2226_0_slide95_EQ'(x38:0:0, x39:0:0, x40:0:0) -> f2226_0_slide95_EQ(x41:0:0, x42:0:0, x42:0:0) :|: x39:0:0 > -1 && x42:0:0 < x39:0:0 && x42:0:0 < x40:0:0 && x40:0:0 > -1 && x38:0:0 - 2 * x43:0:0 = 1 && x42:0:0 > 0 && x41:0:0 <= x38:0:0 && x38:0:0 - 2 * x43:0:0 > -2 && x38:0:0 - 2 * x43:0:0 < 2 && x38:0:0 - 2 * x41:0:0 < 2 && x38:0:0 - 2 * x41:0:0 > -2 f2226_0_slide95_EQ(x16:0:0, x17:0:0, x18:0:0) -> f2226_0_slide95_EQ'(x16:0:0, x17:0:0, x18:0:0) :|: x17:0:0 > -1 && x19:0:0 < x17:0:0 && x20:0:0 < x18:0:0 && x18:0:0 > -1 && x16:0:0 - 2 * x21:0:0 = 1 && x22:0:0 <= x16:0:0 && x19:0:0 > 0 && x20:0:0 > -1 && x23:0:0 > 0 && x23:0:0 <= x20:0:0 f2226_0_slide95_EQ(x32:0:0, x33:0:0, x34:0:0) -> f2226_0_slide95_EQ'(x32:0:0, x33:0:0, x34:0:0) :|: x33:0:0 > -1 && x35:0:0 < x33:0:0 && x35:0:0 < x34:0:0 && x34:0:0 > -1 && x32:0:0 - 2 * x36:0:0 = 1 && x35:0:0 > 0 && x37:0:0 <= x32:0:0 f2226_0_slide95_EQ(x:0:0, x1:0:0, x2:0:0) -> f2226_0_slide95_EQ'(x:0:0, x1:0:0, x2:0:0) :|: x1:0:0 > -1 && x3:0:0 < x1:0:0 && x4:0:0 < x2:0:0 && x2:0:0 > -1 && x:0:0 - 2 * x5:0:0 = 0 && x3:0:0 > -1 && x6:0:0 > x3:0:0 && x4:0:0 > 0 && x:0:0 >= x7:0:0 f2226_0_slide95_EQ'(x8:0:0, x9:0:0, x10:0:0) -> f2226_0_slide95_EQ(x11:0:0, x12:0:0, x13:0:0) :|: x9:0:0 > -1 && x9:0:0 > x14:0:0 && x13:0:0 < x10:0:0 && x10:0:0 > -1 && x8:0:0 - 2 * x15:0:0 = 0 && x14:0:0 > -1 && x14:0:0 < x12:0:0 && x8:0:0 >= x11:0:0 && x13:0:0 > 0 && x8:0:0 - 2 * x15:0:0 > -2 && x8:0:0 - 2 * x15:0:0 < 2 && x8:0:0 - 2 * x11:0:0 < 2 && x8:0:0 - 2 * x11:0:0 > -2 ---------------------------------------- (34) YES