YES(?,O(n^1)) * Step 1: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. start(A) -> a(A) [A >= 1] (1,1) 1. start(A) -> a(A) [A >= 2] (1,1) 2. start(A) -> a(A) [A >= 4] (1,1) 3. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 2 && A = 2*B] (?,1) 4. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 1 && A = 1 + 2*B] (?,1) Signature: {(a,1);(start,1)} Flow Graph: [0->{3,4},1->{3,4},2->{3,4},3->{3,4},4->{3,4}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(a) = -1 + 2*x1 p(start) = 2*x1 Following rules are strictly oriented: [A >= 4] ==> start(A) = 2*A > -1 + 2*A = a(A) [-1 + A >= 0 && 2*B >= 1 && A = 1 + 2*B] ==> a(A) = -1 + 2*A > -1 + 2*B = a(B) Following rules are weakly oriented: [A >= 1] ==> start(A) = 2*A >= -1 + 2*A = a(A) [A >= 2] ==> start(A) = 2*A >= -1 + 2*A = a(A) [-1 + A >= 0 && 2*B >= 2 && A = 2*B] ==> a(A) = -1 + 2*A >= -1 + 2*B = a(B) * Step 2: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. start(A) -> a(A) [A >= 1] (1,1) 1. start(A) -> a(A) [A >= 2] (1,1) 2. start(A) -> a(A) [A >= 4] (1,1) 3. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 2 && A = 2*B] (?,1) 4. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 1 && A = 1 + 2*B] (2*A,1) Signature: {(a,1);(start,1)} Flow Graph: [0->{3,4},1->{3,4},2->{3,4},3->{3,4},4->{3,4}] + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(a) = -1 + 2*x1 p(start) = 2*x1 Following rules are strictly oriented: [-1 + A >= 0 && 2*B >= 2 && A = 2*B] ==> a(A) = -1 + 2*A > -1 + 2*B = a(B) [-1 + A >= 0 && 2*B >= 1 && A = 1 + 2*B] ==> a(A) = -1 + 2*A > -1 + 2*B = a(B) Following rules are weakly oriented: [A >= 1] ==> start(A) = 2*A >= -1 + 2*A = a(A) [A >= 2] ==> start(A) = 2*A >= -1 + 2*A = a(A) [A >= 4] ==> start(A) = 2*A >= -1 + 2*A = a(A) * Step 3: KnowledgePropagation WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. start(A) -> a(A) [A >= 1] (1,1) 1. start(A) -> a(A) [A >= 2] (1,1) 2. start(A) -> a(A) [A >= 4] (1,1) 3. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 2 && A = 2*B] (2*A,1) 4. a(A) -> a(B) [-1 + A >= 0 && 2*B >= 1 && A = 1 + 2*B] (2*A,1) Signature: {(a,1);(start,1)} Flow Graph: [0->{3,4},1->{3,4},2->{3,4},3->{3,4},4->{3,4}] + Applied Processor: KnowledgePropagation + Details: The problem is already solved. YES(?,O(n^1))