MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) goal(x,y) -> power(x,y) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2} / {Cons/2,Nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {add0,goal,mult,power} and constructors {Cons,Nil} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs add0#(x,Nil()) -> c_1() add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x,Nil()) -> c_4() mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x,Nil()) -> c_6() power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: add0#(x,Nil()) -> c_1() add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x,Nil()) -> c_4() mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x,Nil()) -> c_6() power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) goal(x,y) -> power(x,y) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2,add0#/2,goal#/2,mult#/2,power#/2} / {Cons/2,Nil/0,c_1/0,c_2/1,c_3/1,c_4/0 ,c_5/2,c_6/0,c_7/2} - Obligation: innermost runtime complexity wrt. defined symbols {add0#,goal#,mult#,power#} and constructors {Cons,Nil} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) add0#(x,Nil()) -> c_1() add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x,Nil()) -> c_4() mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x,Nil()) -> c_6() power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: add0#(x,Nil()) -> c_1() add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x,Nil()) -> c_4() mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x,Nil()) -> c_6() power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2,add0#/2,goal#/2,mult#/2,power#/2} / {Cons/2,Nil/0,c_1/0,c_2/1,c_3/1,c_4/0 ,c_5/2,c_6/0,c_7/2} - Obligation: innermost runtime complexity wrt. defined symbols {add0#,goal#,mult#,power#} and constructors {Cons,Nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,4,6} by application of Pre({1,4,6}) = {2,3,5,7}. Here rules are labelled as follows: 1: add0#(x,Nil()) -> c_1() 2: add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) 3: goal#(x,y) -> c_3(power#(x,y)) 4: mult#(x,Nil()) -> c_4() 5: mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) 6: power#(x,Nil()) -> c_6() 7: power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) - Weak DPs: add0#(x,Nil()) -> c_1() mult#(x,Nil()) -> c_4() power#(x,Nil()) -> c_6() - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2,add0#/2,goal#/2,mult#/2,power#/2} / {Cons/2,Nil/0,c_1/0,c_2/1,c_3/1,c_4/0 ,c_5/2,c_6/0,c_7/2} - Obligation: innermost runtime complexity wrt. defined symbols {add0#,goal#,mult#,power#} and constructors {Cons,Nil} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) -->_1 add0#(x,Nil()) -> c_1():5 -->_1 add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)):1 2:S:goal#(x,y) -> c_3(power#(x,y)) -->_1 power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)):4 -->_1 power#(x,Nil()) -> c_6():7 3:S:mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) -->_2 mult#(x,Nil()) -> c_4():6 -->_1 add0#(x,Nil()) -> c_1():5 -->_2 mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)):3 -->_1 add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)):1 4:S:power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) -->_2 power#(x,Nil()) -> c_6():7 -->_1 mult#(x,Nil()) -> c_4():6 -->_2 power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)):4 -->_1 mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)):3 5:W:add0#(x,Nil()) -> c_1() 6:W:mult#(x,Nil()) -> c_4() 7:W:power#(x,Nil()) -> c_6() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 6: mult#(x,Nil()) -> c_4() 7: power#(x,Nil()) -> c_6() 5: add0#(x,Nil()) -> c_1() * Step 5: RemoveHeads MAYBE + Considered Problem: - Strict DPs: add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) goal#(x,y) -> c_3(power#(x,y)) mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2,add0#/2,goal#/2,mult#/2,power#/2} / {Cons/2,Nil/0,c_1/0,c_2/1,c_3/1,c_4/0 ,c_5/2,c_6/0,c_7/2} - Obligation: innermost runtime complexity wrt. defined symbols {add0#,goal#,mult#,power#} and constructors {Cons,Nil} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) -->_1 add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)):1 2:S:goal#(x,y) -> c_3(power#(x,y)) -->_1 power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)):4 3:S:mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) -->_2 mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)):3 -->_1 add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)):1 4:S:power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) -->_2 power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)):4 -->_1 mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)):3 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). [(2,goal#(x,y) -> c_3(power#(x,y)))] * Step 6: Failure MAYBE + Considered Problem: - Strict DPs: add0#(x',Cons(x,xs)) -> c_2(add0#(x',xs)) mult#(x',Cons(x,xs)) -> c_5(add0#(x',mult(x',xs)),mult#(x',xs)) power#(x',Cons(x,xs)) -> c_7(mult#(x',power(x',xs)),power#(x',xs)) - Weak TRS: add0(x,Nil()) -> x add0(x',Cons(x,xs)) -> Cons(Cons(Nil(),Nil()),add0(x',xs)) mult(x,Nil()) -> Nil() mult(x',Cons(x,xs)) -> add0(x',mult(x',xs)) power(x,Nil()) -> Cons(Nil(),Nil()) power(x',Cons(x,xs)) -> mult(x',power(x',xs)) - Signature: {add0/2,goal/2,mult/2,power/2,add0#/2,goal#/2,mult#/2,power#/2} / {Cons/2,Nil/0,c_1/0,c_2/1,c_3/1,c_4/0 ,c_5/2,c_6/0,c_7/2} - Obligation: innermost runtime complexity wrt. defined symbols {add0#,goal#,mult#,power#} and constructors {Cons,Nil} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE