unknown Initial ITS Start location: l3 Program variables: c^0 p^0 s^0 0: l0 -> l1 : c^0'=c^post1, p^0'=p^post1, s^0'=s^post1, (1+p^0-c^0 <= 0 /\ -1+s^post1-s^0 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 1: l1 -> l0 : c^0'=c^post2, p^0'=p^post2, s^0'=s^post2, (-p^post2+p^0 == 0 /\ -s^post2+s^0 == 0 /\ -c^post2+c^0 == 0), cost: 1 2: l2 -> l0 : c^0'=c^post3, p^0'=p^post3, s^0'=s^post3, (-1+p^post3 == 0 /\ -1+s^post3 == 0 /\ -c^post3+c^0 == 0), cost: 1 3: l3 -> l2 : c^0'=c^post4, p^0'=p^post4, s^0'=s^post4, (-c^post4+c^0 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0), cost: 1 Chained Linear Paths Start location: l3 Program variables: c^0 p^0 s^0 5: l0 -> l0 : c^0'=c^post2, p^0'=p^post2, s^0'=s^post2, (-p^post2+p^post1 == 0 /\ 1+p^0-c^0 <= 0 /\ -s^post2+s^post1 == 0 /\ -1+s^post1-s^0 == 0 /\ -c^post2+c^post1 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 4: l3 -> l0 : c^0'=c^post3, p^0'=p^post3, s^0'=s^post3, (c^post4-c^post3 == 0 /\ -c^post4+c^0 == 0 /\ -1+p^post3 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0 /\ -1+s^post3 == 0), cost: 1 Eliminating location l2 by chaining: Applied chaining First rule: l3 -> l2 : c^0'=c^post4, p^0'=p^post4, s^0'=s^post4, (-c^post4+c^0 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0), cost: 1 Second rule: l2 -> l0 : c^0'=c^post3, p^0'=p^post3, s^0'=s^post3, (-1+p^post3 == 0 /\ -1+s^post3 == 0 /\ -c^post3+c^0 == 0), cost: 1 New rule: l3 -> l0 : c^0'=c^post3, p^0'=p^post3, s^0'=s^post3, (c^post4-c^post3 == 0 /\ -c^post4+c^0 == 0 /\ -1+p^post3 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0 /\ -1+s^post3 == 0), cost: 1 Applied deletion Removed the following rules: 2 3 Eliminating location l1 by chaining: Applied chaining First rule: l0 -> l1 : c^0'=c^post1, p^0'=p^post1, s^0'=s^post1, (1+p^0-c^0 <= 0 /\ -1+s^post1-s^0 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 Second rule: l1 -> l0 : c^0'=c^post2, p^0'=p^post2, s^0'=s^post2, (-p^post2+p^0 == 0 /\ -s^post2+s^0 == 0 /\ -c^post2+c^0 == 0), cost: 1 New rule: l0 -> l0 : c^0'=c^post2, p^0'=p^post2, s^0'=s^post2, (-p^post2+p^post1 == 0 /\ 1+p^0-c^0 <= 0 /\ -s^post2+s^post1 == 0 /\ -1+s^post1-s^0 == 0 /\ -c^post2+c^post1 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 Applied deletion Removed the following rules: 0 1 Simplified Transitions Start location: l3 Program variables: c^0 p^0 s^0 7: l0 -> l0 : p^0'=s^0, s^0'=1+s^0, 1+p^0-c^0 <= 0, cost: 1 6: l3 -> l0 : p^0'=1, s^0'=1, T, cost: 1 Propagated Equalities Original rule: l3 -> l0 : c^0'=c^post3, p^0'=p^post3, s^0'=s^post3, (c^post4-c^post3 == 0 /\ -c^post4+c^0 == 0 /\ -1+p^post3 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0 /\ -1+s^post3 == 0), cost: 1 New rule: l3 -> l0 : c^0'=c^post4, p^0'=1, s^0'=1, (0 == 0 /\ -c^post4+c^0 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0), cost: 1 propagated equality c^post3 = c^post4 propagated equality p^post3 = 1 propagated equality s^post3 = 1 Propagated Equalities Original rule: l3 -> l0 : c^0'=c^post4, p^0'=1, s^0'=1, (0 == 0 /\ -c^post4+c^0 == 0 /\ -p^post4+p^0 == 0 /\ -s^post4+s^0 == 0), cost: 1 New rule: l3 -> l0 : c^0'=c^0, p^0'=1, s^0'=1, 0 == 0, cost: 1 propagated equality c^post4 = c^0 propagated equality p^post4 = p^0 propagated equality s^post4 = s^0 Simplified Guard Original rule: l3 -> l0 : c^0'=c^0, p^0'=1, s^0'=1, 0 == 0, cost: 1 New rule: l3 -> l0 : c^0'=c^0, p^0'=1, s^0'=1, T, cost: 1 Removed Trivial Updates Original rule: l3 -> l0 : c^0'=c^0, p^0'=1, s^0'=1, T, cost: 1 New rule: l3 -> l0 : p^0'=1, s^0'=1, T, cost: 1 Propagated Equalities Original rule: l0 -> l0 : c^0'=c^post2, p^0'=p^post2, s^0'=s^post2, (-p^post2+p^post1 == 0 /\ 1+p^0-c^0 <= 0 /\ -s^post2+s^post1 == 0 /\ -1+s^post1-s^0 == 0 /\ -c^post2+c^post1 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 New rule: l0 -> l0 : c^0'=c^post1, p^0'=p^post1, s^0'=s^post1, (0 == 0 /\ 1+p^0-c^0 <= 0 /\ -1+s^post1-s^0 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 propagated equality p^post2 = p^post1 propagated equality s^post2 = s^post1 propagated equality c^post2 = c^post1 Propagated Equalities Original rule: l0 -> l0 : c^0'=c^post1, p^0'=p^post1, s^0'=s^post1, (0 == 0 /\ 1+p^0-c^0 <= 0 /\ -1+s^post1-s^0 == 0 /\ -c^post1+c^0 == 0 /\ p^post1-s^0 == 0), cost: 1 New rule: l0 -> l0 : c^0'=c^0, p^0'=s^0, s^0'=1+s^0, (0 == 0 /\ 1+p^0-c^0 <= 0), cost: 1 propagated equality s^post1 = 1+s^0 propagated equality c^post1 = c^0 propagated equality p^post1 = s^0 Simplified Guard Original rule: l0 -> l0 : c^0'=c^0, p^0'=s^0, s^0'=1+s^0, (0 == 0 /\ 1+p^0-c^0 <= 0), cost: 1 New rule: l0 -> l0 : c^0'=c^0, p^0'=s^0, s^0'=1+s^0, 1+p^0-c^0 <= 0, cost: 1 Removed Trivial Updates Original rule: l0 -> l0 : c^0'=c^0, p^0'=s^0, s^0'=1+s^0, 1+p^0-c^0 <= 0, cost: 1 New rule: l0 -> l0 : p^0'=s^0, s^0'=1+s^0, 1+p^0-c^0 <= 0, cost: 1 Step with 6 Trace 6[T] Blocked [{}, {}] Step with 7 Trace 6[T], 7[(1+p^0-c^0 <= 0)] Blocked [{}, {}, {}] Accelerate Start location: l3 Program variables: c^0 p^0 s^0 7: l0 -> l0 : p^0'=s^0, s^0'=1+s^0, 1+p^0-c^0 <= 0, cost: 1 8: l0 -> l0 : p^0'=-1+s^0+n, s^0'=s^0+n, (1-s^0-n+c^0 >= 0 /\ -1-p^0+c^0 >= 0 /\ -1+n >= 0), cost: 1 6: l3 -> l0 : p^0'=1, s^0'=1, T, cost: 1 Loop Acceleration Original rule: l0 -> l0 : p^0'=s^0, s^0'=1+s^0, (1+p^0-c^0 <= 0), cost: 1 New rule: l0 -> l0 : p^0'=-1+s^0+n, s^0'=s^0+n, (1-s^0-n+c^0 >= 0 /\ -1-p^0+c^0 >= 0 /\ -1+n >= 0), cost: 1 -1-p^0+c^0 >= 0 [0]: eventual decrease yields (1-s^0-n+c^0 >= 0 /\ -1-p^0+c^0 >= 0) Replacement map: {-1-p^0+c^0 >= 0 -> (1-s^0-n+c^0 >= 0 /\ -1-p^0+c^0 >= 0)} Trace 6[T], 8[(1-s^0-n+c^0 >= 0 /\ -1-p^0+c^0 >= 0 /\ -1+n >= 0)] Blocked [{}, {}, {7[T], 8[T]}] Backtrack Trace 6[T] Blocked [{}, {8[T]}] Step with 7 Trace 6[T], 7[(1+p^0-c^0 <= 0)] Blocked [{}, {8[T]}, {}] Covered Trace 6[T] Blocked [{}, {7[T], 8[T]}] Backtrack Trace Blocked [{6[T]}] Accept unknown Build SHA: a05f16bf13df659c382799650051f91bf6828c7b