MAYBE Initial complexity problem: 1: T: (1, 1) f0(a, b) -> f1(a, a) [ a = b ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) (?, 1) f1(a, b) -> f2(a, b) (?, 1) f1(a, b) -> f10000(a, b) [ a >= b + 1 ] start location: f0 leaf cost: 0 Repeatedly removing leaves of the complexity graph in problem 1 produces the following problem: 2: T: (1, 1) f0(a, b) -> f1(a, a) [ a = b ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) start location: f0 leaf cost: 2 Applied AI with 'oct' on problem 2 to obtain the following invariants: For symbol f1: X_1 - X_2 >= 0 /\ -X_1 + X_2 >= 0 This yielded the following problem: 3: T: (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] (1, 1) f0(a, b) -> f1(a, a) [ a = b ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a, a) [ a = b ] with all transitions in problem 3, the following new transition is obtained: f0(a, b) -> f1(a + 1, a + 1) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 4: T: (1, 2) f0(a, b) -> f1(a + 1, a + 1) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 1, a + 1) [ a = b /\ 0 >= 0 ] with all transitions in problem 4, the following new transition is obtained: f0(a, b) -> f1(a + 2, a + 2) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 5: T: (1, 3) f0(a, b) -> f1(a + 2, a + 2) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 2, a + 2) [ a = b /\ 0 >= 0 ] with all transitions in problem 5, the following new transition is obtained: f0(a, b) -> f1(a + 3, a + 3) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 6: T: (1, 4) f0(a, b) -> f1(a + 3, a + 3) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 3, a + 3) [ a = b /\ 0 >= 0 ] with all transitions in problem 6, the following new transition is obtained: f0(a, b) -> f1(a + 4, a + 4) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 7: T: (1, 5) f0(a, b) -> f1(a + 4, a + 4) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 4, a + 4) [ a = b /\ 0 >= 0 ] with all transitions in problem 7, the following new transition is obtained: f0(a, b) -> f1(a + 5, a + 5) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 8: T: (1, 6) f0(a, b) -> f1(a + 5, a + 5) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 5, a + 5) [ a = b /\ 0 >= 0 ] with all transitions in problem 8, the following new transition is obtained: f0(a, b) -> f1(a + 6, a + 6) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 9: T: (1, 7) f0(a, b) -> f1(a + 6, a + 6) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 6, a + 6) [ a = b /\ 0 >= 0 ] with all transitions in problem 9, the following new transition is obtained: f0(a, b) -> f1(a + 7, a + 7) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 10: T: (1, 8) f0(a, b) -> f1(a + 7, a + 7) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 7, a + 7) [ a = b /\ 0 >= 0 ] with all transitions in problem 10, the following new transition is obtained: f0(a, b) -> f1(a + 8, a + 8) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 11: T: (1, 9) f0(a, b) -> f1(a + 8, a + 8) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 8, a + 8) [ a = b /\ 0 >= 0 ] with all transitions in problem 11, the following new transition is obtained: f0(a, b) -> f1(a + 9, a + 9) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 12: T: (1, 10) f0(a, b) -> f1(a + 9, a + 9) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 9, a + 9) [ a = b /\ 0 >= 0 ] with all transitions in problem 12, the following new transition is obtained: f0(a, b) -> f1(a + 10, a + 10) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 13: T: (1, 11) f0(a, b) -> f1(a + 10, a + 10) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 10, a + 10) [ a = b /\ 0 >= 0 ] with all transitions in problem 13, the following new transition is obtained: f0(a, b) -> f1(a + 11, a + 11) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 14: T: (1, 12) f0(a, b) -> f1(a + 11, a + 11) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 11, a + 11) [ a = b /\ 0 >= 0 ] with all transitions in problem 14, the following new transition is obtained: f0(a, b) -> f1(a + 12, a + 12) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 15: T: (1, 13) f0(a, b) -> f1(a + 12, a + 12) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 12, a + 12) [ a = b /\ 0 >= 0 ] with all transitions in problem 15, the following new transition is obtained: f0(a, b) -> f1(a + 13, a + 13) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 16: T: (1, 14) f0(a, b) -> f1(a + 13, a + 13) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 13, a + 13) [ a = b /\ 0 >= 0 ] with all transitions in problem 16, the following new transition is obtained: f0(a, b) -> f1(a + 14, a + 14) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 17: T: (1, 15) f0(a, b) -> f1(a + 14, a + 14) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 By chaining the transition f0(a, b) -> f1(a + 14, a + 14) [ a = b /\ 0 >= 0 ] with all transitions in problem 17, the following new transition is obtained: f0(a, b) -> f1(a + 15, a + 15) [ a = b /\ 0 >= 0 ] We thus obtain the following problem: 18: T: (1, 16) f0(a, b) -> f1(a + 15, a + 15) [ a = b /\ 0 >= 0 ] (?, 1) f1(a, b) -> f1(a + 1, b + 1) [ a - b >= 0 /\ -a + b >= 0 ] start location: f0 leaf cost: 2 Complexity upper bound ? Time: 1.212 sec (SMT: 1.148 sec)