WORST_CASE(?,O(n^3)) * Step 1: Sum. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4} / {#0/0 ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1,c16/2,c17/2,c18/0 ,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1,c32/2,c33/0,c34/1 ,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#EQ,#EQUAL,#and,#eq,#equal,AND,EQ,EQ#1,EQ#2,EQ#3,NUB ,NUB#1,REMOVE,REMOVE#1,REMOVE#2,and,eq,eq#1,eq#2,eq#3,nub,nub#1,remove,remove#1 ,remove#2} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2 ,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9,nil} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DependencyPairs. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4} / {#0/0 ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1,c16/2,c17/2,c18/0 ,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1,c32/2,c33/0,c34/1 ,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#EQ,#EQUAL,#and,#eq,#equal,AND,EQ,EQ#1,EQ#2,EQ#3,NUB ,NUB#1,REMOVE,REMOVE#1,REMOVE#2,and,eq,eq#1,eq#2,eq#3,nub,nub#1,remove,remove#1 ,remove#2} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c2 ,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9,nil} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) AND#(z0,z1) -> c_2(#AND#(z0,z1)) EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) EQ#2#(::(z0,z1)) -> c_6() EQ#2#(nil()) -> c_7() EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) EQ#3#(nil(),z0,z1) -> c_10() NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) NUB#1#(nil()) -> c_13() REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) REMOVE#1#(nil(),z0) -> c_16() REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) Weak DPs #AND#(#false(),#false()) -> c_19() #AND#(#false(),#true()) -> c_20() #AND#(#true(),#false()) -> c_21() #AND#(#true(),#true()) -> c_22() #EQ#(#0(),#0()) -> c_23() #EQ#(#0(),#neg(z0)) -> c_24() #EQ#(#0(),#pos(z0)) -> c_25() #EQ#(#0(),#s(z0)) -> c_26() #EQ#(#neg(z0),#0()) -> c_27() #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_29() #EQ#(#pos(z0),#0()) -> c_30() #EQ#(#pos(z0),#neg(z1)) -> c_31() #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_33() #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),nil()) -> c_37() #EQ#(nil(),::(z0,z1)) -> c_38() #EQ#(nil(),nil()) -> c_39() #and#(#false(),#false()) -> c_40() #and#(#false(),#true()) -> c_41() #and#(#true(),#false()) -> c_42() #and#(#true(),#true()) -> c_43() #eq#(#0(),#0()) -> c_44() #eq#(#0(),#neg(z0)) -> c_45() #eq#(#0(),#pos(z0)) -> c_46() #eq#(#0(),#s(z0)) -> c_47() #eq#(#neg(z0),#0()) -> c_48() #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_50() #eq#(#pos(z0),#0()) -> c_51() #eq#(#pos(z0),#neg(z1)) -> c_52() #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_54() #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_57() #eq#(nil(),::(z0,z1)) -> c_58() #eq#(nil(),nil()) -> c_59() #equal#(z0,z1) -> c_60(#eq#(z0,z1)) and#(z0,z1) -> c_61(#and#(z0,z1)) eq#(z0,z1) -> c_62(eq#1#(z0,z1)) eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) eq#1#(nil(),z0) -> c_64(eq#2#(z0)) eq#2#(::(z0,z1)) -> c_65() eq#2#(nil()) -> c_66() eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) eq#3#(nil(),z0,z1) -> c_68() nub#(z0) -> c_69(nub#1#(z0)) nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) nub#1#(nil()) -> c_71() remove#(z0,z1) -> c_72(remove#1#(z1,z0)) remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) remove#1#(nil(),z0) -> c_74() remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) and mark the set of starting terms. * Step 3: PredecessorEstimation. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) AND#(z0,z1) -> c_2(#AND#(z0,z1)) EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) EQ#2#(::(z0,z1)) -> c_6() EQ#2#(nil()) -> c_7() EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) EQ#3#(nil(),z0,z1) -> c_10() NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) NUB#1#(nil()) -> c_13() REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) REMOVE#1#(nil(),z0) -> c_16() REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: #AND#(#false(),#false()) -> c_19() #AND#(#false(),#true()) -> c_20() #AND#(#true(),#false()) -> c_21() #AND#(#true(),#true()) -> c_22() #EQ#(#0(),#0()) -> c_23() #EQ#(#0(),#neg(z0)) -> c_24() #EQ#(#0(),#pos(z0)) -> c_25() #EQ#(#0(),#s(z0)) -> c_26() #EQ#(#neg(z0),#0()) -> c_27() #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_29() #EQ#(#pos(z0),#0()) -> c_30() #EQ#(#pos(z0),#neg(z1)) -> c_31() #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_33() #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),nil()) -> c_37() #EQ#(nil(),::(z0,z1)) -> c_38() #EQ#(nil(),nil()) -> c_39() #and#(#false(),#false()) -> c_40() #and#(#false(),#true()) -> c_41() #and#(#true(),#false()) -> c_42() #and#(#true(),#true()) -> c_43() #eq#(#0(),#0()) -> c_44() #eq#(#0(),#neg(z0)) -> c_45() #eq#(#0(),#pos(z0)) -> c_46() #eq#(#0(),#s(z0)) -> c_47() #eq#(#neg(z0),#0()) -> c_48() #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_50() #eq#(#pos(z0),#0()) -> c_51() #eq#(#pos(z0),#neg(z1)) -> c_52() #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_54() #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_57() #eq#(nil(),::(z0,z1)) -> c_58() #eq#(nil(),nil()) -> c_59() #equal#(z0,z1) -> c_60(#eq#(z0,z1)) and#(z0,z1) -> c_61(#and#(z0,z1)) eq#(z0,z1) -> c_62(eq#1#(z0,z1)) eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) eq#1#(nil(),z0) -> c_64(eq#2#(z0)) eq#2#(::(z0,z1)) -> c_65() eq#2#(nil()) -> c_66() eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) eq#3#(nil(),z0,z1) -> c_68() nub#(z0) -> c_69(nub#1#(z0)) nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) nub#1#(nil()) -> c_71() remove#(z0,z1) -> c_72(remove#1#(z1,z0)) remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) remove#1#(nil(),z0) -> c_74() remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/4,c_10/0,c_11/1,c_12/3,c_13/0,c_14/1,c_15/3,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,6,7,10,13,16} by application of Pre({1,2,6,7,10,13,16}) = {4,5,8,9,11,14}. Here rules are labelled as follows: 1: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) 2: AND#(z0,z1) -> c_2(#AND#(z0,z1)) 3: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) 4: EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) 5: EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) 6: EQ#2#(::(z0,z1)) -> c_6() 7: EQ#2#(nil()) -> c_7() 8: EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) 9: EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) 10: EQ#3#(nil(),z0,z1) -> c_10() 11: NUB#(z0) -> c_11(NUB#1#(z0)) 12: NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) 13: NUB#1#(nil()) -> c_13() 14: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) 15: REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) 16: REMOVE#1#(nil(),z0) -> c_16() 17: REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) 18: REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) 19: #AND#(#false(),#false()) -> c_19() 20: #AND#(#false(),#true()) -> c_20() 21: #AND#(#true(),#false()) -> c_21() 22: #AND#(#true(),#true()) -> c_22() 23: #EQ#(#0(),#0()) -> c_23() 24: #EQ#(#0(),#neg(z0)) -> c_24() 25: #EQ#(#0(),#pos(z0)) -> c_25() 26: #EQ#(#0(),#s(z0)) -> c_26() 27: #EQ#(#neg(z0),#0()) -> c_27() 28: #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) 29: #EQ#(#neg(z0),#pos(z1)) -> c_29() 30: #EQ#(#pos(z0),#0()) -> c_30() 31: #EQ#(#pos(z0),#neg(z1)) -> c_31() 32: #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) 33: #EQ#(#s(z0),#0()) -> c_33() 34: #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) 35: #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) 36: #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) 37: #EQ#(::(z0,z1),nil()) -> c_37() 38: #EQ#(nil(),::(z0,z1)) -> c_38() 39: #EQ#(nil(),nil()) -> c_39() 40: #and#(#false(),#false()) -> c_40() 41: #and#(#false(),#true()) -> c_41() 42: #and#(#true(),#false()) -> c_42() 43: #and#(#true(),#true()) -> c_43() 44: #eq#(#0(),#0()) -> c_44() 45: #eq#(#0(),#neg(z0)) -> c_45() 46: #eq#(#0(),#pos(z0)) -> c_46() 47: #eq#(#0(),#s(z0)) -> c_47() 48: #eq#(#neg(z0),#0()) -> c_48() 49: #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) 50: #eq#(#neg(z0),#pos(z1)) -> c_50() 51: #eq#(#pos(z0),#0()) -> c_51() 52: #eq#(#pos(z0),#neg(z1)) -> c_52() 53: #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) 54: #eq#(#s(z0),#0()) -> c_54() 55: #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) 56: #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 57: #eq#(::(z0,z1),nil()) -> c_57() 58: #eq#(nil(),::(z0,z1)) -> c_58() 59: #eq#(nil(),nil()) -> c_59() 60: #equal#(z0,z1) -> c_60(#eq#(z0,z1)) 61: and#(z0,z1) -> c_61(#and#(z0,z1)) 62: eq#(z0,z1) -> c_62(eq#1#(z0,z1)) 63: eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) 64: eq#1#(nil(),z0) -> c_64(eq#2#(z0)) 65: eq#2#(::(z0,z1)) -> c_65() 66: eq#2#(nil()) -> c_66() 67: eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) 68: eq#3#(nil(),z0,z1) -> c_68() 69: nub#(z0) -> c_69(nub#1#(z0)) 70: nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) 71: nub#1#(nil()) -> c_71() 72: remove#(z0,z1) -> c_72(remove#1#(z1,z0)) 73: remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) 74: remove#1#(nil(),z0) -> c_74() 75: remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) 76: remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) * Step 4: PredecessorEstimation. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: #AND#(#false(),#false()) -> c_19() #AND#(#false(),#true()) -> c_20() #AND#(#true(),#false()) -> c_21() #AND#(#true(),#true()) -> c_22() #EQ#(#0(),#0()) -> c_23() #EQ#(#0(),#neg(z0)) -> c_24() #EQ#(#0(),#pos(z0)) -> c_25() #EQ#(#0(),#s(z0)) -> c_26() #EQ#(#neg(z0),#0()) -> c_27() #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_29() #EQ#(#pos(z0),#0()) -> c_30() #EQ#(#pos(z0),#neg(z1)) -> c_31() #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_33() #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),nil()) -> c_37() #EQ#(nil(),::(z0,z1)) -> c_38() #EQ#(nil(),nil()) -> c_39() #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) #and#(#false(),#false()) -> c_40() #and#(#false(),#true()) -> c_41() #and#(#true(),#false()) -> c_42() #and#(#true(),#true()) -> c_43() #eq#(#0(),#0()) -> c_44() #eq#(#0(),#neg(z0)) -> c_45() #eq#(#0(),#pos(z0)) -> c_46() #eq#(#0(),#s(z0)) -> c_47() #eq#(#neg(z0),#0()) -> c_48() #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_50() #eq#(#pos(z0),#0()) -> c_51() #eq#(#pos(z0),#neg(z1)) -> c_52() #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_54() #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_57() #eq#(nil(),::(z0,z1)) -> c_58() #eq#(nil(),nil()) -> c_59() #equal#(z0,z1) -> c_60(#eq#(z0,z1)) AND#(z0,z1) -> c_2(#AND#(z0,z1)) EQ#2#(::(z0,z1)) -> c_6() EQ#2#(nil()) -> c_7() EQ#3#(nil(),z0,z1) -> c_10() NUB#1#(nil()) -> c_13() REMOVE#1#(nil(),z0) -> c_16() and#(z0,z1) -> c_61(#and#(z0,z1)) eq#(z0,z1) -> c_62(eq#1#(z0,z1)) eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) eq#1#(nil(),z0) -> c_64(eq#2#(z0)) eq#2#(::(z0,z1)) -> c_65() eq#2#(nil()) -> c_66() eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) eq#3#(nil(),z0,z1) -> c_68() nub#(z0) -> c_69(nub#1#(z0)) nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) nub#1#(nil()) -> c_71() remove#(z0,z1) -> c_72(remove#1#(z1,z0)) remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) remove#1#(nil(),z0) -> c_74() remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/4,c_10/0,c_11/1,c_12/3,c_13/0,c_14/1,c_15/3,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {3,4} by application of Pre({3,4}) = {1,2}. Here rules are labelled as follows: 1: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) 2: EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) 3: EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) 4: EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) 5: EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) 6: NUB#(z0) -> c_11(NUB#1#(z0)) 7: NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) 8: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) 9: REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) 10: REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) 11: REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) 12: #AND#(#false(),#false()) -> c_19() 13: #AND#(#false(),#true()) -> c_20() 14: #AND#(#true(),#false()) -> c_21() 15: #AND#(#true(),#true()) -> c_22() 16: #EQ#(#0(),#0()) -> c_23() 17: #EQ#(#0(),#neg(z0)) -> c_24() 18: #EQ#(#0(),#pos(z0)) -> c_25() 19: #EQ#(#0(),#s(z0)) -> c_26() 20: #EQ#(#neg(z0),#0()) -> c_27() 21: #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) 22: #EQ#(#neg(z0),#pos(z1)) -> c_29() 23: #EQ#(#pos(z0),#0()) -> c_30() 24: #EQ#(#pos(z0),#neg(z1)) -> c_31() 25: #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) 26: #EQ#(#s(z0),#0()) -> c_33() 27: #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) 28: #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) 29: #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) 30: #EQ#(::(z0,z1),nil()) -> c_37() 31: #EQ#(nil(),::(z0,z1)) -> c_38() 32: #EQ#(nil(),nil()) -> c_39() 33: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) 34: #and#(#false(),#false()) -> c_40() 35: #and#(#false(),#true()) -> c_41() 36: #and#(#true(),#false()) -> c_42() 37: #and#(#true(),#true()) -> c_43() 38: #eq#(#0(),#0()) -> c_44() 39: #eq#(#0(),#neg(z0)) -> c_45() 40: #eq#(#0(),#pos(z0)) -> c_46() 41: #eq#(#0(),#s(z0)) -> c_47() 42: #eq#(#neg(z0),#0()) -> c_48() 43: #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) 44: #eq#(#neg(z0),#pos(z1)) -> c_50() 45: #eq#(#pos(z0),#0()) -> c_51() 46: #eq#(#pos(z0),#neg(z1)) -> c_52() 47: #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) 48: #eq#(#s(z0),#0()) -> c_54() 49: #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) 50: #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 51: #eq#(::(z0,z1),nil()) -> c_57() 52: #eq#(nil(),::(z0,z1)) -> c_58() 53: #eq#(nil(),nil()) -> c_59() 54: #equal#(z0,z1) -> c_60(#eq#(z0,z1)) 55: AND#(z0,z1) -> c_2(#AND#(z0,z1)) 56: EQ#2#(::(z0,z1)) -> c_6() 57: EQ#2#(nil()) -> c_7() 58: EQ#3#(nil(),z0,z1) -> c_10() 59: NUB#1#(nil()) -> c_13() 60: REMOVE#1#(nil(),z0) -> c_16() 61: and#(z0,z1) -> c_61(#and#(z0,z1)) 62: eq#(z0,z1) -> c_62(eq#1#(z0,z1)) 63: eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) 64: eq#1#(nil(),z0) -> c_64(eq#2#(z0)) 65: eq#2#(::(z0,z1)) -> c_65() 66: eq#2#(nil()) -> c_66() 67: eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) 68: eq#3#(nil(),z0,z1) -> c_68() 69: nub#(z0) -> c_69(nub#1#(z0)) 70: nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) 71: nub#1#(nil()) -> c_71() 72: remove#(z0,z1) -> c_72(remove#1#(z1,z0)) 73: remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) 74: remove#1#(nil(),z0) -> c_74() 75: remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) 76: remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) * Step 5: RemoveWeakSuffixes. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: #AND#(#false(),#false()) -> c_19() #AND#(#false(),#true()) -> c_20() #AND#(#true(),#false()) -> c_21() #AND#(#true(),#true()) -> c_22() #EQ#(#0(),#0()) -> c_23() #EQ#(#0(),#neg(z0)) -> c_24() #EQ#(#0(),#pos(z0)) -> c_25() #EQ#(#0(),#s(z0)) -> c_26() #EQ#(#neg(z0),#0()) -> c_27() #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_29() #EQ#(#pos(z0),#0()) -> c_30() #EQ#(#pos(z0),#neg(z1)) -> c_31() #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_33() #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),nil()) -> c_37() #EQ#(nil(),::(z0,z1)) -> c_38() #EQ#(nil(),nil()) -> c_39() #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) #and#(#false(),#false()) -> c_40() #and#(#false(),#true()) -> c_41() #and#(#true(),#false()) -> c_42() #and#(#true(),#true()) -> c_43() #eq#(#0(),#0()) -> c_44() #eq#(#0(),#neg(z0)) -> c_45() #eq#(#0(),#pos(z0)) -> c_46() #eq#(#0(),#s(z0)) -> c_47() #eq#(#neg(z0),#0()) -> c_48() #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_50() #eq#(#pos(z0),#0()) -> c_51() #eq#(#pos(z0),#neg(z1)) -> c_52() #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_54() #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),nil()) -> c_57() #eq#(nil(),::(z0,z1)) -> c_58() #eq#(nil(),nil()) -> c_59() #equal#(z0,z1) -> c_60(#eq#(z0,z1)) AND#(z0,z1) -> c_2(#AND#(z0,z1)) EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) EQ#2#(::(z0,z1)) -> c_6() EQ#2#(nil()) -> c_7() EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) EQ#3#(nil(),z0,z1) -> c_10() NUB#1#(nil()) -> c_13() REMOVE#1#(nil(),z0) -> c_16() and#(z0,z1) -> c_61(#and#(z0,z1)) eq#(z0,z1) -> c_62(eq#1#(z0,z1)) eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) eq#1#(nil(),z0) -> c_64(eq#2#(z0)) eq#2#(::(z0,z1)) -> c_65() eq#2#(nil()) -> c_66() eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) eq#3#(nil(),z0,z1) -> c_68() nub#(z0) -> c_69(nub#1#(z0)) nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) nub#1#(nil()) -> c_71() remove#(z0,z1) -> c_72(remove#1#(z1,z0)) remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) remove#1#(nil(),z0) -> c_74() remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/4,c_10/0,c_11/1,c_12/3,c_13/0,c_14/1,c_15/3,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) -->_1 EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)):54 -->_1 EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)):2 2:S:EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) -->_1 EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)) ,#equal#(z2,z0) ,eq#(z3,z1) ,#EQUAL#(z2,z0)):57 -->_1 EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)):3 -->_1 EQ#3#(nil(),z0,z1) -> c_10():58 3:S:EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) -->_3 eq#(z0,z1) -> c_62(eq#1#(z0,z1)):62 -->_1 AND#(z0,z1) -> c_2(#AND#(z0,z1)):53 -->_2 #equal#(z0,z1) -> c_60(#eq#(z0,z1)):52 -->_4 EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)):1 4:S:NUB#(z0) -> c_11(NUB#1#(z0)) -->_1 NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)):5 -->_1 NUB#1#(nil()) -> c_13():59 5:S:NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) -->_2 remove#(z0,z1) -> c_72(remove#1#(z1,z0)):72 -->_3 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 -->_1 NUB#(z0) -> c_11(NUB#1#(z0)):4 6:S:REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) -->_1 REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)):7 -->_1 REMOVE#1#(nil(),z0) -> c_16():60 7:S:REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) -->_2 eq#(z0,z1) -> c_62(eq#1#(z0,z1)):62 -->_1 REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)):9 -->_1 REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)):8 -->_3 EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)):1 8:S:REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 9:S:REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 10:W:#AND#(#false(),#false()) -> c_19() 11:W:#AND#(#false(),#true()) -> c_20() 12:W:#AND#(#true(),#false()) -> c_21() 13:W:#AND#(#true(),#true()) -> c_22() 14:W:#EQ#(#0(),#0()) -> c_23() 15:W:#EQ#(#0(),#neg(z0)) -> c_24() 16:W:#EQ#(#0(),#pos(z0)) -> c_25() 17:W:#EQ#(#0(),#s(z0)) -> c_26() 18:W:#EQ#(#neg(z0),#0()) -> c_27() 19:W:#EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_1 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_1 #EQ#(nil(),nil()) -> c_39():30 -->_1 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_1 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_1 #EQ#(#s(z0),#0()) -> c_33():24 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_1 #EQ#(#pos(z0),#0()) -> c_30():21 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_1 #EQ#(#neg(z0),#0()) -> c_27():18 -->_1 #EQ#(#0(),#s(z0)) -> c_26():17 -->_1 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_1 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_1 #EQ#(#0(),#0()) -> c_23():14 20:W:#EQ#(#neg(z0),#pos(z1)) -> c_29() 21:W:#EQ#(#pos(z0),#0()) -> c_30() 22:W:#EQ#(#pos(z0),#neg(z1)) -> c_31() 23:W:#EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_1 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_1 #EQ#(nil(),nil()) -> c_39():30 -->_1 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_1 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_1 #EQ#(#s(z0),#0()) -> c_33():24 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_1 #EQ#(#pos(z0),#0()) -> c_30():21 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_1 #EQ#(#neg(z0),#0()) -> c_27():18 -->_1 #EQ#(#0(),#s(z0)) -> c_26():17 -->_1 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_1 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_1 #EQ#(#0(),#0()) -> c_23():14 24:W:#EQ#(#s(z0),#0()) -> c_33() 25:W:#EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_1 #EQ#(nil(),nil()) -> c_39():30 -->_1 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_1 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_1 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_1 #EQ#(#s(z0),#0()) -> c_33():24 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_1 #EQ#(#pos(z0),#0()) -> c_30():21 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_1 #EQ#(#neg(z0),#0()) -> c_27():18 -->_1 #EQ#(#0(),#s(z0)) -> c_26():17 -->_1 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_1 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_1 #EQ#(#0(),#0()) -> c_23():14 26:W:#EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_3 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_2 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_3 #eq#(nil(),nil()) -> c_59():51 -->_2 #eq#(nil(),nil()) -> c_59():51 -->_3 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_2 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_3 #eq#(::(z0,z1),nil()) -> c_57():49 -->_2 #eq#(::(z0,z1),nil()) -> c_57():49 -->_3 #eq#(#s(z0),#0()) -> c_54():46 -->_2 #eq#(#s(z0),#0()) -> c_54():46 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_3 #eq#(#pos(z0),#0()) -> c_51():43 -->_2 #eq#(#pos(z0),#0()) -> c_51():43 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_3 #eq#(#neg(z0),#0()) -> c_48():40 -->_2 #eq#(#neg(z0),#0()) -> c_48():40 -->_3 #eq#(#0(),#s(z0)) -> c_47():39 -->_2 #eq#(#0(),#s(z0)) -> c_47():39 -->_3 #eq#(#0(),#pos(z0)) -> c_46():38 -->_2 #eq#(#0(),#pos(z0)) -> c_46():38 -->_3 #eq#(#0(),#neg(z0)) -> c_45():37 -->_2 #eq#(#0(),#neg(z0)) -> c_45():37 -->_3 #eq#(#0(),#0()) -> c_44():36 -->_2 #eq#(#0(),#0()) -> c_44():36 -->_4 #EQ#(nil(),nil()) -> c_39():30 -->_4 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_4 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_4 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_4 #EQ#(#s(z0),#0()) -> c_33():24 -->_4 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_4 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_4 #EQ#(#pos(z0),#0()) -> c_30():21 -->_4 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_4 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_4 #EQ#(#neg(z0),#0()) -> c_27():18 -->_4 #EQ#(#0(),#s(z0)) -> c_26():17 -->_4 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_4 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_4 #EQ#(#0(),#0()) -> c_23():14 -->_1 #AND#(#true(),#true()) -> c_22():13 -->_1 #AND#(#true(),#false()) -> c_21():12 -->_1 #AND#(#false(),#true()) -> c_20():11 -->_1 #AND#(#false(),#false()) -> c_19():10 27:W:#EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_3 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_2 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_3 #eq#(nil(),nil()) -> c_59():51 -->_2 #eq#(nil(),nil()) -> c_59():51 -->_3 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_2 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_3 #eq#(::(z0,z1),nil()) -> c_57():49 -->_2 #eq#(::(z0,z1),nil()) -> c_57():49 -->_3 #eq#(#s(z0),#0()) -> c_54():46 -->_2 #eq#(#s(z0),#0()) -> c_54():46 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_3 #eq#(#pos(z0),#0()) -> c_51():43 -->_2 #eq#(#pos(z0),#0()) -> c_51():43 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_3 #eq#(#neg(z0),#0()) -> c_48():40 -->_2 #eq#(#neg(z0),#0()) -> c_48():40 -->_3 #eq#(#0(),#s(z0)) -> c_47():39 -->_2 #eq#(#0(),#s(z0)) -> c_47():39 -->_3 #eq#(#0(),#pos(z0)) -> c_46():38 -->_2 #eq#(#0(),#pos(z0)) -> c_46():38 -->_3 #eq#(#0(),#neg(z0)) -> c_45():37 -->_2 #eq#(#0(),#neg(z0)) -> c_45():37 -->_3 #eq#(#0(),#0()) -> c_44():36 -->_2 #eq#(#0(),#0()) -> c_44():36 -->_4 #EQ#(nil(),nil()) -> c_39():30 -->_4 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_4 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_4 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_4 #EQ#(#s(z0),#0()) -> c_33():24 -->_4 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_4 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_4 #EQ#(#pos(z0),#0()) -> c_30():21 -->_4 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_4 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_4 #EQ#(#neg(z0),#0()) -> c_27():18 -->_4 #EQ#(#0(),#s(z0)) -> c_26():17 -->_4 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_4 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_4 #EQ#(#0(),#0()) -> c_23():14 -->_1 #AND#(#true(),#true()) -> c_22():13 -->_1 #AND#(#true(),#false()) -> c_21():12 -->_1 #AND#(#false(),#true()) -> c_20():11 -->_1 #AND#(#false(),#false()) -> c_19():10 28:W:#EQ#(::(z0,z1),nil()) -> c_37() 29:W:#EQ#(nil(),::(z0,z1)) -> c_38() 30:W:#EQ#(nil(),nil()) -> c_39() 31:W:#EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) -->_1 #EQ#(nil(),nil()) -> c_39():30 -->_1 #EQ#(nil(),::(z0,z1)) -> c_38():29 -->_1 #EQ#(::(z0,z1),nil()) -> c_37():28 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):27 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):26 -->_1 #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)):25 -->_1 #EQ#(#s(z0),#0()) -> c_33():24 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)):23 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_31():22 -->_1 #EQ#(#pos(z0),#0()) -> c_30():21 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_29():20 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)):19 -->_1 #EQ#(#neg(z0),#0()) -> c_27():18 -->_1 #EQ#(#0(),#s(z0)) -> c_26():17 -->_1 #EQ#(#0(),#pos(z0)) -> c_25():16 -->_1 #EQ#(#0(),#neg(z0)) -> c_24():15 -->_1 #EQ#(#0(),#0()) -> c_23():14 32:W:#and#(#false(),#false()) -> c_40() 33:W:#and#(#false(),#true()) -> c_41() 34:W:#and#(#true(),#false()) -> c_42() 35:W:#and#(#true(),#true()) -> c_43() 36:W:#eq#(#0(),#0()) -> c_44() 37:W:#eq#(#0(),#neg(z0)) -> c_45() 38:W:#eq#(#0(),#pos(z0)) -> c_46() 39:W:#eq#(#0(),#s(z0)) -> c_47() 40:W:#eq#(#neg(z0),#0()) -> c_48() 41:W:#eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_1 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_1 #eq#(nil(),nil()) -> c_59():51 -->_1 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_1 #eq#(::(z0,z1),nil()) -> c_57():49 -->_1 #eq#(#s(z0),#0()) -> c_54():46 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_1 #eq#(#pos(z0),#0()) -> c_51():43 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_1 #eq#(#neg(z0),#0()) -> c_48():40 -->_1 #eq#(#0(),#s(z0)) -> c_47():39 -->_1 #eq#(#0(),#pos(z0)) -> c_46():38 -->_1 #eq#(#0(),#neg(z0)) -> c_45():37 -->_1 #eq#(#0(),#0()) -> c_44():36 42:W:#eq#(#neg(z0),#pos(z1)) -> c_50() 43:W:#eq#(#pos(z0),#0()) -> c_51() 44:W:#eq#(#pos(z0),#neg(z1)) -> c_52() 45:W:#eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_1 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_1 #eq#(nil(),nil()) -> c_59():51 -->_1 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_1 #eq#(::(z0,z1),nil()) -> c_57():49 -->_1 #eq#(#s(z0),#0()) -> c_54():46 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_1 #eq#(#pos(z0),#0()) -> c_51():43 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_1 #eq#(#neg(z0),#0()) -> c_48():40 -->_1 #eq#(#0(),#s(z0)) -> c_47():39 -->_1 #eq#(#0(),#pos(z0)) -> c_46():38 -->_1 #eq#(#0(),#neg(z0)) -> c_45():37 -->_1 #eq#(#0(),#0()) -> c_44():36 46:W:#eq#(#s(z0),#0()) -> c_54() 47:W:#eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_1 #eq#(nil(),nil()) -> c_59():51 -->_1 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_1 #eq#(::(z0,z1),nil()) -> c_57():49 -->_1 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_1 #eq#(#s(z0),#0()) -> c_54():46 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_1 #eq#(#pos(z0),#0()) -> c_51():43 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_1 #eq#(#neg(z0),#0()) -> c_48():40 -->_1 #eq#(#0(),#s(z0)) -> c_47():39 -->_1 #eq#(#0(),#pos(z0)) -> c_46():38 -->_1 #eq#(#0(),#neg(z0)) -> c_45():37 -->_1 #eq#(#0(),#0()) -> c_44():36 48:W:#eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) -->_3 #eq#(nil(),nil()) -> c_59():51 -->_2 #eq#(nil(),nil()) -> c_59():51 -->_3 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_2 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_3 #eq#(::(z0,z1),nil()) -> c_57():49 -->_2 #eq#(::(z0,z1),nil()) -> c_57():49 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_3 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_2 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_3 #eq#(#s(z0),#0()) -> c_54():46 -->_2 #eq#(#s(z0),#0()) -> c_54():46 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_3 #eq#(#pos(z0),#0()) -> c_51():43 -->_2 #eq#(#pos(z0),#0()) -> c_51():43 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_3 #eq#(#neg(z0),#0()) -> c_48():40 -->_2 #eq#(#neg(z0),#0()) -> c_48():40 -->_3 #eq#(#0(),#s(z0)) -> c_47():39 -->_2 #eq#(#0(),#s(z0)) -> c_47():39 -->_3 #eq#(#0(),#pos(z0)) -> c_46():38 -->_2 #eq#(#0(),#pos(z0)) -> c_46():38 -->_3 #eq#(#0(),#neg(z0)) -> c_45():37 -->_2 #eq#(#0(),#neg(z0)) -> c_45():37 -->_3 #eq#(#0(),#0()) -> c_44():36 -->_2 #eq#(#0(),#0()) -> c_44():36 -->_1 #and#(#true(),#true()) -> c_43():35 -->_1 #and#(#true(),#false()) -> c_42():34 -->_1 #and#(#false(),#true()) -> c_41():33 -->_1 #and#(#false(),#false()) -> c_40():32 49:W:#eq#(::(z0,z1),nil()) -> c_57() 50:W:#eq#(nil(),::(z0,z1)) -> c_58() 51:W:#eq#(nil(),nil()) -> c_59() 52:W:#equal#(z0,z1) -> c_60(#eq#(z0,z1)) -->_1 #eq#(nil(),nil()) -> c_59():51 -->_1 #eq#(nil(),::(z0,z1)) -> c_58():50 -->_1 #eq#(::(z0,z1),nil()) -> c_57():49 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):48 -->_1 #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)):47 -->_1 #eq#(#s(z0),#0()) -> c_54():46 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)):45 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_52():44 -->_1 #eq#(#pos(z0),#0()) -> c_51():43 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_50():42 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)):41 -->_1 #eq#(#neg(z0),#0()) -> c_48():40 -->_1 #eq#(#0(),#s(z0)) -> c_47():39 -->_1 #eq#(#0(),#pos(z0)) -> c_46():38 -->_1 #eq#(#0(),#neg(z0)) -> c_45():37 -->_1 #eq#(#0(),#0()) -> c_44():36 53:W:AND#(z0,z1) -> c_2(#AND#(z0,z1)) -->_1 #AND#(#true(),#true()) -> c_22():13 -->_1 #AND#(#true(),#false()) -> c_21():12 -->_1 #AND#(#false(),#true()) -> c_20():11 -->_1 #AND#(#false(),#false()) -> c_19():10 54:W:EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) -->_1 EQ#2#(nil()) -> c_7():56 -->_1 EQ#2#(::(z0,z1)) -> c_6():55 55:W:EQ#2#(::(z0,z1)) -> c_6() 56:W:EQ#2#(nil()) -> c_7() 57:W:EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) -->_3 eq#(z0,z1) -> c_62(eq#1#(z0,z1)):62 -->_1 AND#(z0,z1) -> c_2(#AND#(z0,z1)):53 -->_2 #equal#(z0,z1) -> c_60(#eq#(z0,z1)):52 -->_4 #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)):31 58:W:EQ#3#(nil(),z0,z1) -> c_10() 59:W:NUB#1#(nil()) -> c_13() 60:W:REMOVE#1#(nil(),z0) -> c_16() 61:W:and#(z0,z1) -> c_61(#and#(z0,z1)) -->_1 #and#(#true(),#true()) -> c_43():35 -->_1 #and#(#true(),#false()) -> c_42():34 -->_1 #and#(#false(),#true()) -> c_41():33 -->_1 #and#(#false(),#false()) -> c_40():32 62:W:eq#(z0,z1) -> c_62(eq#1#(z0,z1)) -->_1 eq#1#(nil(),z0) -> c_64(eq#2#(z0)):64 -->_1 eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)):63 63:W:eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) -->_1 eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)):67 -->_1 eq#3#(nil(),z0,z1) -> c_68():68 64:W:eq#1#(nil(),z0) -> c_64(eq#2#(z0)) -->_1 eq#2#(nil()) -> c_66():66 -->_1 eq#2#(::(z0,z1)) -> c_65():65 65:W:eq#2#(::(z0,z1)) -> c_65() 66:W:eq#2#(nil()) -> c_66() 67:W:eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) -->_3 eq#(z0,z1) -> c_62(eq#1#(z0,z1)):62 -->_1 and#(z0,z1) -> c_61(#and#(z0,z1)):61 -->_2 #equal#(z0,z1) -> c_60(#eq#(z0,z1)):52 68:W:eq#3#(nil(),z0,z1) -> c_68() 69:W:nub#(z0) -> c_69(nub#1#(z0)) -->_1 nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)):70 -->_1 nub#1#(nil()) -> c_71():71 70:W:nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) -->_2 remove#(z0,z1) -> c_72(remove#1#(z1,z0)):72 -->_1 nub#(z0) -> c_69(nub#1#(z0)):69 71:W:nub#1#(nil()) -> c_71() 72:W:remove#(z0,z1) -> c_72(remove#1#(z1,z0)) -->_1 remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)):73 -->_1 remove#1#(nil(),z0) -> c_74():74 73:W:remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) -->_1 remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)):76 -->_1 remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)):75 -->_2 eq#(z0,z1) -> c_62(eq#1#(z0,z1)):62 74:W:remove#1#(nil(),z0) -> c_74() 75:W:remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) -->_1 remove#(z0,z1) -> c_72(remove#1#(z1,z0)):72 76:W:remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) -->_1 remove#(z0,z1) -> c_72(remove#1#(z1,z0)):72 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 69: nub#(z0) -> c_69(nub#1#(z0)) 70: nub#1#(::(z0,z1)) -> c_70(nub#(remove(z0,z1)),remove#(z0,z1)) 71: nub#1#(nil()) -> c_71() 59: NUB#1#(nil()) -> c_13() 60: REMOVE#1#(nil(),z0) -> c_16() 72: remove#(z0,z1) -> c_72(remove#1#(z1,z0)) 76: remove#2#(#true(),z0,z1,z2) -> c_76(remove#(z0,z2)) 73: remove#1#(::(z0,z1),z2) -> c_73(remove#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0)) 75: remove#2#(#false(),z0,z1,z2) -> c_75(remove#(z0,z2)) 74: remove#1#(nil(),z0) -> c_74() 58: EQ#3#(nil(),z0,z1) -> c_10() 57: EQ#3#(::(z0,z1),z2,z3) -> c_8(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),#EQUAL#(z2,z0)) 31: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) 27: #EQ#(::(z0,z1),::(z2,z3)) -> c_36(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) 26: #EQ#(::(z0,z1),::(z2,z3)) -> c_35(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) 25: #EQ#(#s(z0),#s(z1)) -> c_34(#EQ#(z0,z1)) 23: #EQ#(#pos(z0),#pos(z1)) -> c_32(#EQ#(z0,z1)) 19: #EQ#(#neg(z0),#neg(z1)) -> c_28(#EQ#(z0,z1)) 14: #EQ#(#0(),#0()) -> c_23() 15: #EQ#(#0(),#neg(z0)) -> c_24() 16: #EQ#(#0(),#pos(z0)) -> c_25() 17: #EQ#(#0(),#s(z0)) -> c_26() 18: #EQ#(#neg(z0),#0()) -> c_27() 20: #EQ#(#neg(z0),#pos(z1)) -> c_29() 21: #EQ#(#pos(z0),#0()) -> c_30() 22: #EQ#(#pos(z0),#neg(z1)) -> c_31() 24: #EQ#(#s(z0),#0()) -> c_33() 28: #EQ#(::(z0,z1),nil()) -> c_37() 29: #EQ#(nil(),::(z0,z1)) -> c_38() 30: #EQ#(nil(),nil()) -> c_39() 53: AND#(z0,z1) -> c_2(#AND#(z0,z1)) 10: #AND#(#false(),#false()) -> c_19() 11: #AND#(#false(),#true()) -> c_20() 12: #AND#(#true(),#false()) -> c_21() 13: #AND#(#true(),#true()) -> c_22() 62: eq#(z0,z1) -> c_62(eq#1#(z0,z1)) 67: eq#3#(::(z0,z1),z2,z3) -> c_67(and#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1)) 63: eq#1#(::(z0,z1),z2) -> c_63(eq#3#(z2,z0,z1)) 68: eq#3#(nil(),z0,z1) -> c_68() 52: #equal#(z0,z1) -> c_60(#eq#(z0,z1)) 48: #eq#(::(z0,z1),::(z2,z3)) -> c_56(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 47: #eq#(#s(z0),#s(z1)) -> c_55(#eq#(z0,z1)) 45: #eq#(#pos(z0),#pos(z1)) -> c_53(#eq#(z0,z1)) 41: #eq#(#neg(z0),#neg(z1)) -> c_49(#eq#(z0,z1)) 36: #eq#(#0(),#0()) -> c_44() 37: #eq#(#0(),#neg(z0)) -> c_45() 38: #eq#(#0(),#pos(z0)) -> c_46() 39: #eq#(#0(),#s(z0)) -> c_47() 40: #eq#(#neg(z0),#0()) -> c_48() 42: #eq#(#neg(z0),#pos(z1)) -> c_50() 43: #eq#(#pos(z0),#0()) -> c_51() 44: #eq#(#pos(z0),#neg(z1)) -> c_52() 46: #eq#(#s(z0),#0()) -> c_54() 49: #eq#(::(z0,z1),nil()) -> c_57() 50: #eq#(nil(),::(z0,z1)) -> c_58() 51: #eq#(nil(),nil()) -> c_59() 61: and#(z0,z1) -> c_61(#and#(z0,z1)) 32: #and#(#false(),#false()) -> c_40() 33: #and#(#false(),#true()) -> c_41() 34: #and#(#true(),#false()) -> c_42() 35: #and#(#true(),#true()) -> c_43() 64: eq#1#(nil(),z0) -> c_64(eq#2#(z0)) 65: eq#2#(::(z0,z1)) -> c_65() 66: eq#2#(nil()) -> c_66() 54: EQ#1#(nil(),z0) -> c_5(EQ#2#(z0)) 55: EQ#2#(::(z0,z1)) -> c_6() 56: EQ#2#(nil()) -> c_7() * Step 6: SimplifyRHS. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/4,c_10/0,c_11/1,c_12/3,c_13/0,c_14/1,c_15/3,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) -->_1 EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)):2 2:S:EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) -->_1 EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)):3 3:S:EQ#3#(::(z0,z1),z2,z3) -> c_9(AND#(#equal(z2,z0),eq(z3,z1)),#equal#(z2,z0),eq#(z3,z1),EQ#(z3,z1)) -->_4 EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)):1 4:S:NUB#(z0) -> c_11(NUB#1#(z0)) -->_1 NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)):5 5:S:NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),remove#(z0,z1),REMOVE#(z0,z1)) -->_3 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 -->_1 NUB#(z0) -> c_11(NUB#1#(z0)):4 6:S:REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) -->_1 REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)):7 7:S:REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),eq#(z2,z0),EQ#(z2,z0)) -->_1 REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)):9 -->_1 REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)):8 -->_3 EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)):1 8:S:REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 9:S:REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):6 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) * Step 7: UsableRules. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak TRS: #AND(#false(),#false()) -> c() #AND(#false(),#true()) -> c1() #AND(#true(),#false()) -> c2() #AND(#true(),#true()) -> c3() #EQ(#0(),#0()) -> c4() #EQ(#0(),#neg(z0)) -> c5() #EQ(#0(),#pos(z0)) -> c6() #EQ(#0(),#s(z0)) -> c7() #EQ(#neg(z0),#0()) -> c8() #EQ(#neg(z0),#neg(z1)) -> c9(#EQ(z0,z1)) #EQ(#neg(z0),#pos(z1)) -> c10() #EQ(#pos(z0),#0()) -> c11() #EQ(#pos(z0),#neg(z1)) -> c12() #EQ(#pos(z0),#pos(z1)) -> c13(#EQ(z0,z1)) #EQ(#s(z0),#0()) -> c14() #EQ(#s(z0),#s(z1)) -> c15(#EQ(z0,z1)) #EQ(::(z0,z1),::(z2,z3)) -> c16(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z0,z2)) #EQ(::(z0,z1),::(z2,z3)) -> c17(#AND(#eq(z0,z2),#eq(z1,z3)),#EQ(z1,z3)) #EQ(::(z0,z1),nil()) -> c18() #EQ(nil(),::(z0,z1)) -> c19() #EQ(nil(),nil()) -> c20() #EQUAL(z0,z1) -> c21(#EQ(z0,z1)) #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) AND(z0,z1) -> c22(#AND(z0,z1)) EQ(z0,z1) -> c23(EQ#1(z0,z1)) EQ#1(::(z0,z1),z2) -> c24(EQ#3(z2,z0,z1)) EQ#1(nil(),z0) -> c25(EQ#2(z0)) EQ#2(::(z0,z1)) -> c26() EQ#2(nil()) -> c27() EQ#3(::(z0,z1),z2,z3) -> c28(AND(#equal(z2,z0),eq(z3,z1)),#EQUAL(z2,z0)) EQ#3(::(z0,z1),z2,z3) -> c29(AND(#equal(z2,z0),eq(z3,z1)),EQ(z3,z1)) EQ#3(nil(),z0,z1) -> c30() NUB(z0) -> c31(NUB#1(z0)) NUB#1(::(z0,z1)) -> c32(NUB(remove(z0,z1)),REMOVE(z0,z1)) NUB#1(nil()) -> c33() REMOVE(z0,z1) -> c34(REMOVE#1(z1,z0)) REMOVE#1(::(z0,z1),z2) -> c35(REMOVE#2(eq(z2,z0),z2,z0,z1),EQ(z2,z0)) REMOVE#1(nil(),z0) -> c36() REMOVE#2(#false(),z0,z1,z2) -> c37(REMOVE(z0,z2)) REMOVE#2(#true(),z0,z1,z2) -> c38(REMOVE(z0,z2)) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() nub(z0) -> nub#1(z0) nub#1(::(z0,z1)) -> ::(z0,nub(remove(z0,z1))) nub#1(nil()) -> nil() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) * Step 8: DecomposeDG. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) and a lower component EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) Further, following extension rules are added to the lower component. NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) ** Step 8.a:1: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:NUB#(z0) -> c_11(NUB#1#(z0)) -->_1 NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)):2 2:S:NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1)),REMOVE#(z0,z1)) -->_1 NUB#(z0) -> c_11(NUB#1#(z0)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1))) ** Step 8.a:2: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/1,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(#and) = {1,2}, uargs(::) = {2}, uargs(and) = {1,2}, uargs(remove#2) = {1}, uargs(NUB#) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [1] p(#AND) = [1] x1 + [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [1] x1 + [1] x2 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [0] p(AND) = [0] p(EQ) = [0] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [1] x1 + [1] x2 + [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [1] x1 + [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [1] x1 + [0] p(c35) = [1] x1 + [1] x2 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [1] x1 + [0] p(c4) = [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(eq) = [0] p(eq#1) = [0] p(eq#2) = [0] p(eq#3) = [0] p(nil) = [0] p(nub) = [0] p(nub#1) = [0] p(remove) = [0] p(remove#1) = [0] p(remove#2) = [1] x1 + [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(AND#) = [0] p(EQ#) = [0] p(EQ#1#) = [0] p(EQ#2#) = [0] p(EQ#3#) = [2] x3 + [0] p(NUB#) = [1] x1 + [2] p(NUB#1#) = [7] p(REMOVE#) = [0] p(REMOVE#1#) = [0] p(REMOVE#2#) = [0] p(and#) = [0] p(eq#) = [0] p(eq#1#) = [0] p(eq#2#) = [0] p(eq#3#) = [0] p(nub#) = [0] p(nub#1#) = [0] p(remove#) = [0] p(remove#1#) = [0] p(remove#2#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [1] x1 + [4] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [2] x3 + [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] p(c_54) = [0] p(c_55) = [0] p(c_56) = [0] p(c_57) = [2] p(c_58) = [0] p(c_59) = [2] p(c_60) = [1] x1 + [0] p(c_61) = [2] x1 + [0] p(c_62) = [1] x1 + [4] p(c_63) = [2] x1 + [0] p(c_64) = [1] x1 + [0] p(c_65) = [1] p(c_66) = [1] p(c_67) = [1] x1 + [1] x3 + [0] p(c_68) = [0] p(c_69) = [1] x1 + [1] p(c_70) = [2] x1 + [1] x2 + [1] p(c_71) = [0] p(c_72) = [1] p(c_73) = [0] p(c_74) = [0] p(c_75) = [2] x1 + [0] p(c_76) = [2] x1 + [1] Following rules are strictly oriented: NUB#1#(::(z0,z1)) = [7] > [2] = c_12(NUB#(remove(z0,z1))) Following rules are (at-least) weakly oriented: NUB#(z0) = [1] z0 + [2] >= [11] = c_11(NUB#1#(z0)) #and(#false(),#false()) = [0] >= [0] = #false() #and(#false(),#true()) = [0] >= [0] = #false() #and(#true(),#false()) = [0] >= [0] = #false() #and(#true(),#true()) = [0] >= [0] = #true() #eq(#0(),#0()) = [0] >= [0] = #true() #eq(#0(),#neg(z0)) = [0] >= [0] = #false() #eq(#0(),#pos(z0)) = [0] >= [0] = #false() #eq(#0(),#s(z0)) = [0] >= [0] = #false() #eq(#neg(z0),#0()) = [0] >= [0] = #false() #eq(#neg(z0),#neg(z1)) = [0] >= [0] = #eq(z0,z1) #eq(#neg(z0),#pos(z1)) = [0] >= [0] = #false() #eq(#pos(z0),#0()) = [0] >= [0] = #false() #eq(#pos(z0),#neg(z1)) = [0] >= [0] = #false() #eq(#pos(z0),#pos(z1)) = [0] >= [0] = #eq(z0,z1) #eq(#s(z0),#0()) = [0] >= [0] = #false() #eq(#s(z0),#s(z1)) = [0] >= [0] = #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) = [0] >= [0] = #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) and(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = #and(z0,z1) eq(z0,z1) = [0] >= [0] = eq#1(z0,z1) eq#1(::(z0,z1),z2) = [0] >= [0] = eq#3(z2,z0,z1) eq#1(nil(),z0) = [0] >= [0] = eq#2(z0) eq#2(::(z0,z1)) = [0] >= [0] = #false() eq#2(nil()) = [0] >= [0] = #true() eq#3(::(z0,z1),z2,z3) = [0] >= [0] = and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) = [0] >= [0] = #false() remove(z0,z1) = [0] >= [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [0] >= [0] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [0] >= [0] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [0] >= [0] = remove(z0,z2) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:3: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: NUB#(z0) -> c_11(NUB#1#(z0)) - Weak DPs: NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/1,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_11) = {1}, uargs(c_12) = {1} Following symbols are considered usable: {remove,remove#1,remove#2,#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1#,EQ#2#,EQ#3#,NUB#,NUB#1# ,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove#,remove#1#,remove#2#} TcT has computed the following interpretation: p(#0) = [2] p(#AND) = [1] x2 + [0] p(#EQ) = [4] p(#EQUAL) = [4] p(#and) = [1] x2 + [5] p(#eq) = [2] x1 + [1] x2 + [2] p(#equal) = [2] x1 + [1] x2 + [1] p(#false) = [0] p(#neg) = [4] p(#pos) = [2] p(#s) = [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [1] p(AND) = [0] p(EQ) = [0] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [4] x1 + [1] x2 + [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [1] x1 + [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [1] x1 + [0] p(c35) = [1] x1 + [1] x2 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [1] x1 + [0] p(c4) = [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [0] p(eq) = [0] p(eq#1) = [0] p(eq#2) = [0] p(eq#3) = [0] p(nil) = [0] p(nub) = [0] p(nub#1) = [0] p(remove) = [1] x2 + [0] p(remove#1) = [1] x1 + [0] p(remove#2) = [1] x3 + [1] x4 + [1] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(AND#) = [0] p(EQ#) = [2] p(EQ#1#) = [0] p(EQ#2#) = [0] p(EQ#3#) = [0] p(NUB#) = [2] x1 + [1] p(NUB#1#) = [2] x1 + [0] p(REMOVE#) = [0] p(REMOVE#1#) = [1] x2 + [0] p(REMOVE#2#) = [1] x2 + [1] x3 + [1] x4 + [0] p(and#) = [2] x1 + [0] p(eq#) = [1] x1 + [1] x2 + [0] p(eq#1#) = [1] x1 + [1] x2 + [0] p(eq#2#) = [4] x1 + [0] p(eq#3#) = [0] p(nub#) = [0] p(nub#1#) = [0] p(remove#) = [0] p(remove#1#) = [1] x1 + [0] p(remove#2#) = [2] x1 + [4] x2 + [1] x3 + [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [0] p(c_4) = [1] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [1] x2 + [1] x3 + [1] x4 + [0] p(c_9) = [1] x1 + [0] p(c_10) = [1] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [2] x2 + [0] p(c_16) = [0] p(c_17) = [2] x1 + [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [1] x1 + [0] p(c_29) = [2] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [4] x1 + [0] p(c_35) = [1] x3 + [0] p(c_36) = [1] x1 + [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [1] x1 + [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [2] x1 + [0] p(c_54) = [0] p(c_55) = [2] x1 + [0] p(c_56) = [2] x2 + [2] x3 + [0] p(c_57) = [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [1] x1 + [0] p(c_61) = [0] p(c_62) = [4] x1 + [0] p(c_63) = [1] x1 + [0] p(c_64) = [0] p(c_65) = [0] p(c_66) = [0] p(c_67) = [1] x1 + [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [1] x1 + [0] p(c_71) = [0] p(c_72) = [1] x1 + [0] p(c_73) = [0] p(c_74) = [0] p(c_75) = [1] x1 + [0] p(c_76) = [1] x1 + [0] Following rules are strictly oriented: NUB#(z0) = [2] z0 + [1] > [2] z0 + [0] = c_11(NUB#1#(z0)) Following rules are (at-least) weakly oriented: NUB#1#(::(z0,z1)) = [2] z0 + [2] z1 + [2] >= [2] z1 + [1] = c_12(NUB#(remove(z0,z1))) remove(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] >= [1] z0 + [1] z1 + [1] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [1] z1 + [1] z2 + [1] >= [1] z1 + [1] z2 + [1] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [1] >= [1] z2 + [0] = remove(z0,z2) ** Step 8.a:4: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: NUB#(z0) -> c_11(NUB#1#(z0)) NUB#1#(::(z0,z1)) -> c_12(NUB#(remove(z0,z1))) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/1,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ** Step 8.b:1: DecomposeDG. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) and a lower component EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) Further, following extension rules are added to the lower component. NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#(z0,z1) -> REMOVE#1#(z1,z0) REMOVE#1#(::(z0,z1),z2) -> EQ#(z2,z0) REMOVE#1#(::(z0,z1),z2) -> REMOVE#2#(eq(z2,z0),z2,z0,z1) REMOVE#2#(#false(),z0,z1,z2) -> REMOVE#(z0,z2) REMOVE#2#(#true(),z0,z1,z2) -> REMOVE#(z0,z2) *** Step 8.b:1.a:1: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) -->_1 REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)):2 2:S:REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1),EQ#(z2,z0)) -->_1 REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)):4 -->_1 REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)):3 3:S:REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):1 4:S:REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):1 5:W:NUB#(z0) -> NUB#1#(z0) -->_1 NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1):7 -->_1 NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)):6 6:W:NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) -->_1 NUB#(z0) -> NUB#1#(z0):5 7:W:NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) -->_1 REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) *** Step 8.b:1.a:2: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/1,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1} Following symbols are considered usable: {remove,remove#1,remove#2,#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1#,EQ#2#,EQ#3#,NUB#,NUB#1# ,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove#,remove#1#,remove#2#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [2] x1 + [3] p(#eq) = [4] x2 + [1] p(#equal) = [1] x1 + [4] p(#false) = [0] p(#neg) = [2] p(#pos) = [3] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [2] p(AND) = [0] p(EQ) = [2] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [0] p(c24) = [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [2] p(c34) = [1] p(c35) = [1] p(c36) = [0] p(c37) = [1] p(c38) = [4] p(c4) = [1] p(c5) = [0] p(c6) = [2] p(c7) = [0] p(c8) = [2] p(c9) = [1] p(eq) = [0] p(eq#1) = [0] p(eq#2) = [0] p(eq#3) = [2] x3 + [0] p(nil) = [0] p(nub) = [1] p(nub#1) = [4] p(remove) = [1] x2 + [0] p(remove#1) = [1] x1 + [0] p(remove#2) = [1] x3 + [1] x4 + [2] p(#AND#) = [1] x2 + [1] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [1] x1 + [4] x2 + [0] p(#eq#) = [2] x2 + [1] p(#equal#) = [1] x2 + [0] p(AND#) = [4] x1 + [1] x2 + [2] p(EQ#) = [1] x2 + [0] p(EQ#1#) = [1] x1 + [2] x2 + [1] p(EQ#2#) = [0] p(EQ#3#) = [4] p(NUB#) = [5] x1 + [1] p(NUB#1#) = [5] x1 + [1] p(REMOVE#) = [2] x1 + [4] x2 + [0] p(REMOVE#1#) = [4] x1 + [2] x2 + [0] p(REMOVE#2#) = [2] x2 + [4] x3 + [4] x4 + [0] p(and#) = [0] p(eq#) = [0] p(eq#1#) = [1] x1 + [1] p(eq#2#) = [4] p(eq#3#) = [2] x3 + [0] p(nub#) = [1] p(nub#1#) = [4] x1 + [1] p(remove#) = [1] x2 + [0] p(remove#1#) = [0] p(remove#2#) = [4] x3 + [1] x4 + [1] p(c_1) = [0] p(c_2) = [2] p(c_3) = [1] x1 + [0] p(c_4) = [0] p(c_5) = [2] x1 + [0] p(c_6) = [4] p(c_7) = [0] p(c_8) = [4] x1 + [1] x2 + [2] x3 + [1] p(c_9) = [1] p(c_10) = [0] p(c_11) = [4] x1 + [0] p(c_12) = [1] x1 + [4] p(c_13) = [0] p(c_14) = [1] x1 + [0] p(c_15) = [1] x1 + [7] p(c_16) = [1] p(c_17) = [1] x1 + [0] p(c_18) = [1] x1 + [0] p(c_19) = [4] p(c_20) = [1] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [4] p(c_25) = [1] p(c_26) = [1] p(c_27) = [1] p(c_28) = [1] p(c_29) = [1] p(c_30) = [1] p(c_31) = [4] p(c_32) = [1] x1 + [2] p(c_33) = [0] p(c_34) = [1] x1 + [4] p(c_35) = [1] x1 + [4] x4 + [2] p(c_36) = [1] x1 + [4] x2 + [1] x4 + [0] p(c_37) = [1] p(c_38) = [0] p(c_39) = [0] p(c_40) = [1] p(c_41) = [1] p(c_42) = [2] p(c_43) = [0] p(c_44) = [2] p(c_45) = [0] p(c_46) = [1] p(c_47) = [1] p(c_48) = [0] p(c_49) = [2] x1 + [2] p(c_50) = [0] p(c_51) = [1] p(c_52) = [0] p(c_53) = [4] x1 + [1] p(c_54) = [1] p(c_55) = [1] p(c_56) = [1] x1 + [1] x2 + [0] p(c_57) = [1] p(c_58) = [4] p(c_59) = [1] p(c_60) = [2] p(c_61) = [4] x1 + [0] p(c_62) = [1] x1 + [1] p(c_63) = [0] p(c_64) = [1] x1 + [0] p(c_65) = [0] p(c_66) = [1] p(c_67) = [2] x3 + [4] p(c_68) = [1] p(c_69) = [2] x1 + [1] p(c_70) = [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [4] x1 + [1] x2 + [1] p(c_74) = [0] p(c_75) = [0] p(c_76) = [1] x1 + [0] Following rules are strictly oriented: REMOVE#1#(::(z0,z1),z2) = [4] z0 + [4] z1 + [2] z2 + [8] > [4] z0 + [4] z1 + [2] z2 + [7] = c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) Following rules are (at-least) weakly oriented: NUB#(z0) = [5] z0 + [1] >= [5] z0 + [1] = NUB#1#(z0) NUB#1#(::(z0,z1)) = [5] z0 + [5] z1 + [11] >= [5] z1 + [1] = NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) = [5] z0 + [5] z1 + [11] >= [2] z0 + [4] z1 + [0] = REMOVE#(z0,z1) REMOVE#(z0,z1) = [2] z0 + [4] z1 + [0] >= [2] z0 + [4] z1 + [0] = c_14(REMOVE#1#(z1,z0)) REMOVE#2#(#false(),z0,z1,z2) = [2] z0 + [4] z1 + [4] z2 + [0] >= [2] z0 + [4] z2 + [0] = c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) = [2] z0 + [4] z1 + [4] z2 + [0] >= [2] z0 + [4] z2 + [0] = c_18(REMOVE#(z0,z2)) remove(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [1] z1 + [1] z2 + [2] >= [1] z1 + [1] z2 + [2] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [2] >= [1] z2 + [0] = remove(z0,z2) *** Step 8.b:1.a:3: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/1,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1} Following symbols are considered usable: {remove,remove#1,remove#2,#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1#,EQ#2#,EQ#3#,NUB#,NUB#1# ,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove#,remove#1#,remove#2#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [0] p(#eq) = [4] x2 + [0] p(#equal) = [3] p(#false) = [0] p(#neg) = [1] x1 + [2] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [1] p(AND) = [0] p(EQ) = [0] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [1] x1 + [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [1] x1 + [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [1] x1 + [0] p(c35) = [1] x1 + [1] x2 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [1] x1 + [0] p(c4) = [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(eq) = [0] p(eq#1) = [0] p(eq#2) = [0] p(eq#3) = [0] p(nil) = [0] p(nub) = [0] p(nub#1) = [0] p(remove) = [1] x2 + [0] p(remove#1) = [1] x1 + [0] p(remove#2) = [1] x4 + [1] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(AND#) = [0] p(EQ#) = [0] p(EQ#1#) = [0] p(EQ#2#) = [0] p(EQ#3#) = [0] p(NUB#) = [1] x1 + [0] p(NUB#1#) = [1] x1 + [0] p(REMOVE#) = [1] x2 + [0] p(REMOVE#1#) = [1] x1 + [0] p(REMOVE#2#) = [1] x4 + [1] p(and#) = [1] x2 + [0] p(eq#) = [0] p(eq#1#) = [0] p(eq#2#) = [2] x1 + [0] p(eq#3#) = [4] x1 + [1] x3 + [0] p(nub#) = [4] x1 + [0] p(nub#1#) = [1] x1 + [0] p(remove#) = [0] p(remove#1#) = [1] x1 + [0] p(remove#2#) = [1] x1 + [4] x2 + [1] x3 + [2] x4 + [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [2] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [1] x1 + [2] x3 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [1] x1 + [1] x2 + [0] p(c_13) = [0] p(c_14) = [1] x1 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [2] p(c_17) = [1] x1 + [0] p(c_18) = [1] x1 + [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [2] p(c_26) = [1] p(c_27) = [1] p(c_28) = [1] x1 + [1] p(c_29) = [4] p(c_30) = [1] p(c_31) = [2] p(c_32) = [1] x1 + [0] p(c_33) = [2] p(c_34) = [1] p(c_35) = [1] x1 + [2] x3 + [1] p(c_36) = [2] x1 + [1] x3 + [1] x4 + [0] p(c_37) = [1] p(c_38) = [1] p(c_39) = [2] p(c_40) = [0] p(c_41) = [4] p(c_42) = [2] p(c_43) = [0] p(c_44) = [1] p(c_45) = [1] p(c_46) = [2] p(c_47) = [4] p(c_48) = [0] p(c_49) = [1] p(c_50) = [0] p(c_51) = [0] p(c_52) = [2] p(c_53) = [1] x1 + [4] p(c_54) = [1] p(c_55) = [2] x1 + [0] p(c_56) = [4] x1 + [1] x3 + [1] p(c_57) = [0] p(c_58) = [2] p(c_59) = [0] p(c_60) = [1] x1 + [1] p(c_61) = [1] p(c_62) = [1] p(c_63) = [1] p(c_64) = [0] p(c_65) = [0] p(c_66) = [4] p(c_67) = [1] x1 + [4] x3 + [0] p(c_68) = [0] p(c_69) = [1] x1 + [2] p(c_70) = [1] x1 + [1] x2 + [4] p(c_71) = [1] p(c_72) = [0] p(c_73) = [1] p(c_74) = [4] p(c_75) = [1] x1 + [4] p(c_76) = [1] x1 + [1] Following rules are strictly oriented: REMOVE#2#(#false(),z0,z1,z2) = [1] z2 + [1] > [1] z2 + [0] = c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) = [1] z2 + [1] > [1] z2 + [0] = c_18(REMOVE#(z0,z2)) Following rules are (at-least) weakly oriented: NUB#(z0) = [1] z0 + [0] >= [1] z0 + [0] = NUB#1#(z0) NUB#1#(::(z0,z1)) = [1] z1 + [1] >= [1] z1 + [0] = NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) = [1] z1 + [1] >= [1] z1 + [0] = REMOVE#(z0,z1) REMOVE#(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) = [1] z1 + [1] >= [1] z1 + [1] = c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) remove(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [1] z1 + [1] >= [1] z1 + [1] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [1] z2 + [1] >= [1] z2 + [1] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [1] z2 + [1] >= [1] z2 + [0] = remove(z0,z2) *** Step 8.b:1.a:4: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/1,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(#and) = {1,2}, uargs(::) = {2}, uargs(and) = {1,2}, uargs(remove#2) = {1}, uargs(NUB#) = {1}, uargs(REMOVE#2#) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [1] p(#AND) = [1] x1 + [4] p(#EQ) = [2] x2 + [2] p(#EQUAL) = [1] x1 + [1] p(#and) = [1] x1 + [1] x2 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [1] p(#pos) = [1] x1 + [0] p(#s) = [1] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [4] p(AND) = [0] p(EQ) = [0] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [1] x1 + [1] x2 + [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [1] x1 + [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [1] x1 + [0] p(c35) = [1] x1 + [1] x2 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [1] x1 + [0] p(c4) = [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(eq) = [0] p(eq#1) = [0] p(eq#2) = [0] p(eq#3) = [0] p(nil) = [0] p(nub) = [0] p(nub#1) = [0] p(remove) = [1] x2 + [0] p(remove#1) = [1] x1 + [0] p(remove#2) = [1] x1 + [1] x3 + [1] x4 + [4] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(AND#) = [0] p(EQ#) = [0] p(EQ#1#) = [0] p(EQ#2#) = [0] p(EQ#3#) = [0] p(NUB#) = [1] x1 + [0] p(NUB#1#) = [1] x1 + [0] p(REMOVE#) = [1] x2 + [1] p(REMOVE#1#) = [1] x1 + [0] p(REMOVE#2#) = [1] x1 + [1] x4 + [4] p(and#) = [0] p(eq#) = [0] p(eq#1#) = [0] p(eq#2#) = [0] p(eq#3#) = [0] p(nub#) = [0] p(nub#1#) = [0] p(remove#) = [0] p(remove#1#) = [0] p(remove#2#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [1] x1 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [0] p(c_17) = [1] x1 + [3] p(c_18) = [1] x1 + [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [1] x2 + [1] x3 + [0] p(c_36) = [2] x1 + [1] x2 + [2] x3 + [4] p(c_37) = [0] p(c_38) = [2] p(c_39) = [4] p(c_40) = [0] p(c_41) = [0] p(c_42) = [1] p(c_43) = [1] p(c_44) = [0] p(c_45) = [1] p(c_46) = [1] p(c_47) = [2] p(c_48) = [1] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [1] p(c_53) = [2] x1 + [1] p(c_54) = [1] p(c_55) = [1] p(c_56) = [1] x1 + [2] x2 + [1] x3 + [0] p(c_57) = [4] p(c_58) = [0] p(c_59) = [0] p(c_60) = [1] x1 + [0] p(c_61) = [1] x1 + [4] p(c_62) = [1] x1 + [0] p(c_63) = [0] p(c_64) = [0] p(c_65) = [2] p(c_66) = [4] p(c_67) = [1] x3 + [0] p(c_68) = [1] p(c_69) = [1] x1 + [0] p(c_70) = [4] x1 + [4] x2 + [0] p(c_71) = [0] p(c_72) = [2] x1 + [1] p(c_73) = [4] x1 + [0] p(c_74) = [4] p(c_75) = [2] x1 + [2] p(c_76) = [2] x1 + [0] Following rules are strictly oriented: REMOVE#(z0,z1) = [1] z1 + [1] > [1] z1 + [0] = c_14(REMOVE#1#(z1,z0)) Following rules are (at-least) weakly oriented: NUB#(z0) = [1] z0 + [0] >= [1] z0 + [0] = NUB#1#(z0) NUB#1#(::(z0,z1)) = [1] z0 + [1] z1 + [4] >= [1] z1 + [0] = NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) = [1] z0 + [1] z1 + [4] >= [1] z1 + [1] = REMOVE#(z0,z1) REMOVE#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [4] >= [1] z1 + [4] = c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) REMOVE#2#(#false(),z0,z1,z2) = [1] z2 + [4] >= [1] z2 + [4] = c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) = [1] z2 + [4] >= [1] z2 + [1] = c_18(REMOVE#(z0,z2)) #and(#false(),#false()) = [0] >= [0] = #false() #and(#false(),#true()) = [0] >= [0] = #false() #and(#true(),#false()) = [0] >= [0] = #false() #and(#true(),#true()) = [0] >= [0] = #true() #eq(#0(),#0()) = [0] >= [0] = #true() #eq(#0(),#neg(z0)) = [0] >= [0] = #false() #eq(#0(),#pos(z0)) = [0] >= [0] = #false() #eq(#0(),#s(z0)) = [0] >= [0] = #false() #eq(#neg(z0),#0()) = [0] >= [0] = #false() #eq(#neg(z0),#neg(z1)) = [0] >= [0] = #eq(z0,z1) #eq(#neg(z0),#pos(z1)) = [0] >= [0] = #false() #eq(#pos(z0),#0()) = [0] >= [0] = #false() #eq(#pos(z0),#neg(z1)) = [0] >= [0] = #false() #eq(#pos(z0),#pos(z1)) = [0] >= [0] = #eq(z0,z1) #eq(#s(z0),#0()) = [0] >= [0] = #false() #eq(#s(z0),#s(z1)) = [0] >= [0] = #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) = [0] >= [0] = #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) and(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = #and(z0,z1) eq(z0,z1) = [0] >= [0] = eq#1(z0,z1) eq#1(::(z0,z1),z2) = [0] >= [0] = eq#3(z2,z0,z1) eq#1(nil(),z0) = [0] >= [0] = eq#2(z0) eq#2(::(z0,z1)) = [0] >= [0] = #false() eq#2(nil()) = [0] >= [0] = #true() eq#3(::(z0,z1),z2,z3) = [0] >= [0] = and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) = [0] >= [0] = #false() remove(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [4] >= [1] z0 + [1] z1 + [4] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [1] z1 + [1] z2 + [4] >= [1] z1 + [1] z2 + [4] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [4] >= [1] z2 + [0] = remove(z0,z2) Further, it can be verified that all rules not oriented are covered by the weightgap condition. *** Step 8.b:1.a:5: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#(z0,z1) -> c_14(REMOVE#1#(z1,z0)) REMOVE#1#(::(z0,z1),z2) -> c_15(REMOVE#2#(eq(z2,z0),z2,z0,z1)) REMOVE#2#(#false(),z0,z1,z2) -> c_17(REMOVE#(z0,z2)) REMOVE#2#(#true(),z0,z1,z2) -> c_18(REMOVE#(z0,z2)) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/1,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). *** Step 8.b:1.b:1: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) - Weak DPs: NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#(z0,z1) -> REMOVE#1#(z1,z0) REMOVE#1#(::(z0,z1),z2) -> EQ#(z2,z0) REMOVE#1#(::(z0,z1),z2) -> REMOVE#2#(eq(z2,z0),z2,z0,z1) REMOVE#2#(#false(),z0,z1,z2) -> REMOVE#(z0,z2) REMOVE#2#(#true(),z0,z1,z2) -> REMOVE#(z0,z2) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_4) = {1}, uargs(c_9) = {1} Following symbols are considered usable: {remove,remove#1,remove#2,#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1#,EQ#2#,EQ#3#,NUB#,NUB#1# ,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove#,remove#1#,remove#2#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [1] x2 + [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [4] x1 + [0] p(#eq) = [1] p(#equal) = [1] p(#false) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [1] p(AND) = [0] p(EQ) = [0] p(EQ#1) = [0] p(EQ#2) = [0] p(EQ#3) = [0] p(NUB) = [0] p(NUB#1) = [0] p(REMOVE) = [0] p(REMOVE#1) = [0] p(REMOVE#2) = [0] p(and) = [2] x1 + [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [1] x1 + [0] p(c14) = [0] p(c15) = [1] x1 + [0] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [1] x1 + [0] p(c22) = [1] x1 + [0] p(c23) = [1] x1 + [0] p(c24) = [1] x1 + [0] p(c25) = [1] x1 + [0] p(c26) = [0] p(c27) = [0] p(c28) = [1] x1 + [1] x2 + [0] p(c29) = [1] x1 + [1] x2 + [0] p(c3) = [0] p(c30) = [0] p(c31) = [1] x1 + [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [0] p(c34) = [1] x1 + [0] p(c35) = [1] x1 + [1] x2 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [1] x1 + [0] p(c4) = [0] p(c5) = [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(eq) = [0] p(eq#1) = [2] x1 + [7] p(eq#2) = [0] p(eq#3) = [4] x1 + [0] p(nil) = [0] p(nub) = [0] p(nub#1) = [0] p(remove) = [1] x2 + [0] p(remove#1) = [1] x1 + [0] p(remove#2) = [1] x3 + [1] x4 + [1] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [1] x1 + [0] p(AND#) = [0] p(EQ#) = [3] x1 + [4] x2 + [2] p(EQ#1#) = [3] x1 + [4] x2 + [1] p(EQ#2#) = [0] p(EQ#3#) = [4] x1 + [3] x3 + [3] p(NUB#) = [4] x1 + [4] p(NUB#1#) = [4] x1 + [2] p(REMOVE#) = [3] x1 + [4] x2 + [1] p(REMOVE#1#) = [4] x1 + [3] x2 + [1] p(REMOVE#2#) = [3] x2 + [4] x4 + [4] p(and#) = [0] p(eq#) = [0] p(eq#1#) = [0] p(eq#2#) = [0] p(eq#3#) = [0] p(nub#) = [0] p(nub#1#) = [0] p(remove#) = [0] p(remove#1#) = [0] p(remove#2#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [1] x1 + [0] p(c_4) = [1] x1 + [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [1] x1 + [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [1] x1 + [4] x2 + [0] p(c_16) = [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [1] x1 + [0] p(c_35) = [2] x2 + [1] x4 + [0] p(c_36) = [4] x1 + [2] x2 + [2] x4 + [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [1] x1 + [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] p(c_54) = [0] p(c_55) = [2] x1 + [0] p(c_56) = [1] x2 + [0] p(c_57) = [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [2] x1 + [0] p(c_61) = [0] p(c_62) = [0] p(c_63) = [0] p(c_64) = [0] p(c_65) = [0] p(c_66) = [0] p(c_67) = [1] x1 + [1] x2 + [0] p(c_68) = [0] p(c_69) = [1] x1 + [0] p(c_70) = [1] x1 + [4] x2 + [0] p(c_71) = [0] p(c_72) = [2] x1 + [0] p(c_73) = [1] x1 + [1] x2 + [0] p(c_74) = [0] p(c_75) = [1] x1 + [0] p(c_76) = [1] x1 + [0] Following rules are strictly oriented: EQ#(z0,z1) = [3] z0 + [4] z1 + [2] > [3] z0 + [4] z1 + [1] = c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) = [3] z0 + [3] z1 + [4] z2 + [4] > [3] z1 + [4] z2 + [3] = c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) = [4] z0 + [4] z1 + [3] z3 + [7] > [4] z1 + [3] z3 + [2] = c_9(EQ#(z3,z1)) Following rules are (at-least) weakly oriented: NUB#(z0) = [4] z0 + [4] >= [4] z0 + [2] = NUB#1#(z0) NUB#1#(::(z0,z1)) = [4] z0 + [4] z1 + [6] >= [4] z1 + [4] = NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) = [4] z0 + [4] z1 + [6] >= [3] z0 + [4] z1 + [1] = REMOVE#(z0,z1) REMOVE#(z0,z1) = [3] z0 + [4] z1 + [1] >= [3] z0 + [4] z1 + [1] = REMOVE#1#(z1,z0) REMOVE#1#(::(z0,z1),z2) = [4] z0 + [4] z1 + [3] z2 + [5] >= [4] z0 + [3] z2 + [2] = EQ#(z2,z0) REMOVE#1#(::(z0,z1),z2) = [4] z0 + [4] z1 + [3] z2 + [5] >= [4] z1 + [3] z2 + [4] = REMOVE#2#(eq(z2,z0),z2,z0,z1) REMOVE#2#(#false(),z0,z1,z2) = [3] z0 + [4] z2 + [4] >= [3] z0 + [4] z2 + [1] = REMOVE#(z0,z2) REMOVE#2#(#true(),z0,z1,z2) = [3] z0 + [4] z2 + [4] >= [3] z0 + [4] z2 + [1] = REMOVE#(z0,z2) remove(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = remove#1(z1,z0) remove#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] >= [1] z0 + [1] z1 + [1] = remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) = [0] >= [0] = nil() remove#2(#false(),z0,z1,z2) = [1] z1 + [1] z2 + [1] >= [1] z1 + [1] z2 + [1] = ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) = [1] z1 + [1] z2 + [1] >= [1] z2 + [0] = remove(z0,z2) *** Step 8.b:1.b:2: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: EQ#(z0,z1) -> c_3(EQ#1#(z0,z1)) EQ#1#(::(z0,z1),z2) -> c_4(EQ#3#(z2,z0,z1)) EQ#3#(::(z0,z1),z2,z3) -> c_9(EQ#(z3,z1)) NUB#(z0) -> NUB#1#(z0) NUB#1#(::(z0,z1)) -> NUB#(remove(z0,z1)) NUB#1#(::(z0,z1)) -> REMOVE#(z0,z1) REMOVE#(z0,z1) -> REMOVE#1#(z1,z0) REMOVE#1#(::(z0,z1),z2) -> EQ#(z2,z0) REMOVE#1#(::(z0,z1),z2) -> REMOVE#2#(eq(z2,z0),z2,z0,z1) REMOVE#2#(#false(),z0,z1,z2) -> REMOVE#(z0,z2) REMOVE#2#(#true(),z0,z1,z2) -> REMOVE#(z0,z2) - Weak TRS: #and(#false(),#false()) -> #false() #and(#false(),#true()) -> #false() #and(#true(),#false()) -> #false() #and(#true(),#true()) -> #true() #eq(#0(),#0()) -> #true() #eq(#0(),#neg(z0)) -> #false() #eq(#0(),#pos(z0)) -> #false() #eq(#0(),#s(z0)) -> #false() #eq(#neg(z0),#0()) -> #false() #eq(#neg(z0),#neg(z1)) -> #eq(z0,z1) #eq(#neg(z0),#pos(z1)) -> #false() #eq(#pos(z0),#0()) -> #false() #eq(#pos(z0),#neg(z1)) -> #false() #eq(#pos(z0),#pos(z1)) -> #eq(z0,z1) #eq(#s(z0),#0()) -> #false() #eq(#s(z0),#s(z1)) -> #eq(z0,z1) #eq(::(z0,z1),::(z2,z3)) -> #and(#eq(z0,z2),#eq(z1,z3)) #eq(::(z0,z1),nil()) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),nil()) -> #true() #equal(z0,z1) -> #eq(z0,z1) and(z0,z1) -> #and(z0,z1) eq(z0,z1) -> eq#1(z0,z1) eq#1(::(z0,z1),z2) -> eq#3(z2,z0,z1) eq#1(nil(),z0) -> eq#2(z0) eq#2(::(z0,z1)) -> #false() eq#2(nil()) -> #true() eq#3(::(z0,z1),z2,z3) -> and(#equal(z2,z0),eq(z3,z1)) eq#3(nil(),z0,z1) -> #false() remove(z0,z1) -> remove#1(z1,z0) remove#1(::(z0,z1),z2) -> remove#2(eq(z2,z0),z2,z0,z1) remove#1(nil(),z0) -> nil() remove#2(#false(),z0,z1,z2) -> ::(z1,remove(z0,z2)) remove#2(#true(),z0,z1,z2) -> remove(z0,z2) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,AND/2,EQ/2,EQ#1/2,EQ#2/1,EQ#3/3,NUB/1,NUB#1/1,REMOVE/2 ,REMOVE#1/2,REMOVE#2/4,and/2,eq/2,eq#1/2,eq#2/1,eq#3/3,nub/1,nub#1/1,remove/2,remove#1/2,remove#2/4,#AND#/2 ,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,AND#/2,EQ#/2,EQ#1#/2,EQ#2#/1,EQ#3#/3,NUB#/1,NUB#1#/1,REMOVE#/2 ,REMOVE#1#/2,REMOVE#2#/4,and#/2,eq#/2,eq#1#/2,eq#2#/1,eq#3#/3,nub#/1,nub#1#/1,remove#/2,remove#1#/2 ,remove#2#/4} / {#0/0,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,c/0,c1/0,c10/0,c11/0,c12/0,c13/1,c14/0,c15/1 ,c16/2,c17/2,c18/0,c19/0,c2/0,c20/0,c21/1,c22/1,c23/1,c24/1,c25/1,c26/0,c27/0,c28/2,c29/2,c3/0,c30/0,c31/1 ,c32/2,c33/0,c34/1,c35/2,c36/0,c37/1,c38/1,c4/0,c5/0,c6/0,c7/0,c8/0,c9/1,nil/0,c_1/1,c_2/1,c_3/1,c_4/1,c_5/1 ,c_6/0,c_7/0,c_8/4,c_9/1,c_10/0,c_11/1,c_12/2,c_13/0,c_14/1,c_15/2,c_16/0,c_17/1,c_18/1,c_19/0,c_20/0,c_21/0 ,c_22/0,c_23/0,c_24/0,c_25/0,c_26/0,c_27/0,c_28/1,c_29/0,c_30/0,c_31/0,c_32/1,c_33/0,c_34/1,c_35/4,c_36/4 ,c_37/0,c_38/0,c_39/0,c_40/0,c_41/0,c_42/0,c_43/0,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/1,c_50/0,c_51/0 ,c_52/0,c_53/1,c_54/0,c_55/1,c_56/3,c_57/0,c_58/0,c_59/0,c_60/1,c_61/1,c_62/1,c_63/1,c_64/1,c_65/0,c_66/0 ,c_67/3,c_68/0,c_69/1,c_70/2,c_71/0,c_72/1,c_73/2,c_74/0,c_75/1,c_76/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,AND#,EQ#,EQ#1# ,EQ#2#,EQ#3#,NUB#,NUB#1#,REMOVE#,REMOVE#1#,REMOVE#2#,and#,eq#,eq#1#,eq#2#,eq#3#,nub#,nub#1#,remove# ,remove#1#,remove#2#} and constructors {#0,#false,#neg,#pos,#s,#true,::,c,c1,c10,c11,c12,c13,c14,c15,c16,c17 ,c18,c19,c2,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c3,c30,c31,c32,c33,c34,c35,c36,c37,c38,c4,c5,c6,c7,c8,c9 ,nil} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^3))