MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil(),l) -> l prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() - Signature: {*/2,+/2,app/2,prod/1,sum/1} / {0/0,cons/2,nil/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {*,+,app,prod,sum} and constructors {0,cons,nil,s} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs *#(x,0()) -> c_1() *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(0(),x) -> c_3() *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(x,0()) -> c_5() +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(0(),x) -> c_7() +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) app#(nil(),l) -> c_10() prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) prod#(nil()) -> c_13() sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) sum#(nil()) -> c_16() Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: *#(x,0()) -> c_1() *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(0(),x) -> c_3() *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(x,0()) -> c_5() +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(0(),x) -> c_7() +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) app#(nil(),l) -> c_10() prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) prod#(nil()) -> c_13() sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) sum#(nil()) -> c_16() - Weak TRS: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) app(cons(x,l1),l2) -> cons(x,app(l1,l2)) app(nil(),l) -> l prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() - Signature: {*/2,+/2,app/2,prod/1,sum/1,*#/2,+#/2,app#/2,prod#/1,sum#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/2,c_3/0,c_4/3 ,c_5/0,c_6/2,c_7/0,c_8/1,c_9/1,c_10/0,c_11/3,c_12/2,c_13/0,c_14/3,c_15/2,c_16/0} - Obligation: innermost runtime complexity wrt. defined symbols {*#,+#,app#,prod#,sum#} and constructors {0,cons,nil,s} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() *#(x,0()) -> c_1() *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(0(),x) -> c_3() *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(x,0()) -> c_5() +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(0(),x) -> c_7() +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) app#(nil(),l) -> c_10() prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) prod#(nil()) -> c_13() sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) sum#(nil()) -> c_16() * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: *#(x,0()) -> c_1() *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(0(),x) -> c_3() *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(x,0()) -> c_5() +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(0(),x) -> c_7() +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) app#(nil(),l) -> c_10() prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) prod#(nil()) -> c_13() sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) sum#(nil()) -> c_16() - Weak TRS: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() - Signature: {*/2,+/2,app/2,prod/1,sum/1,*#/2,+#/2,app#/2,prod#/1,sum#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/2,c_3/0,c_4/3 ,c_5/0,c_6/2,c_7/0,c_8/1,c_9/1,c_10/0,c_11/3,c_12/2,c_13/0,c_14/3,c_15/2,c_16/0} - Obligation: innermost runtime complexity wrt. defined symbols {*#,+#,app#,prod#,sum#} and constructors {0,cons,nil,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,3,5,7,10,13,16} by application of Pre({1,3,5,7,10,13,16}) = {2,4,6,8,9,11,12,14,15}. Here rules are labelled as follows: 1: *#(x,0()) -> c_1() 2: *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) 3: *#(0(),x) -> c_3() 4: *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) 5: +#(x,0()) -> c_5() 6: +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) 7: +#(0(),x) -> c_7() 8: +#(s(x),s(y)) -> c_8(+#(x,y)) 9: app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) 10: app#(nil(),l) -> c_10() 11: prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) 12: prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) 13: prod#(nil()) -> c_13() 14: sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) 15: sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) 16: sum#(nil()) -> c_16() * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) - Weak DPs: *#(x,0()) -> c_1() *#(0(),x) -> c_3() +#(x,0()) -> c_5() +#(0(),x) -> c_7() app#(nil(),l) -> c_10() prod#(nil()) -> c_13() sum#(nil()) -> c_16() - Weak TRS: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() - Signature: {*/2,+/2,app/2,prod/1,sum/1,*#/2,+#/2,app#/2,prod#/1,sum#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/2,c_3/0,c_4/3 ,c_5/0,c_6/2,c_7/0,c_8/1,c_9/1,c_10/0,c_11/3,c_12/2,c_13/0,c_14/3,c_15/2,c_16/0} - Obligation: innermost runtime complexity wrt. defined symbols {*#,+#,app#,prod#,sum#} and constructors {0,cons,nil,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:*#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) -->_2 *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)):2 -->_1 *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)):2 -->_2 *#(0(),x) -> c_3():11 -->_1 *#(0(),x) -> c_3():11 -->_2 *#(x,0()) -> c_1():10 -->_1 *#(x,0()) -> c_1():10 -->_2 *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)):1 -->_1 *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)):1 2:S:*#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) -->_3 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_1 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_3 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 -->_1 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 -->_3 +#(0(),x) -> c_7():13 -->_1 +#(0(),x) -> c_7():13 -->_3 +#(x,0()) -> c_5():12 -->_1 +#(x,0()) -> c_5():12 -->_2 *#(0(),x) -> c_3():11 -->_2 *#(x,0()) -> c_1():10 -->_2 *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)):2 -->_2 *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)):1 3:S:+#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) -->_2 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_1 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_2 +#(0(),x) -> c_7():13 -->_1 +#(0(),x) -> c_7():13 -->_2 +#(x,0()) -> c_5():12 -->_1 +#(x,0()) -> c_5():12 -->_2 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 -->_1 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 4:S:+#(s(x),s(y)) -> c_8(+#(x,y)) -->_1 +#(0(),x) -> c_7():13 -->_1 +#(x,0()) -> c_5():12 -->_1 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_1 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 5:S:app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) -->_1 app#(nil(),l) -> c_10():14 -->_1 app#(cons(x,l1),l2) -> c_9(app#(l1,l2)):5 6:S:prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) -->_3 prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)):7 -->_2 prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)):7 -->_3 prod#(nil()) -> c_13():15 -->_2 prod#(nil()) -> c_13():15 -->_1 *#(0(),x) -> c_3():11 -->_1 *#(x,0()) -> c_1():10 -->_3 prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)):6 -->_2 prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)):6 -->_1 *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)):2 -->_1 *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)):1 7:S:prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) -->_2 prod#(nil()) -> c_13():15 -->_1 *#(0(),x) -> c_3():11 -->_1 *#(x,0()) -> c_1():10 -->_2 prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)):7 -->_2 prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)):6 -->_1 *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)):2 -->_1 *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)):1 8:S:sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) -->_3 sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)):9 -->_2 sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)):9 -->_3 sum#(nil()) -> c_16():16 -->_2 sum#(nil()) -> c_16():16 -->_1 +#(0(),x) -> c_7():13 -->_1 +#(x,0()) -> c_5():12 -->_3 sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)):8 -->_2 sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)):8 -->_1 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_1 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 9:S:sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) -->_2 sum#(nil()) -> c_16():16 -->_1 +#(0(),x) -> c_7():13 -->_1 +#(x,0()) -> c_5():12 -->_2 sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)):9 -->_2 sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)):8 -->_1 +#(s(x),s(y)) -> c_8(+#(x,y)):4 -->_1 +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)):3 10:W:*#(x,0()) -> c_1() 11:W:*#(0(),x) -> c_3() 12:W:+#(x,0()) -> c_5() 13:W:+#(0(),x) -> c_7() 14:W:app#(nil(),l) -> c_10() 15:W:prod#(nil()) -> c_13() 16:W:sum#(nil()) -> c_16() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 16: sum#(nil()) -> c_16() 15: prod#(nil()) -> c_13() 14: app#(nil(),l) -> c_10() 10: *#(x,0()) -> c_1() 11: *#(0(),x) -> c_3() 12: +#(x,0()) -> c_5() 13: +#(0(),x) -> c_7() * Step 5: Failure MAYBE + Considered Problem: - Strict DPs: *#(*(x,y),z) -> c_2(*#(x,*(y,z)),*#(y,z)) *#(s(x),s(y)) -> c_4(+#(*(x,y),+(x,y)),*#(x,y),+#(x,y)) +#(+(x,y),z) -> c_6(+#(x,+(y,z)),+#(y,z)) +#(s(x),s(y)) -> c_8(+#(x,y)) app#(cons(x,l1),l2) -> c_9(app#(l1,l2)) prod#(app(l1,l2)) -> c_11(*#(prod(l1),prod(l2)),prod#(l1),prod#(l2)) prod#(cons(x,l)) -> c_12(*#(x,prod(l)),prod#(l)) sum#(app(l1,l2)) -> c_14(+#(sum(l1),sum(l2)),sum#(l1),sum#(l2)) sum#(cons(x,l)) -> c_15(+#(x,sum(l)),sum#(l)) - Weak TRS: *(x,0()) -> 0() *(*(x,y),z) -> *(x,*(y,z)) *(0(),x) -> 0() *(s(x),s(y)) -> s(+(*(x,y),+(x,y))) +(x,0()) -> x +(+(x,y),z) -> +(x,+(y,z)) +(0(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) prod(app(l1,l2)) -> *(prod(l1),prod(l2)) prod(cons(x,l)) -> *(x,prod(l)) prod(nil()) -> s(0()) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) sum(cons(x,l)) -> +(x,sum(l)) sum(nil()) -> 0() - Signature: {*/2,+/2,app/2,prod/1,sum/1,*#/2,+#/2,app#/2,prod#/1,sum#/1} / {0/0,cons/2,nil/0,s/1,c_1/0,c_2/2,c_3/0,c_4/3 ,c_5/0,c_6/2,c_7/0,c_8/1,c_9/1,c_10/0,c_11/3,c_12/2,c_13/0,c_14/3,c_15/2,c_16/0} - Obligation: innermost runtime complexity wrt. defined symbols {*#,+#,app#,prod#,sum#} and constructors {0,cons,nil,s} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE