unknown Initial ITS Start location: __init Program variables: arg1 arg2 arg3 0: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p1, arg2'=arg2p1, arg3'=arg3p1, (-arg2p1 == 0 /\ -arg1p1 == 0 /\ arg1 > 0 /\ -arg3p1 == 0 /\ -arg2 == 0), cost: 1 1: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p2, arg2'=arg2p2, arg3'=arg3p2, (-arg1p2 == 0 /\ 1+x2 > 0 /\ -arg3p2 == 0 /\ arg1 > 0 /\ -arg2p2-x2 == 0 /\ 1-arg2 == 0), cost: 1 2: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p3, arg2'=arg2p3, arg3'=arg3p3, (1+x6 > 0 /\ -x6-arg1p3 == 0 /\ -arg3p3-x6 == 0 /\ arg1 > 0 /\ -arg2p3-x5 == 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 3: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1p4, arg2'=arg2p4, arg3'=arg3p4, (1 > 0 /\ 1-arg2p4+arg2 == 0 /\ -arg3p4+arg1+arg2 == 0 /\ -arg1p4+arg1+arg2 == 0 /\ arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 4: __init -> f1_0_main_Load : arg1'=arg1p5, arg2'=arg2p5, arg3'=arg3p5, T, cost: 1 Simplified Transitions Start location: __init Program variables: arg1 arg2 arg3 5: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=0, arg3'=0, (arg1 > 0 /\ -arg2 == 0), cost: 1 6: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=-x2, arg3'=0, (1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0), cost: 1 7: f1_0_main_Load -> f260_0_loop_LE : arg1'=-x6, arg2'=-x5, arg3'=-x6, (1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 8: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 4: __init -> f1_0_main_Load : arg1'=arg1p5, arg2'=arg2p5, arg3'=arg3p5, T, cost: 1 Propagated Equalities Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p1, arg2'=arg2p1, arg3'=arg3p1, (-arg2p1 == 0 /\ -arg1p1 == 0 /\ arg1 > 0 /\ -arg3p1 == 0 /\ -arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=0, arg3'=0, (0 == 0 /\ arg1 > 0 /\ -arg2 == 0), cost: 1 propagated equality arg2p1 = 0 propagated equality arg1p1 = 0 propagated equality arg3p1 = 0 Simplified Guard Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=0, arg3'=0, (0 == 0 /\ arg1 > 0 /\ -arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=0, arg3'=0, (arg1 > 0 /\ -arg2 == 0), cost: 1 Propagated Equalities Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p2, arg2'=arg2p2, arg3'=arg3p2, (-arg1p2 == 0 /\ 1+x2 > 0 /\ -arg3p2 == 0 /\ arg1 > 0 /\ -arg2p2-x2 == 0 /\ 1-arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=-x2, arg3'=0, (0 == 0 /\ 1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0), cost: 1 propagated equality arg1p2 = 0 propagated equality arg3p2 = 0 propagated equality arg2p2 = -x2 Simplified Guard Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=-x2, arg3'=0, (0 == 0 /\ 1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=-x2, arg3'=0, (1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0), cost: 1 Propagated Equalities Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=arg1p3, arg2'=arg2p3, arg3'=arg3p3, (1+x6 > 0 /\ -x6-arg1p3 == 0 /\ -arg3p3-x6 == 0 /\ arg1 > 0 /\ -arg2p3-x5 == 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=-x6, arg2'=-x5, arg3'=-x6, (0 == 0 /\ 1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 propagated equality arg1p3 = -x6 propagated equality arg3p3 = -x6 propagated equality arg2p3 = -x5 Simplified Guard Original rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=-x6, arg2'=-x5, arg3'=-x6, (0 == 0 /\ 1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 New rule: f1_0_main_Load -> f260_0_loop_LE : arg1'=-x6, arg2'=-x5, arg3'=-x6, (1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 Propagated Equalities Original rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1p4, arg2'=arg2p4, arg3'=arg3p4, (1 > 0 /\ 1-arg2p4+arg2 == 0 /\ -arg3p4+arg1+arg2 == 0 /\ -arg1p4+arg1+arg2 == 0 /\ arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 New rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (0 == 0 /\ 1 > 0 /\ arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 propagated equality arg2p4 = 1+arg2 propagated equality arg3p4 = arg1+arg2 propagated equality arg1p4 = arg1+arg2 Simplified Guard Original rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (0 == 0 /\ 1 > 0 /\ arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 New rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 Step with 4 Trace 4[T] Blocked [{}, {}] Step with 5 Trace 4[T], 5[(arg1 > 0 /\ -arg2 == 0)] Blocked [{}, {}, {}] Backtrack Trace 4[T] Blocked [{}, {5[T]}] Step with 6 Trace 4[T], 6[(1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0)] Blocked [{}, {5[T]}, {}] Backtrack Trace 4[T] Blocked [{}, {5[T], 6[T]}] Step with 7 Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)] Blocked [{}, {5[T], 6[T]}, {}] Step with 8 Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)], 8[(arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0)] Blocked [{}, {5[T], 6[T]}, {}, {}] Accelerate Start location: __init Program variables: arg1 arg2 arg3 5: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=0, arg3'=0, (arg1 > 0 /\ -arg2 == 0), cost: 1 6: f1_0_main_Load -> f260_0_loop_LE : arg1'=0, arg2'=-x2, arg3'=0, (1+x2 > 0 /\ arg1 > 0 /\ 1-arg2 == 0), cost: 1 7: f1_0_main_Load -> f260_0_loop_LE : arg1'=-x6, arg2'=-x5, arg3'=-x6, (1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0), cost: 1 8: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 9: f260_0_loop_LE -> f260_0_loop_LE : arg1'=1/2*n^2-1/2*n+n*arg2+arg1, arg2'=n+arg2, arg3'=-1/2+1/2*(-1+n)^2+1/2*n+arg1+(-1+n)*arg2+arg2, (-1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -3/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -arg1+arg2 > 0 /\ -arg3+arg1 >= 0 /\ arg3-arg1 >= 0 /\ -1+n >= 0), cost: 1 4: __init -> f1_0_main_Load : arg1'=arg1p5, arg2'=arg2p5, arg3'=arg3p5, T, cost: 1 Loop Acceleration Original rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=arg1+arg2, arg2'=1+arg2, arg3'=arg1+arg2, (arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0), cost: 1 New rule: f260_0_loop_LE -> f260_0_loop_LE : arg1'=1/2*n^2-1/2*n+n*arg2+arg1, arg2'=n+arg2, arg3'=-1/2+1/2*(-1+n)^2+1/2*n+arg1+(-1+n)*arg2+arg2, (-1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -3/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -arg1+arg2 > 0 /\ -arg3+arg1 >= 0 /\ arg3-arg1 >= 0 /\ -1+n >= 0), cost: 1 1-arg1+arg2 > 0 [0]: montonic decrease yields -1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0, dependencies: -arg1+arg2 > 0 1-arg1+arg2 > 0 [1]: eventual decrease yields (-1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ 1-arg1+arg2 > 0) -arg1+arg2 > 0 [0]: eventual decrease yields (-3/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -arg1+arg2 > 0) -arg3+arg1 >= 0 [0]: monotonic increase yields -arg3+arg1 >= 0 arg3-arg1 >= 0 [0]: monotonic increase yields arg3-arg1 >= 0 Replacement map: {1-arg1+arg2 > 0 -> -1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0, -arg1+arg2 > 0 -> (-3/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -arg1+arg2 > 0), -arg3+arg1 >= 0 -> -arg3+arg1 >= 0, arg3-arg1 >= 0 -> arg3-arg1 >= 0} Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)], 9[(-1/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -3/2-1/2*(-1+n)^2+3/2*n-arg1-(-1+n)*arg2+arg2 > 0 /\ -arg1+arg2 > 0 /\ -arg3+arg1 >= 0 /\ arg3-arg1 >= 0 /\ -1+n >= 0)] Blocked [{}, {5[T], 6[T]}, {}, {8[T], 9[T]}] Backtrack Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)] Blocked [{}, {5[T], 6[T]}, {9[T]}] Step with 8 Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)], 8[(arg1-arg2 < 0 /\ -arg3+arg1 == 0 /\ -1+arg1-arg2 < 0)] Blocked [{}, {5[T], 6[T]}, {9[T]}, {}] Covered Trace 4[T], 7[(1+x6 > 0 /\ arg1 > 0 /\ -1+arg2 > 0 /\ 1+x5 > 0)] Blocked [{}, {5[T], 6[T]}, {8[T], 9[T]}] Backtrack Trace 4[T] Blocked [{}, {5[T], 6[T], 7[T]}] Backtrack Trace Blocked [{4[T]}] Accept unknown Build SHA: a05f16bf13df659c382799650051f91bf6828c7b