WORST_CASE(?,O(n^1)) * Step 1: LocalSizeboundsProc WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (?,1) 3. m2(A,B) -> m5(A,B) True (?,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) 6. m1(A,B) -> m4(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5,6},2->{1},3->{2},4->{1},5->{4},6->{}] + Applied Processor: LocalSizeboundsProc + Details: LocalSizebounds generated; rvgraph (<0,0,A>, A, .= 0) (<0,0,B>, B, .= 0) (<1,0,A>, A, .= 0) (<1,0,B>, B, .= 0) (<2,0,A>, 0, .= 0) (<2,0,B>, B, .= 0) (<2,1,A>, 0, .= 0) (<2,1,B>, B, .= 0) (<3,0,A>, A, .= 0) (<3,0,B>, B, .= 0) (<4,0,A>, B, .= 0) (<4,0,B>, 1 + B, .+ 1) (<5,0,A>, A, .= 0) (<5,0,B>, B, .= 0) (<6,0,A>, A, .= 0) (<6,0,B>, B, .= 0) * Step 2: SizeboundsProc WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (?,1) 3. m2(A,B) -> m5(A,B) True (?,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) 6. m1(A,B) -> m4(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5,6},2->{1},3->{2},4->{1},5->{4},6->{}] Sizebounds: (<0,0,A>, ?) (<0,0,B>, ?) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, ?) (<2,0,B>, ?) (<2,1,A>, ?) (<2,1,B>, ?) (<3,0,A>, ?) (<3,0,B>, ?) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) (<6,0,A>, ?) (<6,0,B>, ?) + Applied Processor: SizeboundsProc + Details: Sizebounds computed: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) (<6,0,A>, ?) (<6,0,B>, ?) * Step 3: LeafRules WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (?,1) 3. m2(A,B) -> m5(A,B) True (?,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) 6. m1(A,B) -> m4(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5,6},2->{1},3->{2},4->{1},5->{4},6->{}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) (<6,0,A>, ?) (<6,0,B>, ?) + Applied Processor: LeafRules + Details: The following transitions are estimated by its predecessors and are removed [6] * Step 4: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (?,1) 3. m2(A,B) -> m5(A,B) True (?,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5},2->{1},3->{2},4->{1},5->{4}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(listReverse) = 2 p(m0) = 1 p(m1) = 1 p(m2) = 2 p(m3) = 0 p(m5) = 1 p(m6) = 1 The following rules are strictly oriented: True ==> m2(A,B) = 2 > 1 = m5(A,B) The following rules are weakly oriented: True ==> listReverse(A,B) = 2 >= 2 = m2(A,B) [A >= 0] ==> m0(A,B) = 1 >= 1 = m1(A,B) True ==> m5(A,B) = 1 >= 1 = c2(m3(0,B),m0(0,B)) [A >= 0 && C >= 0 && B >= 1 + C] ==> m6(A,B) = 1 >= 1 = m0(B,C) True ==> m1(A,B) = 1 >= 1 = m6(A,B) * Step 5: KnowledgePropagation WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (?,1) 3. m2(A,B) -> m5(A,B) True (2,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5},2->{1},3->{2},4->{1},5->{4}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) + Applied Processor: KnowledgePropagation + Details: We propagate bounds from predecessors. * Step 6: PolyRank WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (2,1) 3. m2(A,B) -> m5(A,B) True (2,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (?,1) 5. m1(A,B) -> m6(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5},2->{1},3->{2},4->{1},5->{4}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) + Applied Processor: PolyRank {useFarkas = True, withSizebounds = [1,4,5], shape = Linear} + Details: We apply a polynomial interpretation of shape linear: p(m0) = 1 + x2 p(m1) = 1 + x2 p(m6) = 1 + x2 The following rules are strictly oriented: [A >= 0 && C >= 0 && B >= 1 + C] ==> m6(A,B) = 1 + B > 1 + C = m0(B,C) The following rules are weakly oriented: [A >= 0] ==> m0(A,B) = 1 + B >= 1 + B = m1(A,B) True ==> m1(A,B) = 1 + B >= 1 + B = m6(A,B) We use the following global sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) * Step 7: KnowledgePropagation WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (?,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (2,1) 3. m2(A,B) -> m5(A,B) True (2,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (2 + 2*B,1) 5. m1(A,B) -> m6(A,B) True (?,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5},2->{1},3->{2},4->{1},5->{4}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) + Applied Processor: KnowledgePropagation + Details: We propagate bounds from predecessors. * Step 8: LocalSizeboundsProc WORST_CASE(?,O(n^1)) + Considered Problem: Rules: 0. listReverse(A,B) -> m2(A,B) True (1,1) 1. m0(A,B) -> m1(A,B) [A >= 0] (4 + 2*B,1) 2. m5(A,B) -> c2(m3(0,B),m0(0,B)) True (2,1) 3. m2(A,B) -> m5(A,B) True (2,1) 4. m6(A,B) -> m0(B,C) [A >= 0 && C >= 0 && B >= 1 + C] (2 + 2*B,1) 5. m1(A,B) -> m6(A,B) True (4 + 2*B,1) Signature: {(listReverse,2);(m0,2);(m1,2);(m2,2);(m3,2);(m4,2);(m5,2);(m6,2)} Flow Graph: [0->{3},1->{5},2->{1},3->{2},4->{1},5->{4}] Sizebounds: (<0,0,A>, A) (<0,0,B>, B) (<1,0,A>, ?) (<1,0,B>, ?) (<2,0,A>, 0) (<2,0,B>, B) (<2,1,A>, 0) (<2,1,B>, B) (<3,0,A>, A) (<3,0,B>, B) (<4,0,A>, ?) (<4,0,B>, ?) (<5,0,A>, ?) (<5,0,B>, ?) + Applied Processor: LocalSizeboundsProc + Details: The problem is already solved. WORST_CASE(?,O(n^1))