YES(?,O(n^1)) * Step 1: TrivialSCCs WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. eval_ndecr_start(v_0,v_i_0,v_n) -> eval_ndecr_bb0_in(v_0,v_i_0,v_n) True (1,1) 1. eval_ndecr_bb0_in(v_0,v_i_0,v_n) -> eval_ndecr_0(v_0,v_i_0,v_n) True (?,1) 2. eval_ndecr_0(v_0,v_i_0,v_n) -> eval_ndecr_1(v_0,v_i_0,v_n) True (?,1) 3. eval_ndecr_1(v_0,v_i_0,v_n) -> eval_ndecr_2(-1 + v_n,v_i_0,v_n) True (?,1) 4. eval_ndecr_2(v_0,v_i_0,v_n) -> eval_ndecr_3(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (?,1) 5. eval_ndecr_3(v_0,v_i_0,v_n) -> eval_ndecr_4(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (?,1) 6. eval_ndecr_4(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,v_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (?,1) 7. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb2_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -1 + v_i_0 >= 1] 8. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb3_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && 1 >= v_i_0] 9. eval_ndecr_bb2_in(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,-1 + v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -3 + v_n >= 0 && -5 + v_i_0 + v_n >= 0 && -1 + -1*v_i_0 + v_n >= 0 && -5 + v_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -2 + v_i_0 >= 0 && -4 + v_0 + v_i_0 >= 0 && -2 + v_0 >= 0] 10. eval_ndecr_bb3_in(v_0,v_i_0,v_n) -> eval_ndecr_stop(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && 1 + -1*v_i_0 >= 0 && v_0 + -1*v_i_0 >= 0] Signature: {(eval_ndecr_0,3) ;(eval_ndecr_1,3) ;(eval_ndecr_2,3) ;(eval_ndecr_3,3) ;(eval_ndecr_4,3) ;(eval_ndecr_bb0_in,3) ;(eval_ndecr_bb1_in,3) ;(eval_ndecr_bb2_in,3) ;(eval_ndecr_bb3_in,3) ;(eval_ndecr_start,3) ;(eval_ndecr_stop,3)} Flow Graph: [0->{1},1->{2},2->{3},3->{4},4->{5},5->{6},6->{7,8},7->{9},8->{10},9->{7,8},10->{}] + Applied Processor: TrivialSCCs + Details: All trivial SCCs of the transition graph admit timebound 1. * Step 2: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. eval_ndecr_start(v_0,v_i_0,v_n) -> eval_ndecr_bb0_in(v_0,v_i_0,v_n) True (1,1) 1. eval_ndecr_bb0_in(v_0,v_i_0,v_n) -> eval_ndecr_0(v_0,v_i_0,v_n) True (1,1) 2. eval_ndecr_0(v_0,v_i_0,v_n) -> eval_ndecr_1(v_0,v_i_0,v_n) True (1,1) 3. eval_ndecr_1(v_0,v_i_0,v_n) -> eval_ndecr_2(-1 + v_n,v_i_0,v_n) True (1,1) 4. eval_ndecr_2(v_0,v_i_0,v_n) -> eval_ndecr_3(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 5. eval_ndecr_3(v_0,v_i_0,v_n) -> eval_ndecr_4(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 6. eval_ndecr_4(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,v_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 7. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb2_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -1 + v_i_0 >= 1] 8. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb3_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && 1 >= v_i_0] 9. eval_ndecr_bb2_in(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,-1 + v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -3 + v_n >= 0 && -5 + v_i_0 + v_n >= 0 && -1 + -1*v_i_0 + v_n >= 0 && -5 + v_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -2 + v_i_0 >= 0 && -4 + v_0 + v_i_0 >= 0 && -2 + v_0 >= 0] 10. eval_ndecr_bb3_in(v_0,v_i_0,v_n) -> eval_ndecr_stop(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && 1 + -1*v_i_0 >= 0 && v_0 + -1*v_i_0 >= 0] Signature: {(eval_ndecr_0,3) ;(eval_ndecr_1,3) ;(eval_ndecr_2,3) ;(eval_ndecr_3,3) ;(eval_ndecr_4,3) ;(eval_ndecr_bb0_in,3) ;(eval_ndecr_bb1_in,3) ;(eval_ndecr_bb2_in,3) ;(eval_ndecr_bb3_in,3) ;(eval_ndecr_start,3) ;(eval_ndecr_stop,3)} Flow Graph: [0->{1},1->{2},2->{3},3->{4},4->{5},5->{6},6->{7,8},7->{9},8->{10},9->{7,8},10->{}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(eval_ndecr_0) = x3 p(eval_ndecr_1) = x3 p(eval_ndecr_2) = x3 p(eval_ndecr_3) = x3 p(eval_ndecr_4) = -1 + x3 p(eval_ndecr_bb0_in) = x3 p(eval_ndecr_bb1_in) = x2 p(eval_ndecr_bb2_in) = x2 p(eval_ndecr_bb3_in) = x2 p(eval_ndecr_start) = x3 p(eval_ndecr_stop) = x2 Following rules are strictly oriented: [1 + v_0 + -1*v_n >= 0 ==> && -3 + v_n >= 0 && -5 + v_i_0 + v_n >= 0 && -1 + -1*v_i_0 + v_n >= 0 && -5 + v_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -2 + v_i_0 >= 0 && -4 + v_0 + v_i_0 >= 0 && -2 + v_0 >= 0] eval_ndecr_bb2_in(v_0,v_i_0,v_n) = v_i_0 > -1 + v_i_0 = eval_ndecr_bb1_in(v_0,-1 + v_i_0,v_n) Following rules are weakly oriented: True ==> eval_ndecr_start(v_0,v_i_0,v_n) = v_n >= v_n = eval_ndecr_bb0_in(v_0,v_i_0,v_n) True ==> eval_ndecr_bb0_in(v_0,v_i_0,v_n) = v_n >= v_n = eval_ndecr_0(v_0,v_i_0,v_n) True ==> eval_ndecr_0(v_0,v_i_0,v_n) = v_n >= v_n = eval_ndecr_1(v_0,v_i_0,v_n) True ==> eval_ndecr_1(v_0,v_i_0,v_n) = v_n >= v_n = eval_ndecr_2(-1 + v_n,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] ==> eval_ndecr_2(v_0,v_i_0,v_n) = v_n >= v_n = eval_ndecr_3(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] ==> eval_ndecr_3(v_0,v_i_0,v_n) = v_n >= -1 + v_n = eval_ndecr_4(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] ==> eval_ndecr_4(v_0,v_i_0,v_n) = -1 + v_n >= v_0 = eval_ndecr_bb1_in(v_0,v_0,v_n) [1 + v_0 + -1*v_n >= 0 ==> && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -1 + v_i_0 >= 1] eval_ndecr_bb1_in(v_0,v_i_0,v_n) = v_i_0 >= v_i_0 = eval_ndecr_bb2_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 ==> && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && 1 >= v_i_0] eval_ndecr_bb1_in(v_0,v_i_0,v_n) = v_i_0 >= v_i_0 = eval_ndecr_bb3_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 ==> && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && 1 + -1*v_i_0 >= 0 && v_0 + -1*v_i_0 >= 0] eval_ndecr_bb3_in(v_0,v_i_0,v_n) = v_i_0 >= v_i_0 = eval_ndecr_stop(v_0,v_i_0,v_n) * Step 3: KnowledgePropagation WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. eval_ndecr_start(v_0,v_i_0,v_n) -> eval_ndecr_bb0_in(v_0,v_i_0,v_n) True (1,1) 1. eval_ndecr_bb0_in(v_0,v_i_0,v_n) -> eval_ndecr_0(v_0,v_i_0,v_n) True (1,1) 2. eval_ndecr_0(v_0,v_i_0,v_n) -> eval_ndecr_1(v_0,v_i_0,v_n) True (1,1) 3. eval_ndecr_1(v_0,v_i_0,v_n) -> eval_ndecr_2(-1 + v_n,v_i_0,v_n) True (1,1) 4. eval_ndecr_2(v_0,v_i_0,v_n) -> eval_ndecr_3(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 5. eval_ndecr_3(v_0,v_i_0,v_n) -> eval_ndecr_4(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 6. eval_ndecr_4(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,v_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 7. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb2_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (?,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -1 + v_i_0 >= 1] 8. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb3_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && 1 >= v_i_0] 9. eval_ndecr_bb2_in(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,-1 + v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (v_n,1) && -3 + v_n >= 0 && -5 + v_i_0 + v_n >= 0 && -1 + -1*v_i_0 + v_n >= 0 && -5 + v_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -2 + v_i_0 >= 0 && -4 + v_0 + v_i_0 >= 0 && -2 + v_0 >= 0] 10. eval_ndecr_bb3_in(v_0,v_i_0,v_n) -> eval_ndecr_stop(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && 1 + -1*v_i_0 >= 0 && v_0 + -1*v_i_0 >= 0] Signature: {(eval_ndecr_0,3) ;(eval_ndecr_1,3) ;(eval_ndecr_2,3) ;(eval_ndecr_3,3) ;(eval_ndecr_4,3) ;(eval_ndecr_bb0_in,3) ;(eval_ndecr_bb1_in,3) ;(eval_ndecr_bb2_in,3) ;(eval_ndecr_bb3_in,3) ;(eval_ndecr_start,3) ;(eval_ndecr_stop,3)} Flow Graph: [0->{1},1->{2},2->{3},3->{4},4->{5},5->{6},6->{7,8},7->{9},8->{10},9->{7,8},10->{}] + Applied Processor: KnowledgePropagation + Details: We propagate bounds from predecessors. * Step 4: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. eval_ndecr_start(v_0,v_i_0,v_n) -> eval_ndecr_bb0_in(v_0,v_i_0,v_n) True (1,1) 1. eval_ndecr_bb0_in(v_0,v_i_0,v_n) -> eval_ndecr_0(v_0,v_i_0,v_n) True (1,1) 2. eval_ndecr_0(v_0,v_i_0,v_n) -> eval_ndecr_1(v_0,v_i_0,v_n) True (1,1) 3. eval_ndecr_1(v_0,v_i_0,v_n) -> eval_ndecr_2(-1 + v_n,v_i_0,v_n) True (1,1) 4. eval_ndecr_2(v_0,v_i_0,v_n) -> eval_ndecr_3(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 5. eval_ndecr_3(v_0,v_i_0,v_n) -> eval_ndecr_4(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 6. eval_ndecr_4(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,v_0,v_n) [1 + v_0 + -1*v_n >= 0 && -1 + -1*v_0 + v_n >= 0] (1,1) 7. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb2_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1 + v_n,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -1 + v_i_0 >= 1] 8. eval_ndecr_bb1_in(v_0,v_i_0,v_n) -> eval_ndecr_bb3_in(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && 1 >= v_i_0] 9. eval_ndecr_bb2_in(v_0,v_i_0,v_n) -> eval_ndecr_bb1_in(v_0,-1 + v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (v_n,1) && -3 + v_n >= 0 && -5 + v_i_0 + v_n >= 0 && -1 + -1*v_i_0 + v_n >= 0 && -5 + v_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && v_0 + -1*v_i_0 >= 0 && -2 + v_i_0 >= 0 && -4 + v_0 + v_i_0 >= 0 && -2 + v_0 >= 0] 10. eval_ndecr_bb3_in(v_0,v_i_0,v_n) -> eval_ndecr_stop(v_0,v_i_0,v_n) [1 + v_0 + -1*v_n >= 0 (1,1) && -1 + -1*v_i_0 + v_n >= 0 && -1 + -1*v_0 + v_n >= 0 && 1 + -1*v_i_0 >= 0 && v_0 + -1*v_i_0 >= 0] Signature: {(eval_ndecr_0,3) ;(eval_ndecr_1,3) ;(eval_ndecr_2,3) ;(eval_ndecr_3,3) ;(eval_ndecr_4,3) ;(eval_ndecr_bb0_in,3) ;(eval_ndecr_bb1_in,3) ;(eval_ndecr_bb2_in,3) ;(eval_ndecr_bb3_in,3) ;(eval_ndecr_start,3) ;(eval_ndecr_stop,3)} Flow Graph: [0->{1},1->{2},2->{3},3->{4},4->{5},5->{6},6->{7,8},7->{9},8->{10},9->{7,8},10->{}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: The problem is already solved. YES(?,O(n^1))