WORST_CASE(?,O(n^2)) * Step 1: Ara WORST_CASE(?,O(n^2)) + Considered Problem: - Strict TRS: domatch(patcs,Cons(x,xs),n) -> domatch[Ite](prefix(patcs,Cons(x,xs)),patcs,Cons(x,xs),n) domatch(Cons(x,xs),Nil(),n) -> Nil() domatch(Nil(),Nil(),n) -> Cons(n,Nil()) eqNatList(Cons(x,xs),Cons(y,ys)) -> eqNatList[Ite](!EQ(x,y),y,ys,x,xs) eqNatList(Cons(x,xs),Nil()) -> False() eqNatList(Nil(),Cons(y,ys)) -> False() eqNatList(Nil(),Nil()) -> True() notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() prefix(Cons(x,xs),Nil()) -> False() prefix(Cons(x',xs'),Cons(x,xs)) -> and(!EQ(x',x),prefix(xs',xs)) prefix(Nil(),cs) -> True() strmatch(patstr,str) -> domatch(patstr,str,Nil()) - Weak TRS: !EQ(0(),0()) -> True() !EQ(0(),S(y)) -> False() !EQ(S(x),0()) -> False() !EQ(S(x),S(y)) -> !EQ(x,y) and(False(),False()) -> False() and(False(),True()) -> False() and(True(),False()) -> False() and(True(),True()) -> True() domatch[Ite](False(),patcs,Cons(x,xs),n) -> domatch(patcs,xs,Cons(n,Cons(Nil(),Nil()))) domatch[Ite](True(),patcs,Cons(x,xs),n) -> Cons(n,domatch(patcs,xs,Cons(n,Cons(Nil(),Nil())))) eqNatList[Ite](False(),y,ys,x,xs) -> False() eqNatList[Ite](True(),y,ys,x,xs) -> eqNatList(xs,ys) - Signature: {!EQ/2,and/2,domatch/3,domatch[Ite]/4,eqNatList/2,eqNatList[Ite]/5,notEmpty/1,prefix/2,strmatch/2} / {0/0 ,Cons/2,False/0,Nil/0,S/1,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {!EQ,and,domatch,domatch[Ite],eqNatList,eqNatList[Ite] ,notEmpty,prefix,strmatch} and constructors {0,Cons,False,Nil,S,True} + Applied Processor: Ara {araHeuristics = NoHeuristics, minDegree = 1, maxDegree = 2, araTimeout = 5, araRuleShifting = Nothing} + Details: Signatures used: ---------------- !EQ :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(14, 14) 0 :: [] -(0)-> "A"(0, 0) Cons :: ["A"(0, 0) x "A"(13, 1)] -(12)-> "A"(12, 1) Cons :: ["A"(0, 0) x "A"(12, 3)] -(9)-> "A"(9, 3) Cons :: ["A"(0, 0) x "A"(15, 6)] -(9)-> "A"(9, 6) Cons :: ["A"(0, 0) x "A"(9, 0)] -(9)-> "A"(9, 0) Cons :: ["A"(0, 0) x "A"(5, 0)] -(5)-> "A"(5, 0) Cons :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) Cons :: ["A"(0, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) Cons :: ["A"(0, 0) x "A"(12, 1)] -(11)-> "A"(11, 1) Cons :: ["A"(0, 0) x "A"(8, 8)] -(0)-> "A"(0, 8) Cons :: ["A"(0, 0) x "A"(10, 8)] -(2)-> "A"(2, 8) False :: [] -(0)-> "A"(7, 7) False :: [] -(0)-> "A"(3, 0) False :: [] -(0)-> "A"(0, 0) False :: [] -(0)-> "A"(15, 15) False :: [] -(0)-> "A"(11, 7) Nil :: [] -(0)-> "A"(12, 1) Nil :: [] -(0)-> "A"(9, 3) Nil :: [] -(0)-> "A"(9, 0) Nil :: [] -(0)-> "A"(9, 6) Nil :: [] -(0)-> "A"(5, 0) Nil :: [] -(0)-> "A"(1, 0) Nil :: [] -(0)-> "A"(0, 0) Nil :: [] -(0)-> "A"(7, 7) Nil :: [] -(0)-> "A"(15, 13) Nil :: [] -(0)-> "A"(6, 6) Nil :: [] -(0)-> "A"(6, 12) Nil :: [] -(0)-> "A"(14, 12) S :: ["A"(0, 0)] -(0)-> "A"(0, 0) True :: [] -(0)-> "A"(3, 0) True :: [] -(0)-> "A"(7, 7) True :: [] -(0)-> "A"(0, 0) True :: [] -(0)-> "A"(15, 15) True :: [] -(0)-> "A"(11, 7) and :: ["A"(7, 7) x "A"(3, 0)] -(0)-> "A"(15, 15) domatch :: ["A"(9, 3) x "A"(12, 1) x "A"(0, 0)] -(8)-> "A"(0, 0) domatch[Ite] :: ["A"(0, 0) x "A"(9, 3) x "A"(11, 1) x "A"(0, 0)] -(0)-> "A"(0, 0) eqNatList :: ["A"(9, 6) x "A"(9, 0)] -(10)-> "A"(13, 13) eqNatList[Ite] :: ["A"(7, 7) x "A"(0, 0) x "A"(9, 0) x "A"(0, 0) x "A"(13, 6)] -(15)-> "A"(13, 13) notEmpty :: ["A"(5, 0)] -(11)-> "A"(0, 0) prefix :: ["A"(0, 0) x "A"(1, 0)] -(1)-> "A"(4, 0) strmatch :: ["A"(15, 10) x "A"(14, 15)] -(16)-> "A"(0, 0) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "0_A" :: [] -(0)-> "A"(1, 0) "0_A" :: [] -(0)-> "A"(0, 1) "Cons_A" :: ["A"(0, 0) x "A"(1, 0)] -(1)-> "A"(1, 0) "Cons_A" :: ["A"(0, 0) x "A"(1, 1)] -(0)-> "A"(0, 1) "False_A" :: [] -(0)-> "A"(1, 0) "False_A" :: [] -(0)-> "A"(0, 1) "Nil_A" :: [] -(0)-> "A"(1, 0) "Nil_A" :: [] -(0)-> "A"(0, 1) "S_A" :: ["A"(1, 0)] -(0)-> "A"(1, 0) "S_A" :: ["A"(1, 1)] -(1)-> "A"(0, 1) "True_A" :: [] -(0)-> "A"(1, 0) "True_A" :: [] -(0)-> "A"(0, 1) WORST_CASE(?,O(n^2))