YES(?,O(n^1)) * Step 1: TrivialSCCs WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (?,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + 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. f2(A,B,C) -> f2(-1 + A,B,C) [A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (?,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (1,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(f1) = -20 + x2 p(f2) = -21 + x2 p(f3) = -20 + x2 p(f300) = -20 + x2 Following rules are strictly oriented: [B >= 21] ==> f300(A,B,C) = -20 + B > -21 + B = f2(A,B,C) Following rules are weakly oriented: [A >= 31] ==> f2(A,B,C) = -21 + B >= -21 + B = f2(-1 + A,B,C) [30 >= A] ==> f2(A,B,C) = -21 + B >= -21 + B = f300(A,-1 + B,C) [20 >= B] ==> f300(A,B,C) = -20 + B >= -20 + B = f1(A,B,D) True ==> f3(A,B,C) = -20 + B >= -20 + B = f300(A,B,C) * Step 3: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [A >= 31] (?,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (20 + B,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (1,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(f1) = 1 + x1 p(f2) = 1 + x1 p(f3) = 1 + x1 p(f300) = 1 + x1 Following rules are strictly oriented: [A >= 31] ==> f2(A,B,C) = 1 + A > A = f2(-1 + A,B,C) Following rules are weakly oriented: [30 >= A] ==> f2(A,B,C) = 1 + A >= 1 + A = f300(A,-1 + B,C) [B >= 21] ==> f300(A,B,C) = 1 + A >= 1 + A = f2(A,B,C) [20 >= B] ==> f300(A,B,C) = 1 + A >= 1 + A = f1(A,B,D) True ==> f3(A,B,C) = 1 + A >= 1 + A = f300(A,B,C) * Step 4: KnowledgePropagation WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [A >= 31] (1 + A,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [30 >= A] (?,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (20 + B,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (1,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: KnowledgePropagation + Details: We propagate bounds from predecessors. * Step 5: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. f2(A,B,C) -> f2(-1 + A,B,C) [A >= 31] (1 + A,1) 1. f2(A,B,C) -> f300(A,-1 + B,C) [30 >= A] (21 + A + B,1) 2. f300(A,B,C) -> f2(A,B,C) [B >= 21] (20 + B,1) 3. f300(A,B,C) -> f1(A,B,D) [20 >= B] (1,1) 4. f3(A,B,C) -> f300(A,B,C) True (1,1) Signature: {(f1,3);(f2,3);(f3,3);(f300,3)} Flow Graph: [0->{0,1},1->{2,3},2->{0,1},3->{},4->{2,3}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: The problem is already solved. YES(?,O(n^1))