WORST_CASE(?,O(n^3)) * Step 1: Sum. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c35(#EQ(z0,z1)) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0 ,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2 ,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0 ,c9/1,leaf/0,nil/0,node/3} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#EQ,#EQUAL,#and,#eq,#equal,APPENDREVERSE ,APPENDREVERSE#1,BFS,BFS#1,BFS#2,BFS#3,BFS#4,BFS2,BFS2#1,DFS,DFS#1,DFS#2,DFS#3,DOBFS,DODFS,REVERSE ,appendreverse,appendreverse#1,bfs,bfs#1,bfs#2,bfs#3,bfs#4,bfs2,bfs2#1,dfs,dfs#1,dfs#2,dfs#3,dobfs,dodfs ,reverse} 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,c39,c4,c40,c41,c42,c43,c44 ,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil,node} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DependencyPairs. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict TRS: #EQUAL(z0,z1) -> c35(#EQ(z0,z1)) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0 ,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2 ,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0 ,c9/1,leaf/0,nil/0,node/3} - Obligation: innermost runtime complexity wrt. defined symbols {#AND,#EQ,#EQUAL,#and,#eq,#equal,APPENDREVERSE ,APPENDREVERSE#1,BFS,BFS#1,BFS#2,BFS#3,BFS#4,BFS2,BFS2#1,DFS,DFS#1,DFS#2,DFS#3,DOBFS,DODFS,REVERSE ,appendreverse,appendreverse#1,bfs,bfs#1,bfs#2,bfs#3,bfs#4,bfs2,bfs2#1,dfs,dfs#1,dfs#2,dfs#3,dobfs,dodfs ,reverse} 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,c39,c4,c40,c41,c42,c43,c44 ,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil,node} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) APPENDREVERSE#1#(nil(),z0) -> c_4() BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) BFS#2#(nil(),z0) -> c_9() BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#1#(nil(),z0) -> c_18() DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5),#EQUAL#(z0,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) Weak DPs #AND#(#false(),#false()) -> c_26() #AND#(#false(),#true()) -> c_27() #AND#(#true(),#false()) -> c_28() #AND#(#true(),#true()) -> c_29() #EQ#(#0(),#0()) -> c_30() #EQ#(#0(),#neg(z0)) -> c_31() #EQ#(#0(),#pos(z0)) -> c_32() #EQ#(#0(),#s(z0)) -> c_33() #EQ#(#neg(z0),#0()) -> c_34() #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_36() #EQ#(#pos(z0),#0()) -> c_37() #EQ#(#pos(z0),#neg(z1)) -> c_38() #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_40() #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),leaf()) -> c_44() #EQ#(::(z0,z1),nil()) -> c_45() #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() #EQ#(leaf(),::(z0,z1)) -> c_47() #EQ#(leaf(),leaf()) -> c_48() #EQ#(leaf(),nil()) -> c_49() #EQ#(leaf(),node(z0,z1,z2)) -> c_50() #EQ#(nil(),::(z0,z1)) -> c_51() #EQ#(nil(),leaf()) -> c_52() #EQ#(nil(),nil()) -> c_53() #EQ#(nil(),node(z0,z1,z2)) -> c_54() #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() #EQ#(node(z0,z1,z2),leaf()) -> c_56() #EQ#(node(z0,z1,z2),nil()) -> c_57() #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) #and#(#false(),#false()) -> c_61() #and#(#false(),#true()) -> c_62() #and#(#true(),#false()) -> c_63() #and#(#true(),#true()) -> c_64() #eq#(#0(),#0()) -> c_65() #eq#(#0(),#neg(z0)) -> c_66() #eq#(#0(),#pos(z0)) -> c_67() #eq#(#0(),#s(z0)) -> c_68() #eq#(#neg(z0),#0()) -> c_69() #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_71() #eq#(#pos(z0),#0()) -> c_72() #eq#(#pos(z0),#neg(z1)) -> c_73() #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_75() #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),leaf()) -> c_78() #eq#(::(z0,z1),nil()) -> c_79() #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() #eq#(leaf(),::(z0,z1)) -> c_81() #eq#(leaf(),leaf()) -> c_82() #eq#(leaf(),nil()) -> c_83() #eq#(leaf(),node(z0,z1,z2)) -> c_84() #eq#(nil(),::(z0,z1)) -> c_85() #eq#(nil(),leaf()) -> c_86() #eq#(nil(),nil()) -> c_87() #eq#(nil(),node(z0,z1,z2)) -> c_88() #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() #eq#(node(z0,z1,z2),leaf()) -> c_90() #eq#(node(z0,z1,z2),nil()) -> c_91() #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) #equal#(z0,z1) -> c_93(#eq#(z0,z1)) appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) appendreverse#1#(nil(),z0) -> c_96() bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) bfs#2#(nil(),z0) -> c_101() bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) dfs#1#(nil(),z0) -> c_110() dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) reverse#(z0) -> c_117(appendreverse#(z0,nil())) 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)) APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) APPENDREVERSE#1#(nil(),z0) -> c_4() BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) BFS#2#(nil(),z0) -> c_9() BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#1#(nil(),z0) -> c_18() DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5),#EQUAL#(z0,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - Weak DPs: #AND#(#false(),#false()) -> c_26() #AND#(#false(),#true()) -> c_27() #AND#(#true(),#false()) -> c_28() #AND#(#true(),#true()) -> c_29() #EQ#(#0(),#0()) -> c_30() #EQ#(#0(),#neg(z0)) -> c_31() #EQ#(#0(),#pos(z0)) -> c_32() #EQ#(#0(),#s(z0)) -> c_33() #EQ#(#neg(z0),#0()) -> c_34() #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_36() #EQ#(#pos(z0),#0()) -> c_37() #EQ#(#pos(z0),#neg(z1)) -> c_38() #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_40() #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),leaf()) -> c_44() #EQ#(::(z0,z1),nil()) -> c_45() #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() #EQ#(leaf(),::(z0,z1)) -> c_47() #EQ#(leaf(),leaf()) -> c_48() #EQ#(leaf(),nil()) -> c_49() #EQ#(leaf(),node(z0,z1,z2)) -> c_50() #EQ#(nil(),::(z0,z1)) -> c_51() #EQ#(nil(),leaf()) -> c_52() #EQ#(nil(),nil()) -> c_53() #EQ#(nil(),node(z0,z1,z2)) -> c_54() #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() #EQ#(node(z0,z1,z2),leaf()) -> c_56() #EQ#(node(z0,z1,z2),nil()) -> c_57() #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) #and#(#false(),#false()) -> c_61() #and#(#false(),#true()) -> c_62() #and#(#true(),#false()) -> c_63() #and#(#true(),#true()) -> c_64() #eq#(#0(),#0()) -> c_65() #eq#(#0(),#neg(z0)) -> c_66() #eq#(#0(),#pos(z0)) -> c_67() #eq#(#0(),#s(z0)) -> c_68() #eq#(#neg(z0),#0()) -> c_69() #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_71() #eq#(#pos(z0),#0()) -> c_72() #eq#(#pos(z0),#neg(z1)) -> c_73() #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_75() #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),leaf()) -> c_78() #eq#(::(z0,z1),nil()) -> c_79() #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() #eq#(leaf(),::(z0,z1)) -> c_81() #eq#(leaf(),leaf()) -> c_82() #eq#(leaf(),nil()) -> c_83() #eq#(leaf(),node(z0,z1,z2)) -> c_84() #eq#(nil(),::(z0,z1)) -> c_85() #eq#(nil(),leaf()) -> c_86() #eq#(nil(),nil()) -> c_87() #eq#(nil(),node(z0,z1,z2)) -> c_88() #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() #eq#(node(z0,z1,z2),leaf()) -> c_90() #eq#(node(z0,z1,z2),nil()) -> c_91() #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) #equal#(z0,z1) -> c_93(#eq#(z0,z1)) appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) appendreverse#1#(nil(),z0) -> c_96() bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) bfs#2#(nil(),z0) -> c_101() bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) dfs#1#(nil(),z0) -> c_110() dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) reverse#(z0) -> c_117(appendreverse#(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #EQUAL(z0,z1) -> c35(#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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/3,c_9/0,c_10/1,c_11/3,c_12/1,c_13/0,c_14/3,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/3 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,4,9,13,18,22} by application of Pre({1,4,9,13,18,22}) = {2,7,11,16,20}. Here rules are labelled as follows: 1: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) 2: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) 3: APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) 4: APPENDREVERSE#1#(nil(),z0) -> c_4() 5: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) 6: BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) 7: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) 8: BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) 9: BFS#2#(nil(),z0) -> c_9() 10: BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) 11: BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) 12: BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) 13: BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() 14: BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) 15: BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) 16: DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) 17: DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) 18: DFS#1#(nil(),z0) -> c_18() 19: DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) 20: DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) ,#equal#(z0,z5) ,#EQUAL#(z0,z5)) 21: DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) 22: DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() 23: DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) 24: DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) 25: REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) 26: #AND#(#false(),#false()) -> c_26() 27: #AND#(#false(),#true()) -> c_27() 28: #AND#(#true(),#false()) -> c_28() 29: #AND#(#true(),#true()) -> c_29() 30: #EQ#(#0(),#0()) -> c_30() 31: #EQ#(#0(),#neg(z0)) -> c_31() 32: #EQ#(#0(),#pos(z0)) -> c_32() 33: #EQ#(#0(),#s(z0)) -> c_33() 34: #EQ#(#neg(z0),#0()) -> c_34() 35: #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) 36: #EQ#(#neg(z0),#pos(z1)) -> c_36() 37: #EQ#(#pos(z0),#0()) -> c_37() 38: #EQ#(#pos(z0),#neg(z1)) -> c_38() 39: #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) 40: #EQ#(#s(z0),#0()) -> c_40() 41: #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) 42: #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) 43: #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) 44: #EQ#(::(z0,z1),leaf()) -> c_44() 45: #EQ#(::(z0,z1),nil()) -> c_45() 46: #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() 47: #EQ#(leaf(),::(z0,z1)) -> c_47() 48: #EQ#(leaf(),leaf()) -> c_48() 49: #EQ#(leaf(),nil()) -> c_49() 50: #EQ#(leaf(),node(z0,z1,z2)) -> c_50() 51: #EQ#(nil(),::(z0,z1)) -> c_51() 52: #EQ#(nil(),leaf()) -> c_52() 53: #EQ#(nil(),nil()) -> c_53() 54: #EQ#(nil(),node(z0,z1,z2)) -> c_54() 55: #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() 56: #EQ#(node(z0,z1,z2),leaf()) -> c_56() 57: #EQ#(node(z0,z1,z2),nil()) -> c_57() 58: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) 59: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) 60: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) 61: #and#(#false(),#false()) -> c_61() 62: #and#(#false(),#true()) -> c_62() 63: #and#(#true(),#false()) -> c_63() 64: #and#(#true(),#true()) -> c_64() 65: #eq#(#0(),#0()) -> c_65() 66: #eq#(#0(),#neg(z0)) -> c_66() 67: #eq#(#0(),#pos(z0)) -> c_67() 68: #eq#(#0(),#s(z0)) -> c_68() 69: #eq#(#neg(z0),#0()) -> c_69() 70: #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) 71: #eq#(#neg(z0),#pos(z1)) -> c_71() 72: #eq#(#pos(z0),#0()) -> c_72() 73: #eq#(#pos(z0),#neg(z1)) -> c_73() 74: #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) 75: #eq#(#s(z0),#0()) -> c_75() 76: #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) 77: #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 78: #eq#(::(z0,z1),leaf()) -> c_78() 79: #eq#(::(z0,z1),nil()) -> c_79() 80: #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() 81: #eq#(leaf(),::(z0,z1)) -> c_81() 82: #eq#(leaf(),leaf()) -> c_82() 83: #eq#(leaf(),nil()) -> c_83() 84: #eq#(leaf(),node(z0,z1,z2)) -> c_84() 85: #eq#(nil(),::(z0,z1)) -> c_85() 86: #eq#(nil(),leaf()) -> c_86() 87: #eq#(nil(),nil()) -> c_87() 88: #eq#(nil(),node(z0,z1,z2)) -> c_88() 89: #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() 90: #eq#(node(z0,z1,z2),leaf()) -> c_90() 91: #eq#(node(z0,z1,z2),nil()) -> c_91() 92: #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) 93: #equal#(z0,z1) -> c_93(#eq#(z0,z1)) 94: appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) 95: appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) 96: appendreverse#1#(nil(),z0) -> c_96() 97: bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) 98: bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) 99: bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) 100: bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) 101: bfs#2#(nil(),z0) -> c_101() 102: bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) 103: bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) 104: bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) 105: bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() 106: bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) 107: bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) 108: dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) 109: dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) 110: dfs#1#(nil(),z0) -> c_110() 111: dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) 112: dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) 113: dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) 114: dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() 115: dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) 116: dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) 117: reverse#(z0) -> c_117(appendreverse#(z0,nil())) * Step 4: RemoveWeakSuffixes. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5),#EQUAL#(z0,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - Weak DPs: #AND#(#false(),#false()) -> c_26() #AND#(#false(),#true()) -> c_27() #AND#(#true(),#false()) -> c_28() #AND#(#true(),#true()) -> c_29() #EQ#(#0(),#0()) -> c_30() #EQ#(#0(),#neg(z0)) -> c_31() #EQ#(#0(),#pos(z0)) -> c_32() #EQ#(#0(),#s(z0)) -> c_33() #EQ#(#neg(z0),#0()) -> c_34() #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) #EQ#(#neg(z0),#pos(z1)) -> c_36() #EQ#(#pos(z0),#0()) -> c_37() #EQ#(#pos(z0),#neg(z1)) -> c_38() #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) #EQ#(#s(z0),#0()) -> c_40() #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) #EQ#(::(z0,z1),leaf()) -> c_44() #EQ#(::(z0,z1),nil()) -> c_45() #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() #EQ#(leaf(),::(z0,z1)) -> c_47() #EQ#(leaf(),leaf()) -> c_48() #EQ#(leaf(),nil()) -> c_49() #EQ#(leaf(),node(z0,z1,z2)) -> c_50() #EQ#(nil(),::(z0,z1)) -> c_51() #EQ#(nil(),leaf()) -> c_52() #EQ#(nil(),nil()) -> c_53() #EQ#(nil(),node(z0,z1,z2)) -> c_54() #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() #EQ#(node(z0,z1,z2),leaf()) -> c_56() #EQ#(node(z0,z1,z2),nil()) -> c_57() #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) #and#(#false(),#false()) -> c_61() #and#(#false(),#true()) -> c_62() #and#(#true(),#false()) -> c_63() #and#(#true(),#true()) -> c_64() #eq#(#0(),#0()) -> c_65() #eq#(#0(),#neg(z0)) -> c_66() #eq#(#0(),#pos(z0)) -> c_67() #eq#(#0(),#s(z0)) -> c_68() #eq#(#neg(z0),#0()) -> c_69() #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) #eq#(#neg(z0),#pos(z1)) -> c_71() #eq#(#pos(z0),#0()) -> c_72() #eq#(#pos(z0),#neg(z1)) -> c_73() #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) #eq#(#s(z0),#0()) -> c_75() #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) #eq#(::(z0,z1),leaf()) -> c_78() #eq#(::(z0,z1),nil()) -> c_79() #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() #eq#(leaf(),::(z0,z1)) -> c_81() #eq#(leaf(),leaf()) -> c_82() #eq#(leaf(),nil()) -> c_83() #eq#(leaf(),node(z0,z1,z2)) -> c_84() #eq#(nil(),::(z0,z1)) -> c_85() #eq#(nil(),leaf()) -> c_86() #eq#(nil(),nil()) -> c_87() #eq#(nil(),node(z0,z1,z2)) -> c_88() #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() #eq#(node(z0,z1,z2),leaf()) -> c_90() #eq#(node(z0,z1,z2),nil()) -> c_91() #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) #equal#(z0,z1) -> c_93(#eq#(z0,z1)) APPENDREVERSE#1#(nil(),z0) -> c_4() BFS#2#(nil(),z0) -> c_9() BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() DFS#1#(nil(),z0) -> c_18() DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) appendreverse#1#(nil(),z0) -> c_96() bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) bfs#2#(nil(),z0) -> c_101() bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) dfs#1#(nil(),z0) -> c_110() dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) reverse#(z0) -> c_117(appendreverse#(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #EQUAL(z0,z1) -> c35(#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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/3,c_9/0,c_10/1,c_11/3,c_12/1,c_13/0,c_14/3,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/3 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) -->_1 APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))):2 -->_1 APPENDREVERSE#1#(nil(),z0) -> c_4():89 2:S:APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 3:S:BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) -->_1 BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)):5 -->_1 BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)):4 4:S:BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)):8 -->_1 BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)):7 5:S:BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) -->_1 BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2) ,reverse#(::(z0,z1)) ,REVERSE#(::(z0,z1))):6 -->_1 BFS#2#(nil(),z0) -> c_9():90 6:S:BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) -->_2 reverse#(z0) -> c_117(appendreverse#(z0,nil())):117 -->_3 REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())):19 -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 7:S:BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 8:S:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) -->_2 #equal#(z0,z1) -> c_93(#eq#(z0,z1)):88 -->_3 #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)):55 -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)):9 -->_1 BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13():91 9:S:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 10:S:BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) -->_2 dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)):115 -->_3 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 -->_1 BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)):11 11:S:BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) -->_1 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 12:S:DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) -->_1 DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)):13 -->_1 DFS#1#(nil(),z0) -> c_18():92 13:S:DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) -->_1 DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) ,#equal#(z0,z5) ,#EQUAL#(z0,z5)):15 -->_1 DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)):14 14:S:DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 15:S:DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) ,#equal#(z0,z5) ,#EQUAL#(z0,z5)) -->_2 #equal#(z0,z1) -> c_93(#eq#(z0,z1)):88 -->_3 #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)):55 -->_1 DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)):16 -->_1 DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22():93 16:S:DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 17:S:DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 18:S:DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 19:S:REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 20:W:#AND#(#false(),#false()) -> c_26() 21:W:#AND#(#false(),#true()) -> c_27() 22:W:#AND#(#true(),#false()) -> c_28() 23:W:#AND#(#true(),#true()) -> c_29() 24:W:#EQ#(#0(),#0()) -> c_30() 25:W:#EQ#(#0(),#neg(z0)) -> c_31() 26:W:#EQ#(#0(),#pos(z0)) -> c_32() 27:W:#EQ#(#0(),#s(z0)) -> c_33() 28:W:#EQ#(#neg(z0),#0()) -> c_34() 29:W:#EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_1 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_1 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_1 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_1 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_1 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_1 #EQ#(nil(),nil()) -> c_53():47 -->_1 #EQ#(nil(),leaf()) -> c_52():46 -->_1 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_1 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_1 #EQ#(leaf(),nil()) -> c_49():43 -->_1 #EQ#(leaf(),leaf()) -> c_48():42 -->_1 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_1 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_1 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_1 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_1 #EQ#(#s(z0),#0()) -> c_40():34 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_1 #EQ#(#pos(z0),#0()) -> c_37():31 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_1 #EQ#(#neg(z0),#0()) -> c_34():28 -->_1 #EQ#(#0(),#s(z0)) -> c_33():27 -->_1 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_1 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_1 #EQ#(#0(),#0()) -> c_30():24 30:W:#EQ#(#neg(z0),#pos(z1)) -> c_36() 31:W:#EQ#(#pos(z0),#0()) -> c_37() 32:W:#EQ#(#pos(z0),#neg(z1)) -> c_38() 33:W:#EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_1 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_1 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_1 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_1 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_1 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_1 #EQ#(nil(),nil()) -> c_53():47 -->_1 #EQ#(nil(),leaf()) -> c_52():46 -->_1 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_1 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_1 #EQ#(leaf(),nil()) -> c_49():43 -->_1 #EQ#(leaf(),leaf()) -> c_48():42 -->_1 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_1 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_1 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_1 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_1 #EQ#(#s(z0),#0()) -> c_40():34 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_1 #EQ#(#pos(z0),#0()) -> c_37():31 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_1 #EQ#(#neg(z0),#0()) -> c_34():28 -->_1 #EQ#(#0(),#s(z0)) -> c_33():27 -->_1 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_1 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_1 #EQ#(#0(),#0()) -> c_30():24 34:W:#EQ#(#s(z0),#0()) -> c_40() 35:W:#EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_1 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_1 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_1 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_1 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_1 #EQ#(nil(),nil()) -> c_53():47 -->_1 #EQ#(nil(),leaf()) -> c_52():46 -->_1 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_1 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_1 #EQ#(leaf(),nil()) -> c_49():43 -->_1 #EQ#(leaf(),leaf()) -> c_48():42 -->_1 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_1 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_1 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_1 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_1 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_1 #EQ#(#s(z0),#0()) -> c_40():34 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_1 #EQ#(#pos(z0),#0()) -> c_37():31 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_1 #EQ#(#neg(z0),#0()) -> c_34():28 -->_1 #EQ#(#0(),#s(z0)) -> c_33():27 -->_1 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_1 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_1 #EQ#(#0(),#0()) -> c_30():24 36:W:#EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) -->_3 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_3 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_3 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_3 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_3 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_3 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_3 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_3 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_3 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_3 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_3 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_3 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_3 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_3 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_3 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_3 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_3 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_3 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_3 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_3 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_3 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_3 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_3 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_4 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_4 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_4 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_4 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_4 #EQ#(nil(),nil()) -> c_53():47 -->_4 #EQ#(nil(),leaf()) -> c_52():46 -->_4 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_4 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_4 #EQ#(leaf(),nil()) -> c_49():43 -->_4 #EQ#(leaf(),leaf()) -> c_48():42 -->_4 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_4 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_4 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_4 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_4 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_4 #EQ#(#s(z0),#0()) -> c_40():34 -->_4 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_4 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_4 #EQ#(#pos(z0),#0()) -> c_37():31 -->_4 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_4 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_4 #EQ#(#neg(z0),#0()) -> c_34():28 -->_4 #EQ#(#0(),#s(z0)) -> c_33():27 -->_4 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_4 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_4 #EQ#(#0(),#0()) -> c_30():24 -->_1 #AND#(#true(),#true()) -> c_29():23 -->_1 #AND#(#true(),#false()) -> c_28():22 -->_1 #AND#(#false(),#true()) -> c_27():21 -->_1 #AND#(#false(),#false()) -> c_26():20 37:W:#EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) -->_3 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_3 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_4 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_3 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_3 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_3 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_3 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_3 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_3 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_3 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_3 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_3 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_3 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_3 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_3 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_3 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_3 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_3 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_3 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_3 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_3 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_3 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_3 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_3 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_4 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_4 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_4 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_4 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_4 #EQ#(nil(),nil()) -> c_53():47 -->_4 #EQ#(nil(),leaf()) -> c_52():46 -->_4 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_4 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_4 #EQ#(leaf(),nil()) -> c_49():43 -->_4 #EQ#(leaf(),leaf()) -> c_48():42 -->_4 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_4 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_4 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_4 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_4 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_4 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_4 #EQ#(#s(z0),#0()) -> c_40():34 -->_4 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_4 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_4 #EQ#(#pos(z0),#0()) -> c_37():31 -->_4 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_4 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_4 #EQ#(#neg(z0),#0()) -> c_34():28 -->_4 #EQ#(#0(),#s(z0)) -> c_33():27 -->_4 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_4 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_4 #EQ#(#0(),#0()) -> c_30():24 -->_1 #AND#(#true(),#true()) -> c_29():23 -->_1 #AND#(#true(),#false()) -> c_28():22 -->_1 #AND#(#false(),#true()) -> c_27():21 -->_1 #AND#(#false(),#false()) -> c_26():20 38:W:#EQ#(::(z0,z1),leaf()) -> c_44() 39:W:#EQ#(::(z0,z1),nil()) -> c_45() 40:W:#EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() 41:W:#EQ#(leaf(),::(z0,z1)) -> c_47() 42:W:#EQ#(leaf(),leaf()) -> c_48() 43:W:#EQ#(leaf(),nil()) -> c_49() 44:W:#EQ#(leaf(),node(z0,z1,z2)) -> c_50() 45:W:#EQ#(nil(),::(z0,z1)) -> c_51() 46:W:#EQ#(nil(),leaf()) -> c_52() 47:W:#EQ#(nil(),nil()) -> c_53() 48:W:#EQ#(nil(),node(z0,z1,z2)) -> c_54() 49:W:#EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() 50:W:#EQ#(node(z0,z1,z2),leaf()) -> c_56() 51:W:#EQ#(node(z0,z1,z2),nil()) -> c_57() 52:W:#EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) -->_5 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_4 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_5 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_4 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_5 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_4 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_5 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_4 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_5 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_6 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_6 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_5 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_4 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_5 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_4 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_5 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_4 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_5 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_4 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_5 #eq#(nil(),nil()) -> c_87():82 -->_4 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_5 #eq#(nil(),leaf()) -> c_86():81 -->_4 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_5 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_4 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_5 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_4 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_5 #eq#(leaf(),nil()) -> c_83():78 -->_4 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_5 #eq#(leaf(),leaf()) -> c_82():77 -->_4 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_5 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_4 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_5 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_4 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_5 #eq#(::(z0,z1),nil()) -> c_79():74 -->_4 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_5 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_4 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_5 #eq#(#s(z0),#0()) -> c_75():70 -->_4 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_5 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_4 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_5 #eq#(#pos(z0),#0()) -> c_72():67 -->_4 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_5 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_4 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_5 #eq#(#neg(z0),#0()) -> c_69():64 -->_4 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_5 #eq#(#0(),#s(z0)) -> c_68():63 -->_4 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_5 #eq#(#0(),#pos(z0)) -> c_67():62 -->_4 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_5 #eq#(#0(),#neg(z0)) -> c_66():61 -->_4 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_5 #eq#(#0(),#0()) -> c_65():60 -->_4 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_3 #and#(#true(),#true()) -> c_64():59 -->_3 #and#(#true(),#false()) -> c_63():58 -->_3 #and#(#false(),#true()) -> c_62():57 -->_3 #and#(#false(),#false()) -> c_61():56 -->_6 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_6 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_6 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_6 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_6 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_6 #EQ#(nil(),nil()) -> c_53():47 -->_6 #EQ#(nil(),leaf()) -> c_52():46 -->_6 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_6 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_6 #EQ#(leaf(),nil()) -> c_49():43 -->_6 #EQ#(leaf(),leaf()) -> c_48():42 -->_6 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_6 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_6 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_6 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_6 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_6 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_6 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_6 #EQ#(#s(z0),#0()) -> c_40():34 -->_6 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_6 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_6 #EQ#(#pos(z0),#0()) -> c_37():31 -->_6 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_6 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_6 #EQ#(#neg(z0),#0()) -> c_34():28 -->_6 #EQ#(#0(),#s(z0)) -> c_33():27 -->_6 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_6 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_6 #EQ#(#0(),#0()) -> c_30():24 -->_1 #AND#(#true(),#true()) -> c_29():23 -->_1 #AND#(#true(),#false()) -> c_28():22 -->_1 #AND#(#false(),#true()) -> c_27():21 -->_1 #AND#(#false(),#false()) -> c_26():20 53:W:#EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) -->_8 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_7 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_5 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_4 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_8 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_7 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_5 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_4 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_8 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_7 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_5 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_4 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_8 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_7 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_5 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_4 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_8 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_7 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_5 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_8 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_7 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_5 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_4 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_8 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_7 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_5 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_4 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_8 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_7 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_5 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_4 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_8 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_7 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_5 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_4 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_8 #eq#(nil(),nil()) -> c_87():82 -->_7 #eq#(nil(),nil()) -> c_87():82 -->_5 #eq#(nil(),nil()) -> c_87():82 -->_4 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_8 #eq#(nil(),leaf()) -> c_86():81 -->_7 #eq#(nil(),leaf()) -> c_86():81 -->_5 #eq#(nil(),leaf()) -> c_86():81 -->_4 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_8 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_7 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_5 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_4 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_8 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_7 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_5 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_4 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_8 #eq#(leaf(),nil()) -> c_83():78 -->_7 #eq#(leaf(),nil()) -> c_83():78 -->_5 #eq#(leaf(),nil()) -> c_83():78 -->_4 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_8 #eq#(leaf(),leaf()) -> c_82():77 -->_7 #eq#(leaf(),leaf()) -> c_82():77 -->_5 #eq#(leaf(),leaf()) -> c_82():77 -->_4 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_8 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_7 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_5 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_4 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_8 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_7 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_5 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_4 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_8 #eq#(::(z0,z1),nil()) -> c_79():74 -->_7 #eq#(::(z0,z1),nil()) -> c_79():74 -->_5 #eq#(::(z0,z1),nil()) -> c_79():74 -->_4 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_8 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_7 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_5 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_4 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_8 #eq#(#s(z0),#0()) -> c_75():70 -->_7 #eq#(#s(z0),#0()) -> c_75():70 -->_5 #eq#(#s(z0),#0()) -> c_75():70 -->_4 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_8 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_7 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_5 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_4 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_8 #eq#(#pos(z0),#0()) -> c_72():67 -->_7 #eq#(#pos(z0),#0()) -> c_72():67 -->_5 #eq#(#pos(z0),#0()) -> c_72():67 -->_4 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_8 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_7 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_5 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_4 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_8 #eq#(#neg(z0),#0()) -> c_69():64 -->_7 #eq#(#neg(z0),#0()) -> c_69():64 -->_5 #eq#(#neg(z0),#0()) -> c_69():64 -->_4 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_8 #eq#(#0(),#s(z0)) -> c_68():63 -->_7 #eq#(#0(),#s(z0)) -> c_68():63 -->_5 #eq#(#0(),#s(z0)) -> c_68():63 -->_4 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_8 #eq#(#0(),#pos(z0)) -> c_67():62 -->_7 #eq#(#0(),#pos(z0)) -> c_67():62 -->_5 #eq#(#0(),#pos(z0)) -> c_67():62 -->_4 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_8 #eq#(#0(),#neg(z0)) -> c_66():61 -->_7 #eq#(#0(),#neg(z0)) -> c_66():61 -->_5 #eq#(#0(),#neg(z0)) -> c_66():61 -->_4 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_8 #eq#(#0(),#0()) -> c_65():60 -->_7 #eq#(#0(),#0()) -> c_65():60 -->_5 #eq#(#0(),#0()) -> c_65():60 -->_4 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_3 #and#(#true(),#true()) -> c_64():59 -->_3 #and#(#true(),#false()) -> c_63():58 -->_3 #and#(#false(),#true()) -> c_62():57 -->_3 #and#(#false(),#false()) -> c_61():56 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_9 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_9 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_9 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_9 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_9 #EQ#(nil(),nil()) -> c_53():47 -->_9 #EQ#(nil(),leaf()) -> c_52():46 -->_9 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_9 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_9 #EQ#(leaf(),nil()) -> c_49():43 -->_9 #EQ#(leaf(),leaf()) -> c_48():42 -->_9 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_9 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_9 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_9 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_9 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_9 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_9 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_9 #EQ#(#s(z0),#0()) -> c_40():34 -->_9 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_9 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_9 #EQ#(#pos(z0),#0()) -> c_37():31 -->_9 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_9 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_9 #EQ#(#neg(z0),#0()) -> c_34():28 -->_9 #EQ#(#0(),#s(z0)) -> c_33():27 -->_9 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_9 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_9 #EQ#(#0(),#0()) -> c_30():24 -->_6 #AND#(#true(),#true()) -> c_29():23 -->_1 #AND#(#true(),#true()) -> c_29():23 -->_6 #AND#(#true(),#false()) -> c_28():22 -->_1 #AND#(#true(),#false()) -> c_28():22 -->_6 #AND#(#false(),#true()) -> c_27():21 -->_1 #AND#(#false(),#true()) -> c_27():21 -->_6 #AND#(#false(),#false()) -> c_26():20 -->_1 #AND#(#false(),#false()) -> c_26():20 54:W:#EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) -->_8 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_7 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_5 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_4 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_8 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_7 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_5 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_4 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_8 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_7 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_5 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_4 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_8 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_7 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_5 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_4 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_8 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_7 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_5 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_8 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_7 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_5 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_4 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_8 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_7 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_5 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_4 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_8 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_7 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_5 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_4 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_8 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_7 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_5 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_4 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_8 #eq#(nil(),nil()) -> c_87():82 -->_7 #eq#(nil(),nil()) -> c_87():82 -->_5 #eq#(nil(),nil()) -> c_87():82 -->_4 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_8 #eq#(nil(),leaf()) -> c_86():81 -->_7 #eq#(nil(),leaf()) -> c_86():81 -->_5 #eq#(nil(),leaf()) -> c_86():81 -->_4 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_8 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_7 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_5 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_4 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_8 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_7 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_5 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_4 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_8 #eq#(leaf(),nil()) -> c_83():78 -->_7 #eq#(leaf(),nil()) -> c_83():78 -->_5 #eq#(leaf(),nil()) -> c_83():78 -->_4 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_8 #eq#(leaf(),leaf()) -> c_82():77 -->_7 #eq#(leaf(),leaf()) -> c_82():77 -->_5 #eq#(leaf(),leaf()) -> c_82():77 -->_4 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_8 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_7 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_5 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_4 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_8 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_7 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_5 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_4 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_8 #eq#(::(z0,z1),nil()) -> c_79():74 -->_7 #eq#(::(z0,z1),nil()) -> c_79():74 -->_5 #eq#(::(z0,z1),nil()) -> c_79():74 -->_4 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_8 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_7 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_5 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_4 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_8 #eq#(#s(z0),#0()) -> c_75():70 -->_7 #eq#(#s(z0),#0()) -> c_75():70 -->_5 #eq#(#s(z0),#0()) -> c_75():70 -->_4 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_8 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_7 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_5 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_4 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_8 #eq#(#pos(z0),#0()) -> c_72():67 -->_7 #eq#(#pos(z0),#0()) -> c_72():67 -->_5 #eq#(#pos(z0),#0()) -> c_72():67 -->_4 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_8 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_7 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_5 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_4 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_8 #eq#(#neg(z0),#0()) -> c_69():64 -->_7 #eq#(#neg(z0),#0()) -> c_69():64 -->_5 #eq#(#neg(z0),#0()) -> c_69():64 -->_4 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_8 #eq#(#0(),#s(z0)) -> c_68():63 -->_7 #eq#(#0(),#s(z0)) -> c_68():63 -->_5 #eq#(#0(),#s(z0)) -> c_68():63 -->_4 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_8 #eq#(#0(),#pos(z0)) -> c_67():62 -->_7 #eq#(#0(),#pos(z0)) -> c_67():62 -->_5 #eq#(#0(),#pos(z0)) -> c_67():62 -->_4 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_8 #eq#(#0(),#neg(z0)) -> c_66():61 -->_7 #eq#(#0(),#neg(z0)) -> c_66():61 -->_5 #eq#(#0(),#neg(z0)) -> c_66():61 -->_4 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_8 #eq#(#0(),#0()) -> c_65():60 -->_7 #eq#(#0(),#0()) -> c_65():60 -->_5 #eq#(#0(),#0()) -> c_65():60 -->_4 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_3 #and#(#true(),#true()) -> c_64():59 -->_3 #and#(#true(),#false()) -> c_63():58 -->_3 #and#(#false(),#true()) -> c_62():57 -->_3 #and#(#false(),#false()) -> c_61():56 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_9 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_9 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_9 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_9 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_9 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_9 #EQ#(nil(),nil()) -> c_53():47 -->_9 #EQ#(nil(),leaf()) -> c_52():46 -->_9 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_9 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_9 #EQ#(leaf(),nil()) -> c_49():43 -->_9 #EQ#(leaf(),leaf()) -> c_48():42 -->_9 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_9 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_9 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_9 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_9 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_9 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_9 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_9 #EQ#(#s(z0),#0()) -> c_40():34 -->_9 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_9 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_9 #EQ#(#pos(z0),#0()) -> c_37():31 -->_9 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_9 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_9 #EQ#(#neg(z0),#0()) -> c_34():28 -->_9 #EQ#(#0(),#s(z0)) -> c_33():27 -->_9 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_9 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_9 #EQ#(#0(),#0()) -> c_30():24 -->_6 #AND#(#true(),#true()) -> c_29():23 -->_1 #AND#(#true(),#true()) -> c_29():23 -->_6 #AND#(#true(),#false()) -> c_28():22 -->_1 #AND#(#true(),#false()) -> c_28():22 -->_6 #AND#(#false(),#true()) -> c_27():21 -->_1 #AND#(#false(),#true()) -> c_27():21 -->_6 #AND#(#false(),#false()) -> c_26():20 -->_1 #AND#(#false(),#false()) -> c_26():20 55:W:#EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)):54 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)):53 -->_1 #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)):52 -->_1 #EQ#(node(z0,z1,z2),nil()) -> c_57():51 -->_1 #EQ#(node(z0,z1,z2),leaf()) -> c_56():50 -->_1 #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55():49 -->_1 #EQ#(nil(),node(z0,z1,z2)) -> c_54():48 -->_1 #EQ#(nil(),nil()) -> c_53():47 -->_1 #EQ#(nil(),leaf()) -> c_52():46 -->_1 #EQ#(nil(),::(z0,z1)) -> c_51():45 -->_1 #EQ#(leaf(),node(z0,z1,z2)) -> c_50():44 -->_1 #EQ#(leaf(),nil()) -> c_49():43 -->_1 #EQ#(leaf(),leaf()) -> c_48():42 -->_1 #EQ#(leaf(),::(z0,z1)) -> c_47():41 -->_1 #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46():40 -->_1 #EQ#(::(z0,z1),nil()) -> c_45():39 -->_1 #EQ#(::(z0,z1),leaf()) -> c_44():38 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z1,z3)):37 -->_1 #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)) ,#eq#(z0,z2) ,#eq#(z1,z3) ,#EQ#(z0,z2)):36 -->_1 #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)):35 -->_1 #EQ#(#s(z0),#0()) -> c_40():34 -->_1 #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)):33 -->_1 #EQ#(#pos(z0),#neg(z1)) -> c_38():32 -->_1 #EQ#(#pos(z0),#0()) -> c_37():31 -->_1 #EQ#(#neg(z0),#pos(z1)) -> c_36():30 -->_1 #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)):29 -->_1 #EQ#(#neg(z0),#0()) -> c_34():28 -->_1 #EQ#(#0(),#s(z0)) -> c_33():27 -->_1 #EQ#(#0(),#pos(z0)) -> c_32():26 -->_1 #EQ#(#0(),#neg(z0)) -> c_31():25 -->_1 #EQ#(#0(),#0()) -> c_30():24 56:W:#and#(#false(),#false()) -> c_61() 57:W:#and#(#false(),#true()) -> c_62() 58:W:#and#(#true(),#false()) -> c_63() 59:W:#and#(#true(),#true()) -> c_64() 60:W:#eq#(#0(),#0()) -> c_65() 61:W:#eq#(#0(),#neg(z0)) -> c_66() 62:W:#eq#(#0(),#pos(z0)) -> c_67() 63:W:#eq#(#0(),#s(z0)) -> c_68() 64:W:#eq#(#neg(z0),#0()) -> c_69() 65:W:#eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) -->_1 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_1 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_1 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_1 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_1 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_1 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_1 #eq#(nil(),nil()) -> c_87():82 -->_1 #eq#(nil(),leaf()) -> c_86():81 -->_1 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_1 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_1 #eq#(leaf(),nil()) -> c_83():78 -->_1 #eq#(leaf(),leaf()) -> c_82():77 -->_1 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_1 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_1 #eq#(::(z0,z1),nil()) -> c_79():74 -->_1 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_1 #eq#(#s(z0),#0()) -> c_75():70 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_1 #eq#(#pos(z0),#0()) -> c_72():67 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_1 #eq#(#neg(z0),#0()) -> c_69():64 -->_1 #eq#(#0(),#s(z0)) -> c_68():63 -->_1 #eq#(#0(),#pos(z0)) -> c_67():62 -->_1 #eq#(#0(),#neg(z0)) -> c_66():61 -->_1 #eq#(#0(),#0()) -> c_65():60 66:W:#eq#(#neg(z0),#pos(z1)) -> c_71() 67:W:#eq#(#pos(z0),#0()) -> c_72() 68:W:#eq#(#pos(z0),#neg(z1)) -> c_73() 69:W:#eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) -->_1 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_1 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_1 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_1 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_1 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_1 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_1 #eq#(nil(),nil()) -> c_87():82 -->_1 #eq#(nil(),leaf()) -> c_86():81 -->_1 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_1 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_1 #eq#(leaf(),nil()) -> c_83():78 -->_1 #eq#(leaf(),leaf()) -> c_82():77 -->_1 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_1 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_1 #eq#(::(z0,z1),nil()) -> c_79():74 -->_1 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_1 #eq#(#s(z0),#0()) -> c_75():70 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_1 #eq#(#pos(z0),#0()) -> c_72():67 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_1 #eq#(#neg(z0),#0()) -> c_69():64 -->_1 #eq#(#0(),#s(z0)) -> c_68():63 -->_1 #eq#(#0(),#pos(z0)) -> c_67():62 -->_1 #eq#(#0(),#neg(z0)) -> c_66():61 -->_1 #eq#(#0(),#0()) -> c_65():60 70:W:#eq#(#s(z0),#0()) -> c_75() 71:W:#eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) -->_1 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_1 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_1 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_1 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_1 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_1 #eq#(nil(),nil()) -> c_87():82 -->_1 #eq#(nil(),leaf()) -> c_86():81 -->_1 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_1 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_1 #eq#(leaf(),nil()) -> c_83():78 -->_1 #eq#(leaf(),leaf()) -> c_82():77 -->_1 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_1 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_1 #eq#(::(z0,z1),nil()) -> c_79():74 -->_1 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_1 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_1 #eq#(#s(z0),#0()) -> c_75():70 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_1 #eq#(#pos(z0),#0()) -> c_72():67 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_1 #eq#(#neg(z0),#0()) -> c_69():64 -->_1 #eq#(#0(),#s(z0)) -> c_68():63 -->_1 #eq#(#0(),#pos(z0)) -> c_67():62 -->_1 #eq#(#0(),#neg(z0)) -> c_66():61 -->_1 #eq#(#0(),#0()) -> c_65():60 72:W:#eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) -->_3 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_3 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_3 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_3 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_3 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_3 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_3 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_3 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_3 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_3 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_3 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_3 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_3 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_3 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_3 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_3 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_3 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_3 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_3 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_3 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_3 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_3 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_3 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_3 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_3 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_3 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_3 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_3 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_1 #and#(#true(),#true()) -> c_64():59 -->_1 #and#(#true(),#false()) -> c_63():58 -->_1 #and#(#false(),#true()) -> c_62():57 -->_1 #and#(#false(),#false()) -> c_61():56 73:W:#eq#(::(z0,z1),leaf()) -> c_78() 74:W:#eq#(::(z0,z1),nil()) -> c_79() 75:W:#eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() 76:W:#eq#(leaf(),::(z0,z1)) -> c_81() 77:W:#eq#(leaf(),leaf()) -> c_82() 78:W:#eq#(leaf(),nil()) -> c_83() 79:W:#eq#(leaf(),node(z0,z1,z2)) -> c_84() 80:W:#eq#(nil(),::(z0,z1)) -> c_85() 81:W:#eq#(nil(),leaf()) -> c_86() 82:W:#eq#(nil(),nil()) -> c_87() 83:W:#eq#(nil(),node(z0,z1,z2)) -> c_88() 84:W:#eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() 85:W:#eq#(node(z0,z1,z2),leaf()) -> c_90() 86:W:#eq#(node(z0,z1,z2),nil()) -> c_91() 87:W:#eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) -->_5 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_4 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_2 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_5 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_4 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_2 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_5 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_4 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_2 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_5 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_4 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_2 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_5 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_4 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_2 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_5 #eq#(nil(),nil()) -> c_87():82 -->_4 #eq#(nil(),nil()) -> c_87():82 -->_2 #eq#(nil(),nil()) -> c_87():82 -->_5 #eq#(nil(),leaf()) -> c_86():81 -->_4 #eq#(nil(),leaf()) -> c_86():81 -->_2 #eq#(nil(),leaf()) -> c_86():81 -->_5 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_4 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_2 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_5 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_4 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_2 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_5 #eq#(leaf(),nil()) -> c_83():78 -->_4 #eq#(leaf(),nil()) -> c_83():78 -->_2 #eq#(leaf(),nil()) -> c_83():78 -->_5 #eq#(leaf(),leaf()) -> c_82():77 -->_4 #eq#(leaf(),leaf()) -> c_82():77 -->_2 #eq#(leaf(),leaf()) -> c_82():77 -->_5 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_4 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_2 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_5 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_4 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_2 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_5 #eq#(::(z0,z1),nil()) -> c_79():74 -->_4 #eq#(::(z0,z1),nil()) -> c_79():74 -->_2 #eq#(::(z0,z1),nil()) -> c_79():74 -->_5 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_4 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_2 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_5 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_4 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_2 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_5 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_4 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_2 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_5 #eq#(#s(z0),#0()) -> c_75():70 -->_4 #eq#(#s(z0),#0()) -> c_75():70 -->_2 #eq#(#s(z0),#0()) -> c_75():70 -->_5 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_4 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_2 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_5 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_4 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_2 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_5 #eq#(#pos(z0),#0()) -> c_72():67 -->_4 #eq#(#pos(z0),#0()) -> c_72():67 -->_2 #eq#(#pos(z0),#0()) -> c_72():67 -->_5 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_4 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_2 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_5 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_4 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_2 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_5 #eq#(#neg(z0),#0()) -> c_69():64 -->_4 #eq#(#neg(z0),#0()) -> c_69():64 -->_2 #eq#(#neg(z0),#0()) -> c_69():64 -->_5 #eq#(#0(),#s(z0)) -> c_68():63 -->_4 #eq#(#0(),#s(z0)) -> c_68():63 -->_2 #eq#(#0(),#s(z0)) -> c_68():63 -->_5 #eq#(#0(),#pos(z0)) -> c_67():62 -->_4 #eq#(#0(),#pos(z0)) -> c_67():62 -->_2 #eq#(#0(),#pos(z0)) -> c_67():62 -->_5 #eq#(#0(),#neg(z0)) -> c_66():61 -->_4 #eq#(#0(),#neg(z0)) -> c_66():61 -->_2 #eq#(#0(),#neg(z0)) -> c_66():61 -->_5 #eq#(#0(),#0()) -> c_65():60 -->_4 #eq#(#0(),#0()) -> c_65():60 -->_2 #eq#(#0(),#0()) -> c_65():60 -->_3 #and#(#true(),#true()) -> c_64():59 -->_1 #and#(#true(),#true()) -> c_64():59 -->_3 #and#(#true(),#false()) -> c_63():58 -->_1 #and#(#true(),#false()) -> c_63():58 -->_3 #and#(#false(),#true()) -> c_62():57 -->_1 #and#(#false(),#true()) -> c_62():57 -->_3 #and#(#false(),#false()) -> c_61():56 -->_1 #and#(#false(),#false()) -> c_61():56 88:W:#equal#(z0,z1) -> c_93(#eq#(z0,z1)) -->_1 #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)):87 -->_1 #eq#(node(z0,z1,z2),nil()) -> c_91():86 -->_1 #eq#(node(z0,z1,z2),leaf()) -> c_90():85 -->_1 #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89():84 -->_1 #eq#(nil(),node(z0,z1,z2)) -> c_88():83 -->_1 #eq#(nil(),nil()) -> c_87():82 -->_1 #eq#(nil(),leaf()) -> c_86():81 -->_1 #eq#(nil(),::(z0,z1)) -> c_85():80 -->_1 #eq#(leaf(),node(z0,z1,z2)) -> c_84():79 -->_1 #eq#(leaf(),nil()) -> c_83():78 -->_1 #eq#(leaf(),leaf()) -> c_82():77 -->_1 #eq#(leaf(),::(z0,z1)) -> c_81():76 -->_1 #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80():75 -->_1 #eq#(::(z0,z1),nil()) -> c_79():74 -->_1 #eq#(::(z0,z1),leaf()) -> c_78():73 -->_1 #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)):72 -->_1 #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)):71 -->_1 #eq#(#s(z0),#0()) -> c_75():70 -->_1 #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)):69 -->_1 #eq#(#pos(z0),#neg(z1)) -> c_73():68 -->_1 #eq#(#pos(z0),#0()) -> c_72():67 -->_1 #eq#(#neg(z0),#pos(z1)) -> c_71():66 -->_1 #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)):65 -->_1 #eq#(#neg(z0),#0()) -> c_69():64 -->_1 #eq#(#0(),#s(z0)) -> c_68():63 -->_1 #eq#(#0(),#pos(z0)) -> c_67():62 -->_1 #eq#(#0(),#neg(z0)) -> c_66():61 -->_1 #eq#(#0(),#0()) -> c_65():60 89:W:APPENDREVERSE#1#(nil(),z0) -> c_4() 90:W:BFS#2#(nil(),z0) -> c_9() 91:W:BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() 92:W:DFS#1#(nil(),z0) -> c_18() 93:W:DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() 94:W:appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) -->_1 appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))):95 -->_1 appendreverse#1#(nil(),z0) -> c_96():96 95:W:appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) -->_1 appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)):94 96:W:appendreverse#1#(nil(),z0) -> c_96() 97:W:bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) -->_1 bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)):99 -->_1 bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)):98 98:W:bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) -->_1 bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0)):103 -->_1 bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)):102 99:W:bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) -->_1 bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))):100 -->_1 bfs#2#(nil(),z0) -> c_101():101 100:W:bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) -->_2 reverse#(z0) -> c_117(appendreverse#(z0,nil())):117 -->_1 bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)):97 101:W:bfs#2#(nil(),z0) -> c_101() 102:W:bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) -->_1 bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)):97 103:W:bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) -->_1 bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)):104 -->_1 bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105():105 -->_2 #equal#(z0,z1) -> c_93(#eq#(z0,z1)):88 104:W:bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) -->_1 bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)):97 105:W:bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() 106:W:bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) -->_2 dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)):115 -->_1 bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)):107 107:W:bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) -->_1 dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)):115 108:W:dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) -->_1 dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)):109 -->_1 dfs#1#(nil(),z0) -> c_110():110 109:W:dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) -->_1 dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)):112 -->_1 dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)):111 110:W:dfs#1#(nil(),z0) -> c_110() 111:W:dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) -->_1 dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)):108 112:W:dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) -->_1 dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)):113 -->_1 dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114():114 -->_2 #equal#(z0,z1) -> c_93(#eq#(z0,z1)):88 113:W:dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) -->_1 dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)):108 114:W:dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() 115:W:dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) -->_1 bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)):97 116:W:dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) -->_1 dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)):108 117:W:reverse#(z0) -> c_117(appendreverse#(z0,nil())) -->_1 appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)):94 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 116: dodfs#(z0,z1) -> c_116(dfs#(::(z0,nil()),z1)) 108: dfs#(z0,z1) -> c_108(dfs#1#(z0,z1)) 113: dfs#3#(#false(),z0,z1,z2,z3,z4) -> c_113(dfs#(::(z1,::(z2,z3)),z4)) 112: dfs#2#(node(z0,z1,z2),z3,z4,z5) -> c_112(dfs#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5)) 109: dfs#1#(::(z0,z1),z2) -> c_109(dfs#2#(z0,z0,z1,z2)) 111: dfs#2#(leaf(),z0,z1,z2) -> c_111(dfs#(z1,z2)) 110: dfs#1#(nil(),z0) -> c_110() 114: dfs#3#(#true(),z0,z1,z2,z3,z4) -> c_114() 106: bfs2#(z0,z1) -> c_106(bfs2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1)) 107: bfs2#1#(z0,z1) -> c_107(dobfs#(z0,z1)) 92: DFS#1#(nil(),z0) -> c_18() 93: DFS#3#(#true(),z0,z1,z2,z3,z4) -> c_22() 115: dobfs#(z0,z1) -> c_115(bfs#(::(z0,nil()),nil(),z1)) 97: bfs#(z0,z1,z2) -> c_97(bfs#1#(z0,z1,z2)) 104: bfs#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_104(bfs#(z3,::(z2,::(z1,z0)),z4)) 103: bfs#3#(node(z0,z1,z2),z3,z4,z5) -> c_103(bfs#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#equal#(z5,z0)) 98: bfs#1#(::(z0,z1),z2,z3) -> c_98(bfs#3#(z0,z2,z1,z3)) 102: bfs#3#(leaf(),z0,z1,z2) -> c_102(bfs#(z1,z0,z2)) 100: bfs#2#(::(z0,z1),z2) -> c_100(bfs#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1))) 99: bfs#1#(nil(),z0,z1) -> c_99(bfs#2#(z0,z1)) 105: bfs#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_105() 101: bfs#2#(nil(),z0) -> c_101() 91: BFS#4#(#true(),z0,z1,z2,z3,z4,z5) -> c_13() 55: #EQUAL#(z0,z1) -> c_1(#EQ#(z0,z1)) 54: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_60(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z2,z5)) 53: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_59(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#AND#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z1,z4)) 52: #EQ#(node(z0,z1,z2),node(z3,z4,z5)) -> c_58(#AND#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5) ,#EQ#(z0,z3)) 37: #EQ#(::(z0,z1),::(z2,z3)) -> c_43(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z1,z3)) 36: #EQ#(::(z0,z1),::(z2,z3)) -> c_42(#AND#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3),#EQ#(z0,z2)) 35: #EQ#(#s(z0),#s(z1)) -> c_41(#EQ#(z0,z1)) 33: #EQ#(#pos(z0),#pos(z1)) -> c_39(#EQ#(z0,z1)) 29: #EQ#(#neg(z0),#neg(z1)) -> c_35(#EQ#(z0,z1)) 20: #AND#(#false(),#false()) -> c_26() 21: #AND#(#false(),#true()) -> c_27() 22: #AND#(#true(),#false()) -> c_28() 23: #AND#(#true(),#true()) -> c_29() 24: #EQ#(#0(),#0()) -> c_30() 25: #EQ#(#0(),#neg(z0)) -> c_31() 26: #EQ#(#0(),#pos(z0)) -> c_32() 27: #EQ#(#0(),#s(z0)) -> c_33() 28: #EQ#(#neg(z0),#0()) -> c_34() 30: #EQ#(#neg(z0),#pos(z1)) -> c_36() 31: #EQ#(#pos(z0),#0()) -> c_37() 32: #EQ#(#pos(z0),#neg(z1)) -> c_38() 34: #EQ#(#s(z0),#0()) -> c_40() 38: #EQ#(::(z0,z1),leaf()) -> c_44() 39: #EQ#(::(z0,z1),nil()) -> c_45() 40: #EQ#(::(z0,z1),node(z2,z3,z4)) -> c_46() 41: #EQ#(leaf(),::(z0,z1)) -> c_47() 42: #EQ#(leaf(),leaf()) -> c_48() 43: #EQ#(leaf(),nil()) -> c_49() 44: #EQ#(leaf(),node(z0,z1,z2)) -> c_50() 45: #EQ#(nil(),::(z0,z1)) -> c_51() 46: #EQ#(nil(),leaf()) -> c_52() 47: #EQ#(nil(),nil()) -> c_53() 48: #EQ#(nil(),node(z0,z1,z2)) -> c_54() 49: #EQ#(node(z0,z1,z2),::(z3,z4)) -> c_55() 50: #EQ#(node(z0,z1,z2),leaf()) -> c_56() 51: #EQ#(node(z0,z1,z2),nil()) -> c_57() 88: #equal#(z0,z1) -> c_93(#eq#(z0,z1)) 87: #eq#(node(z0,z1,z2),node(z3,z4,z5)) -> c_92(#and#(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#eq#(z0,z3) ,#and#(#eq(z1,z4),#eq(z2,z5)) ,#eq#(z1,z4) ,#eq#(z2,z5)) 72: #eq#(::(z0,z1),::(z2,z3)) -> c_77(#and#(#eq(z0,z2),#eq(z1,z3)),#eq#(z0,z2),#eq#(z1,z3)) 71: #eq#(#s(z0),#s(z1)) -> c_76(#eq#(z0,z1)) 69: #eq#(#pos(z0),#pos(z1)) -> c_74(#eq#(z0,z1)) 65: #eq#(#neg(z0),#neg(z1)) -> c_70(#eq#(z0,z1)) 56: #and#(#false(),#false()) -> c_61() 57: #and#(#false(),#true()) -> c_62() 58: #and#(#true(),#false()) -> c_63() 59: #and#(#true(),#true()) -> c_64() 60: #eq#(#0(),#0()) -> c_65() 61: #eq#(#0(),#neg(z0)) -> c_66() 62: #eq#(#0(),#pos(z0)) -> c_67() 63: #eq#(#0(),#s(z0)) -> c_68() 64: #eq#(#neg(z0),#0()) -> c_69() 66: #eq#(#neg(z0),#pos(z1)) -> c_71() 67: #eq#(#pos(z0),#0()) -> c_72() 68: #eq#(#pos(z0),#neg(z1)) -> c_73() 70: #eq#(#s(z0),#0()) -> c_75() 73: #eq#(::(z0,z1),leaf()) -> c_78() 74: #eq#(::(z0,z1),nil()) -> c_79() 75: #eq#(::(z0,z1),node(z2,z3,z4)) -> c_80() 76: #eq#(leaf(),::(z0,z1)) -> c_81() 77: #eq#(leaf(),leaf()) -> c_82() 78: #eq#(leaf(),nil()) -> c_83() 79: #eq#(leaf(),node(z0,z1,z2)) -> c_84() 80: #eq#(nil(),::(z0,z1)) -> c_85() 81: #eq#(nil(),leaf()) -> c_86() 82: #eq#(nil(),nil()) -> c_87() 83: #eq#(nil(),node(z0,z1,z2)) -> c_88() 84: #eq#(node(z0,z1,z2),::(z3,z4)) -> c_89() 85: #eq#(node(z0,z1,z2),leaf()) -> c_90() 86: #eq#(node(z0,z1,z2),nil()) -> c_91() 90: BFS#2#(nil(),z0) -> c_9() 117: reverse#(z0) -> c_117(appendreverse#(z0,nil())) 94: appendreverse#(z0,z1) -> c_94(appendreverse#1#(z0,z1)) 95: appendreverse#1#(::(z0,z1),z2) -> c_95(appendreverse#(z1,::(z0,z2))) 96: appendreverse#1#(nil(),z0) -> c_96() 89: APPENDREVERSE#1#(nil(),z0) -> c_4() * Step 5: SimplifyRHS. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5),#equal#(z0,z5),#EQUAL#(z0,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #EQUAL(z0,z1) -> c35(#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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/3,c_9/0,c_10/1,c_11/3,c_12/1,c_13/0,c_14/3,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/3 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) -->_1 APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))):2 2:S:APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 3:S:BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) -->_1 BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)):5 -->_1 BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)):4 4:S:BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)):8 -->_1 BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)):7 5:S:BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) -->_1 BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2) ,reverse#(::(z0,z1)) ,REVERSE#(::(z0,z1))):6 6:S:BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),reverse#(::(z0,z1)),REVERSE#(::(z0,z1))) -->_3 REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())):19 -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 7:S:BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 8:S:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) ,#equal#(z5,z0) ,#EQUAL#(z5,z0)) -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)):9 9:S:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 10:S:BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),dobfs#(z0,z1),DOBFS#(z0,z1)) -->_3 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 -->_1 BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)):11 11:S:BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) -->_1 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 12:S:DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) -->_1 DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)):13 13:S:DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) -->_1 DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) ,#equal#(z0,z5) ,#EQUAL#(z0,z5)):15 -->_1 DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)):14 14:S:DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 15:S:DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) ,#equal#(z0,z5) ,#EQUAL#(z0,z5)) -->_1 DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)):16 16:S:DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 17:S:DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 18:S:DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 19:S:REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) * Step 6: UsableRules. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> c18() #EQ(::(z0,z1),nil()) -> c19() #EQ(::(z0,z1),node(z2,z3,z4)) -> c20() #EQ(leaf(),::(z0,z1)) -> c21() #EQ(leaf(),leaf()) -> c22() #EQ(leaf(),nil()) -> c23() #EQ(leaf(),node(z0,z1,z2)) -> c24() #EQ(nil(),::(z0,z1)) -> c25() #EQ(nil(),leaf()) -> c26() #EQ(nil(),nil()) -> c27() #EQ(nil(),node(z0,z1,z2)) -> c28() #EQ(node(z0,z1,z2),::(z3,z4)) -> c29() #EQ(node(z0,z1,z2),leaf()) -> c30() #EQ(node(z0,z1,z2),nil()) -> c31() #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c32(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))),#EQ(z0,z3)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c33(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z1,z4)) #EQ(node(z0,z1,z2),node(z3,z4,z5)) -> c34(#AND(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) ,#AND(#eq(z1,z4),#eq(z2,z5)) ,#EQ(z2,z5)) #EQUAL(z0,z1) -> c35(#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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) APPENDREVERSE(z0,z1) -> c36(APPENDREVERSE#1(z0,z1)) APPENDREVERSE#1(::(z0,z1),z2) -> c37(APPENDREVERSE(z1,::(z0,z2))) APPENDREVERSE#1(nil(),z0) -> c38() BFS(z0,z1,z2) -> c39(BFS#1(z0,z1,z2)) BFS#1(::(z0,z1),z2,z3) -> c40(BFS#3(z0,z2,z1,z3)) BFS#1(nil(),z0,z1) -> c41(BFS#2(z0,z1)) BFS#2(::(z0,z1),z2) -> c42(BFS(reverse(::(z0,z1)),nil(),z2),REVERSE(::(z0,z1))) BFS#2(nil(),z0) -> c43() BFS#3(leaf(),z0,z1,z2) -> c44(BFS(z1,z0,z2)) BFS#3(node(z0,z1,z2),z3,z4,z5) -> c45(BFS#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0),#EQUAL(z5,z0)) BFS#4(#false(),z0,z1,z2,z3,z4,z5) -> c46(BFS(z3,::(z2,::(z1,z0)),z4)) BFS#4(#true(),z0,z1,z2,z3,z4,z5) -> c47() BFS2(z0,z1) -> c48(BFS2#1(dobfs(z0,z1),z1),DOBFS(z0,z1)) BFS2#1(z0,z1) -> c49(DOBFS(z0,z1)) DFS(z0,z1) -> c50(DFS#1(z0,z1)) DFS#1(::(z0,z1),z2) -> c51(DFS#2(z0,z0,z1,z2)) DFS#1(nil(),z0) -> c52() DFS#2(leaf(),z0,z1,z2) -> c53(DFS(z1,z2)) DFS#2(node(z0,z1,z2),z3,z4,z5) -> c54(DFS#3(#equal(z0,z5),z3,z1,z2,z4,z5),#EQUAL(z0,z5)) DFS#3(#false(),z0,z1,z2,z3,z4) -> c55(DFS(::(z1,::(z2,z3)),z4)) DFS#3(#true(),z0,z1,z2,z3,z4) -> c56() DOBFS(z0,z1) -> c57(BFS(::(z0,nil()),nil(),z1)) DODFS(z0,z1) -> c58(DFS(::(z0,nil()),z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0,nil())) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) bfs2(z0,z1) -> bfs2#1(dobfs(z0,z1),z1) bfs2#1(z0,z1) -> dobfs(z0,z1) dfs(z0,z1) -> dfs#1(z0,z1) dfs#1(::(z0,z1),z2) -> dfs#2(z0,z0,z1,z2) dfs#1(nil(),z0) -> leaf() dfs#2(leaf(),z0,z1,z2) -> dfs(z1,z2) dfs#2(node(z0,z1,z2),z3,z4,z5) -> dfs#3(#equal(z0,z5),z3,z1,z2,z4,z5) dfs#3(#false(),z0,z1,z2,z3,z4) -> dfs(::(z1,::(z2,z3)),z4) dfs#3(#true(),z0,z1,z2,z3,z4) -> z0 dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) dodfs(z0,z1) -> dfs(::(z0,nil()),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) * Step 7: RemoveHeads. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) -->_1 APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))):2 2:S:APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 3:S:BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) -->_1 BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)):5 -->_1 BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)):4 4:S:BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)):8 -->_1 BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)):7 5:S:BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) -->_1 BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))):6 6:S:BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) -->_2 REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())):19 -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 7:S:BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 8:S:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)):9 9:S:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 10:S:BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) -->_2 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 -->_1 BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)):11 11:S:BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) -->_1 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):17 12:S:DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) -->_1 DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)):13 13:S:DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) -->_1 DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)):15 -->_1 DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)):14 14:S:DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 15:S:DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) -->_1 DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)):16 16:S:DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 17:S:DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):3 18:S:DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):12 19:S:REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). [(18,DODFS#(z0,z1) -> c_24(DFS#(::(z0,nil()),z1)))] * Step 8: DecomposeDG. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) and a lower component APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) Further, following extension rules are added to the lower component. BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#(z0,z1) -> DOBFS#(z0,z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DFS#(z0,z1) -> DFS#1#(z0,z1) DFS#1#(::(z0,z1),z2) -> DFS#2#(z0,z0,z1,z2) DFS#2#(leaf(),z0,z1,z2) -> DFS#(z1,z2) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) DFS#3#(#false(),z0,z1,z2,z3,z4) -> DFS#(::(z1,::(z2,z3)),z4) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) ** Step 8.a:1: SimplifyRHS. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) -->_1 BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)):3 -->_1 BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)):2 2:S:BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)):6 -->_1 BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)):5 3:S:BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) -->_1 BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))):4 4:S:BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2),REVERSE#(::(z0,z1))) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):1 5:S:BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):1 6:S:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)):7 7:S:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):1 8:S:BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) -->_2 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):15 -->_1 BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)):9 9:S:BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) -->_1 DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)):15 10:S:DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) -->_1 DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)):11 11:S:DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) -->_1 DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)):13 -->_1 DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)):12 12:S:DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):10 13:S:DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) -->_1 DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)):14 14:S:DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) -->_1 DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)):10 15:S:DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) -->_1 BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) ** Step 8.a:2: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [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) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [1] x2 + [0] p(REVERSE) = [0] p(appendreverse) = [4] x2 + [0] p(appendreverse#1) = [4] x2 + [0] p(bfs) = [1] x1 + [0] p(bfs#1) = [1] x1 + [0] p(bfs#2) = [0] p(bfs#3) = [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x5 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [0] p(dfs#3) = [0] p(dobfs) = [3] p(dodfs) = [1] p(leaf) = [0] p(nil) = [0] p(node) = [0] p(reverse) = [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(APPENDREVERSE#) = [0] p(APPENDREVERSE#1#) = [1] x1 + [1] x2 + [0] p(BFS#) = [1] x1 + [0] p(BFS#1#) = [1] x1 + [0] p(BFS#2#) = [4] p(BFS#3#) = [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x5 + [0] p(BFS2#) = [0] p(BFS2#1#) = [1] x1 + [0] p(DFS#) = [2] x1 + [0] p(DFS#1#) = [2] x1 + [0] p(DFS#2#) = [2] x3 + [0] p(DFS#3#) = [1] x1 + [2] x5 + [0] p(DOBFS#) = [0] p(DODFS#) = [0] p(REVERSE#) = [0] p(appendreverse#) = [0] p(appendreverse#1#) = [0] p(bfs#) = [0] p(bfs#1#) = [0] p(bfs#2#) = [0] p(bfs#3#) = [0] p(bfs#4#) = [2] x5 + [0] p(bfs2#) = [0] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [0] p(dfs#2#) = [0] p(dfs#3#) = [0] p(dobfs#) = [0] p(dodfs#) = [0] p(reverse#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [0] p(c_23) = [1] x1 + [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) = [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) = [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [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) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [0] p(c_74) = [0] p(c_75) = [0] p(c_76) = [0] p(c_77) = [0] p(c_78) = [0] p(c_79) = [0] p(c_80) = [0] p(c_81) = [0] p(c_82) = [0] p(c_83) = [0] p(c_84) = [0] p(c_85) = [0] p(c_86) = [0] p(c_87) = [0] p(c_88) = [0] p(c_89) = [0] p(c_90) = [0] p(c_91) = [0] p(c_92) = [0] p(c_93) = [0] p(c_94) = [0] p(c_95) = [0] p(c_96) = [0] p(c_97) = [0] p(c_98) = [0] p(c_99) = [0] p(c_100) = [0] p(c_101) = [0] p(c_102) = [0] p(c_103) = [0] p(c_104) = [0] p(c_105) = [0] p(c_106) = [0] p(c_107) = [0] p(c_108) = [0] p(c_109) = [0] p(c_110) = [0] p(c_111) = [0] p(c_112) = [0] p(c_113) = [0] p(c_114) = [0] p(c_115) = [0] p(c_116) = [1] p(c_117) = [1] Following rules are strictly oriented: BFS#2#(::(z0,z1),z2) = [4] > [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [0] >= [4] = c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [0] >= [3] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [0] >= [0] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [2] z0 + [0] >= [2] z0 + [0] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [2] z1 + [0] >= [2] z1 + [0] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [2] z1 + [0] >= [2] z1 + [0] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [2] z4 + [0] >= [2] z4 + [0] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [2] z3 + [0] >= [2] z3 + [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [0] >= [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [4] z1 + [0] >= [4] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [4] z2 + [0] >= [4] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [4] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [0] >= [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [0] >= [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [0] = node(z5,z1,z2) dobfs(z0,z1) = [3] >= [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [0] >= [0] = appendreverse(z0,nil()) 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^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) - Weak DPs: BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE#,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4# ,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS#,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1# ,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2#,dfs#3#,dobfs#,dodfs#,reverse#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [4] x1 + [6] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [0] p(#pos) = [0] p(#s) = [1] x1 + [0] p(#true) = [1] p(::) = [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [0] p(appendreverse#1) = [0] p(bfs) = [2] x1 + [0] p(bfs#1) = [1] x1 + [0] p(bfs#2) = [0] p(bfs#3) = [0] p(bfs#4) = [1] x7 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c16) = [1] x2 + [0] p(c17) = [1] x1 + [1] x2 + [0] p(c18) = [0] p(c19) = [0] p(c2) = [0] p(c20) = [0] p(c21) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [0] p(c35) = [1] x1 + [0] p(c36) = [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [1] p(c57) = [0] p(c58) = [1] x1 + [0] p(c59) = [0] p(c6) = [4] p(c7) = [0] p(c8) = [1] p(c9) = [0] p(dfs) = [2] x1 + [1] x2 + [1] p(dfs#1) = [1] x1 + [1] p(dfs#2) = [1] x1 + [0] p(dfs#3) = [1] x1 + [1] x2 + [1] x5 + [1] x6 + [0] p(dobfs) = [4] x2 + [0] p(dodfs) = [2] x2 + [1] p(leaf) = [0] p(nil) = [0] p(node) = [1] x2 + [0] p(reverse) = [1] x1 + [1] p(#AND#) = [2] p(#EQ#) = [1] x2 + [2] p(#EQUAL#) = [0] p(#and#) = [4] p(#eq#) = [0] p(#equal#) = [1] x1 + [4] x2 + [0] p(APPENDREVERSE#) = [2] x2 + [1] p(APPENDREVERSE#1#) = [4] p(BFS#) = [0] p(BFS#1#) = [0] p(BFS#2#) = [0] p(BFS#3#) = [0] p(BFS#4#) = [0] p(BFS2#) = [1] x1 + [4] x2 + [2] p(BFS2#1#) = [4] x2 + [0] p(DFS#) = [0] p(DFS#1#) = [0] p(DFS#2#) = [0] p(DFS#3#) = [0] p(DOBFS#) = [0] p(DODFS#) = [4] x2 + [1] p(REVERSE#) = [1] x1 + [0] p(appendreverse#) = [1] x2 + [4] p(appendreverse#1#) = [1] x2 + [0] p(bfs#) = [1] x2 + [1] x3 + [1] p(bfs#1#) = [4] x2 + [0] p(bfs#2#) = [1] x1 + [2] p(bfs#3#) = [1] x1 + [1] x2 + [1] x4 + [2] p(bfs#4#) = [1] x1 + [1] x2 + [1] x6 + [1] p(bfs2#) = [1] x2 + [1] p(bfs2#1#) = [2] x2 + [0] p(dfs#) = [2] p(dfs#1#) = [2] x1 + [4] p(dfs#2#) = [1] x3 + [2] p(dfs#3#) = [1] x1 + [1] x6 + [0] p(dobfs#) = [1] x1 + [1] x2 + [4] p(dodfs#) = [1] x1 + [1] x2 + [0] p(reverse#) = [1] x1 + [1] p(c_1) = [1] p(c_2) = [1] x1 + [0] p(c_3) = [2] p(c_4) = [0] p(c_5) = [4] x1 + [0] p(c_6) = [4] x1 + [0] p(c_7) = [2] x1 + [0] p(c_8) = [4] x1 + [0] p(c_9) = [0] p(c_10) = [2] x1 + [0] p(c_11) = [2] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [4] x1 + [0] p(c_16) = [4] x1 + [0] p(c_17) = [4] x1 + [0] p(c_18) = [2] p(c_19) = [4] x1 + [0] p(c_20) = [4] x1 + [0] p(c_21) = [4] x1 + [0] p(c_22) = [0] p(c_23) = [2] x1 + [0] p(c_24) = [1] x1 + [0] p(c_25) = [2] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [1] p(c_31) = [1] p(c_32) = [1] p(c_33) = [2] p(c_34) = [4] p(c_35) = [1] x1 + [1] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [4] p(c_40) = [0] p(c_41) = [4] x1 + [1] p(c_42) = [1] x1 + [4] x2 + [1] x3 + [0] p(c_43) = [1] x2 + [1] x4 + [1] p(c_44) = [1] p(c_45) = [4] p(c_46) = [1] p(c_47) = [4] p(c_48) = [0] p(c_49) = [0] p(c_50) = [2] p(c_51) = [1] p(c_52) = [0] p(c_53) = [2] p(c_54) = [2] p(c_55) = [2] p(c_56) = [0] p(c_57) = [0] p(c_58) = [1] x1 + [2] x2 + [4] x4 + [1] x5 + [4] x6 + [4] p(c_59) = [4] x4 + [2] x6 + [4] p(c_60) = [4] x2 + [1] x3 + [4] x4 + [1] x6 + [2] x8 + [1] x9 + [2] p(c_61) = [2] p(c_62) = [0] p(c_63) = [1] p(c_64) = [1] p(c_65) = [0] p(c_66) = [0] p(c_67) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [1] x1 + [4] p(c_71) = [0] p(c_72) = [1] p(c_73) = [1] p(c_74) = [4] x1 + [0] p(c_75) = [2] p(c_76) = [1] x1 + [0] p(c_77) = [1] x3 + [4] p(c_78) = [1] p(c_79) = [0] p(c_80) = [0] p(c_81) = [1] p(c_82) = [1] p(c_83) = [1] p(c_84) = [2] p(c_85) = [1] p(c_86) = [0] p(c_87) = [0] p(c_88) = [4] p(c_89) = [1] p(c_90) = [4] p(c_91) = [1] p(c_92) = [1] x1 + [1] x5 + [1] p(c_93) = [4] x1 + [0] p(c_94) = [1] p(c_95) = [0] p(c_96) = [4] p(c_97) = [4] x1 + [1] p(c_98) = [0] p(c_99) = [1] x1 + [1] p(c_100) = [1] x1 + [2] p(c_101) = [1] p(c_102) = [1] p(c_103) = [1] p(c_104) = [4] x1 + [4] p(c_105) = [4] p(c_106) = [1] x1 + [1] x2 + [1] p(c_107) = [2] p(c_108) = [0] p(c_109) = [4] p(c_110) = [0] p(c_111) = [1] x1 + [1] p(c_112) = [2] p(c_113) = [1] p(c_114) = [1] p(c_115) = [2] x1 + [1] p(c_116) = [1] p(c_117) = [0] Following rules are strictly oriented: BFS2#(z0,z1) = [1] z0 + [4] z1 + [2] > [4] z1 + [0] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [0] >= [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [0] >= [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [0] >= [0] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [0] >= [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [0] >= [0] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [0] >= [0] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [0] >= [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#1#(z0,z1) = [4] z1 + [0] >= [0] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [0] >= [0] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [0] >= [0] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [0] >= [0] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [0] >= [0] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [0] >= [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [0] >= [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) ** Step 8.a:4: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),z1)) - Weak DPs: BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [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) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [4] x2 + [0] p(appendreverse#1) = [4] x2 + [0] p(bfs) = [1] x1 + [0] p(bfs#1) = [1] x1 + [0] p(bfs#2) = [0] p(bfs#3) = [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x5 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [0] p(dfs#3) = [0] p(dobfs) = [0] p(dodfs) = [0] p(leaf) = [0] p(nil) = [0] p(node) = [0] p(reverse) = [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(APPENDREVERSE#) = [0] p(APPENDREVERSE#1#) = [4] x1 + [0] p(BFS#) = [1] x1 + [0] p(BFS#1#) = [1] x1 + [2] p(BFS#2#) = [7] p(BFS#3#) = [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x5 + [7] p(BFS2#) = [1] x1 + [4] x2 + [3] p(BFS2#1#) = [1] x1 + [4] x2 + [0] p(DFS#) = [0] p(DFS#1#) = [1] p(DFS#2#) = [3] p(DFS#3#) = [1] x1 + [0] p(DOBFS#) = [2] p(DODFS#) = [0] p(REVERSE#) = [0] p(appendreverse#) = [0] p(appendreverse#1#) = [0] p(bfs#) = [0] p(bfs#1#) = [0] p(bfs#2#) = [0] p(bfs#3#) = [0] p(bfs#4#) = [0] p(bfs2#) = [0] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [0] p(dfs#2#) = [0] p(dfs#3#) = [0] p(dobfs#) = [0] p(dodfs#) = [0] p(reverse#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [0] p(c_23) = [1] x1 + [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) = [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) = [0] p(c_58) = [0] p(c_59) = [0] p(c_60) = [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) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [0] p(c_74) = [0] p(c_75) = [0] p(c_76) = [0] p(c_77) = [0] p(c_78) = [0] p(c_79) = [0] p(c_80) = [0] p(c_81) = [0] p(c_82) = [0] p(c_83) = [0] p(c_84) = [0] p(c_85) = [0] p(c_86) = [0] p(c_87) = [0] p(c_88) = [0] p(c_89) = [0] p(c_90) = [0] p(c_91) = [0] p(c_92) = [0] p(c_93) = [0] p(c_94) = [0] p(c_95) = [0] p(c_96) = [0] p(c_97) = [0] p(c_98) = [0] p(c_99) = [0] p(c_100) = [0] p(c_101) = [0] p(c_102) = [0] p(c_103) = [0] p(c_104) = [0] p(c_105) = [0] p(c_106) = [0] p(c_107) = [2] p(c_108) = [1] x1 + [0] p(c_109) = [0] p(c_110) = [2] p(c_111) = [2] p(c_112) = [1] x2 + [2] p(c_113) = [0] p(c_114) = [0] p(c_115) = [1] p(c_116) = [1] x1 + [1] p(c_117) = [4] x1 + [0] Following rules are strictly oriented: BFS#1#(::(z0,z1),z2,z3) = [1] z1 + [2] > [1] z1 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [7] > [1] z3 + [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) DFS#2#(leaf(),z0,z1,z2) = [3] > [0] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [3] > [0] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DOBFS#(z0,z1) = [2] > [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [2] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(nil(),z0,z1) = [2] >= [7] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [7] >= [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [7] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS2#(z0,z1) = [1] z0 + [4] z1 + [3] >= [4] z1 + [2] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [4] z1 + [0] >= [2] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [0] >= [1] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [1] >= [3] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [0] >= [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [4] z1 + [0] >= [4] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [4] z2 + [0] >= [4] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [4] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [0] >= [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [0] >= [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [0] = node(z5,z1,z2) dobfs(z0,z1) = [0] >= [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [0] >= [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:5: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) - Weak DPs: BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [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) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [1] x2 + [0] p(appendreverse#1) = [1] x2 + [0] p(bfs) = [1] x1 + [0] p(bfs#1) = [1] x1 + [0] p(bfs#2) = [0] p(bfs#3) = [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x5 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [0] p(dfs#3) = [0] p(dobfs) = [3] x2 + [0] p(dodfs) = [0] p(leaf) = [0] p(nil) = [0] p(node) = [0] p(reverse) = [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(APPENDREVERSE#) = [0] p(APPENDREVERSE#1#) = [4] x2 + [1] p(BFS#) = [1] x1 + [0] p(BFS#1#) = [1] x1 + [0] p(BFS#2#) = [0] p(BFS#3#) = [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x5 + [0] p(BFS2#) = [1] x1 + [7] x2 + [0] p(BFS2#1#) = [1] x1 + [2] x2 + [0] p(DFS#) = [0] p(DFS#1#) = [0] p(DFS#2#) = [6] p(DFS#3#) = [1] x1 + [6] p(DOBFS#) = [2] x2 + [0] p(DODFS#) = [0] p(REVERSE#) = [0] p(appendreverse#) = [0] p(appendreverse#1#) = [0] p(bfs#) = [0] p(bfs#1#) = [0] p(bfs#2#) = [0] p(bfs#3#) = [0] p(bfs#4#) = [0] p(bfs2#) = [2] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [0] p(dfs#2#) = [0] p(dfs#3#) = [0] p(dobfs#) = [0] p(dodfs#) = [0] p(reverse#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [1] x1 + [7] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [2] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [2] p(c_23) = [1] x1 + [0] p(c_24) = [4] x1 + [4] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [2] p(c_30) = [0] p(c_31) = [0] p(c_32) = [4] p(c_33) = [0] p(c_34) = [0] p(c_35) = [1] x1 + [0] p(c_36) = [1] p(c_37) = [0] p(c_38) = [4] p(c_39) = [2] p(c_40) = [1] p(c_41) = [2] x1 + [0] p(c_42) = [1] x1 + [4] x2 + [1] x4 + [2] p(c_43) = [1] x2 + [1] p(c_44) = [2] p(c_45) = [0] p(c_46) = [0] p(c_47) = [1] p(c_48) = [0] p(c_49) = [0] p(c_50) = [1] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] p(c_54) = [0] p(c_55) = [0] p(c_56) = [1] p(c_57) = [4] p(c_58) = [4] x2 + [2] x3 + [1] x5 + [0] p(c_59) = [2] x1 + [2] x2 + [4] x3 + [1] x4 + [4] x6 + [2] x7 + [1] x9 + [4] p(c_60) = [1] x2 + [1] x3 + [1] x4 + [2] x6 + [1] x9 + [0] p(c_61) = [1] p(c_62) = [0] p(c_63) = [0] p(c_64) = [1] p(c_65) = [1] p(c_66) = [4] p(c_67) = [0] p(c_68) = [4] p(c_69) = [2] p(c_70) = [4] x1 + [0] p(c_71) = [0] p(c_72) = [1] p(c_73) = [1] p(c_74) = [1] x1 + [1] p(c_75) = [4] p(c_76) = [0] p(c_77) = [1] x1 + [2] x2 + [2] x3 + [2] p(c_78) = [0] p(c_79) = [0] p(c_80) = [0] p(c_81) = [4] p(c_82) = [2] p(c_83) = [1] p(c_84) = [1] p(c_85) = [0] p(c_86) = [1] p(c_87) = [0] p(c_88) = [0] p(c_89) = [1] p(c_90) = [0] p(c_91) = [2] p(c_92) = [2] x4 + [2] x5 + [1] p(c_93) = [0] p(c_94) = [2] x1 + [1] p(c_95) = [2] x1 + [0] p(c_96) = [4] p(c_97) = [1] x1 + [4] p(c_98) = [1] x1 + [2] p(c_99) = [1] x1 + [0] p(c_100) = [2] x1 + [2] p(c_101) = [1] p(c_102) = [1] x1 + [1] p(c_103) = [2] x2 + [1] p(c_104) = [0] p(c_105) = [1] p(c_106) = [0] p(c_107) = [1] x1 + [0] p(c_108) = [1] p(c_109) = [1] x1 + [0] p(c_110) = [1] p(c_111) = [1] p(c_112) = [1] x2 + [1] p(c_113) = [4] x1 + [1] p(c_114) = [0] p(c_115) = [4] p(c_116) = [0] p(c_117) = [2] x1 + [0] Following rules are strictly oriented: DFS#3#(#false(),z0,z1,z2,z3,z4) = [6] > [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [7] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [0] >= [0] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [0] >= [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [1] z0 + [7] z1 + [0] >= [7] z1 + [0] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [2] z1 + [0] >= [2] z1 + [0] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [0] >= [0] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [0] >= [6] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [6] >= [2] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [6] >= [6] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DOBFS#(z0,z1) = [2] z1 + [0] >= [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z2 + [0] >= [1] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [0] >= [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [0] >= [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [0] = node(z5,z1,z2) dobfs(z0,z1) = [3] z1 + [0] >= [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [0] >= [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:6: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) - Weak DPs: BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [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) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x2 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [2] x6 + [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [1] x2 + [0] p(appendreverse#1) = [1] x2 + [0] p(bfs) = [1] x1 + [0] p(bfs#1) = [1] x1 + [0] p(bfs#2) = [0] p(bfs#3) = [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x5 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [0] p(dfs#3) = [0] p(dobfs) = [4] x1 + [0] p(dodfs) = [0] p(leaf) = [0] p(nil) = [0] p(node) = [0] p(reverse) = [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(APPENDREVERSE#) = [0] p(APPENDREVERSE#1#) = [0] p(BFS#) = [1] x1 + [5] p(BFS#1#) = [1] x1 + [0] p(BFS#2#) = [6] p(BFS#3#) = [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x5 + [5] p(BFS2#) = [7] x1 + [7] p(BFS2#1#) = [1] x1 + [0] p(DFS#) = [2] p(DFS#1#) = [1] p(DFS#2#) = [4] p(DFS#3#) = [1] x1 + [4] p(DOBFS#) = [1] x1 + [7] p(DODFS#) = [0] p(REVERSE#) = [0] p(appendreverse#) = [0] p(appendreverse#1#) = [0] p(bfs#) = [0] p(bfs#1#) = [0] p(bfs#2#) = [0] p(bfs#3#) = [0] p(bfs#4#) = [0] p(bfs2#) = [0] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [0] p(dfs#2#) = [1] x3 + [0] p(dfs#3#) = [0] p(dobfs#) = [0] p(dodfs#) = [0] p(reverse#) = [0] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [1] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [1] p(c_12) = [1] x1 + [0] p(c_13) = [2] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [6] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [0] p(c_23) = [1] x1 + [2] 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) = [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) = [2] 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) = [0] p(c_58) = [1] x6 + [0] p(c_59) = [4] x2 + [1] x4 + [2] x7 + [1] x8 + [0] p(c_60) = [1] x1 + [1] x2 + [1] x4 + [2] x6 + [4] x8 + [1] x9 + [2] p(c_61) = [0] p(c_62) = [2] p(c_63) = [4] p(c_64) = [1] p(c_65) = [0] p(c_66) = [1] p(c_67) = [0] p(c_68) = [1] p(c_69) = [4] p(c_70) = [1] x1 + [0] p(c_71) = [4] p(c_72) = [0] p(c_73) = [0] p(c_74) = [4] x1 + [1] p(c_75) = [0] p(c_76) = [1] x1 + [1] p(c_77) = [1] x2 + [1] x3 + [0] p(c_78) = [1] p(c_79) = [0] p(c_80) = [0] p(c_81) = [0] p(c_82) = [0] p(c_83) = [2] p(c_84) = [4] p(c_85) = [1] p(c_86) = [1] p(c_87) = [0] p(c_88) = [2] p(c_89) = [1] p(c_90) = [0] p(c_91) = [0] p(c_92) = [1] p(c_93) = [1] p(c_94) = [0] p(c_95) = [2] x1 + [1] p(c_96) = [1] p(c_97) = [1] x1 + [1] p(c_98) = [0] p(c_99) = [1] x1 + [0] p(c_100) = [1] x1 + [1] p(c_101) = [2] p(c_102) = [1] x1 + [0] p(c_103) = [1] x1 + [1] x2 + [4] p(c_104) = [1] p(c_105) = [1] p(c_106) = [4] x1 + [0] p(c_107) = [0] p(c_108) = [1] x1 + [2] p(c_109) = [0] p(c_110) = [0] p(c_111) = [4] p(c_112) = [1] x2 + [0] p(c_113) = [1] x1 + [4] p(c_114) = [0] p(c_115) = [1] x1 + [1] p(c_116) = [2] p(c_117) = [0] Following rules are strictly oriented: BFS#(z0,z1,z2) = [1] z0 + [5] > [1] z0 + [0] = c_5(BFS#1#(z0,z1,z2)) DFS#(z0,z1) = [2] > [1] = c_16(DFS#1#(z0,z1)) Following rules are (at-least) weakly oriented: BFS#1#(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [0] >= [6] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [6] >= [6] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [5] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [6] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [5] >= [1] z3 + [5] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [7] z0 + [7] >= [5] z0 + [7] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [0] >= [1] z0 + [13] = c_15(DOBFS#(z0,z1)) DFS#1#(::(z0,z1),z2) = [1] >= [4] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [4] >= [2] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [4] >= [4] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [4] >= [2] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1] z0 + [7] >= [7] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [1] z1 + [0] >= [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z2 + [0] >= [1] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [0] >= [1] z0 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z1 + [0] >= [1] z1 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [0] >= [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [0] >= [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z1 + [0] >= [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z4 + [0] >= [1] z4 + [0] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z3 + [0] >= [0] = node(z5,z1,z2) dobfs(z0,z1) = [4] z0 + [0] >= [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [0] >= [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:7: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [1] x2 + [0] p(#EQ) = [1] x1 + [2] p(#EQUAL) = [2] x2 + [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] p(#true) = [0] p(::) = [1] x2 + [0] p(APPENDREVERSE) = [2] x2 + [0] p(APPENDREVERSE#1) = [0] p(BFS) = [4] x1 + [1] x2 + [2] x3 + [1] p(BFS#1) = [1] x2 + [1] x3 + [0] p(BFS#2) = [1] x2 + [0] p(BFS#3) = [2] x2 + [4] x3 + [4] p(BFS#4) = [1] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [4] x2 + [0] p(appendreverse#1) = [4] x2 + [0] p(bfs) = [1] x1 + [2] x2 + [0] p(bfs#1) = [1] x1 + [2] x2 + [0] p(bfs#2) = [2] x1 + [0] p(bfs#3) = [2] x2 + [1] x3 + [0] p(bfs#4) = [1] x1 + [2] x2 + [1] x5 + [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [1] x4 + [2] p(dfs#3) = [2] x4 + [0] p(dobfs) = [1] x1 + [2] x2 + [2] p(dodfs) = [4] p(leaf) = [0] p(nil) = [0] p(node) = [0] p(reverse) = [2] x1 + [0] p(#AND#) = [1] x1 + [2] p(#EQ#) = [1] x1 + [1] x2 + [1] p(#EQUAL#) = [1] x1 + [1] x2 + [1] p(#and#) = [4] x1 + [4] x2 + [1] p(#eq#) = [1] x2 + [0] p(#equal#) = [4] x2 + [1] p(APPENDREVERSE#) = [1] x1 + [1] x2 + [1] p(APPENDREVERSE#1#) = [1] x1 + [2] x2 + [0] p(BFS#) = [1] x1 + [4] x2 + [0] p(BFS#1#) = [1] x1 + [4] x2 + [0] p(BFS#2#) = [4] x1 + [0] p(BFS#3#) = [4] x2 + [1] x3 + [0] p(BFS#4#) = [1] x1 + [4] x2 + [1] x5 + [0] p(BFS2#) = [4] x1 + [4] x2 + [7] p(BFS2#1#) = [1] x1 + [1] x2 + [1] p(DFS#) = [1] p(DFS#1#) = [0] p(DFS#2#) = [1] p(DFS#3#) = [1] x1 + [1] p(DOBFS#) = [1] x2 + [0] p(DODFS#) = [4] p(REVERSE#) = [1] p(appendreverse#) = [1] x1 + [1] p(appendreverse#1#) = [1] x1 + [1] x2 + [1] p(bfs#) = [2] x2 + [1] x3 + [1] p(bfs#1#) = [1] x3 + [0] p(bfs#2#) = [1] x2 + [4] p(bfs#3#) = [1] x2 + [0] p(bfs#4#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [4] x5 + [1] p(bfs2#) = [2] x1 + [0] p(bfs2#1#) = [1] x1 + [1] x2 + [0] p(dfs#) = [4] x1 + [1] x2 + [0] p(dfs#1#) = [0] p(dfs#2#) = [1] x1 + [4] x4 + [0] p(dfs#3#) = [4] x1 + [2] x6 + [4] p(dobfs#) = [4] x2 + [1] p(dodfs#) = [1] x2 + [0] p(reverse#) = [4] p(c_1) = [1] x1 + [1] p(c_2) = [0] p(c_3) = [4] x1 + [2] p(c_4) = [0] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [4] p(c_11) = [1] x1 + [3] p(c_12) = [1] x1 + [0] p(c_13) = [4] p(c_14) = [1] x1 + [1] x2 + [4] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [1] p(c_17) = [1] x1 + [6] p(c_18) = [1] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [0] p(c_23) = [1] x1 + [0] p(c_24) = [2] x1 + [0] p(c_25) = [1] x1 + [0] p(c_26) = [2] p(c_27) = [4] p(c_28) = [1] p(c_29) = [2] p(c_30) = [1] p(c_31) = [0] p(c_32) = [2] p(c_33) = [4] p(c_34) = [0] p(c_35) = [2] x1 + [1] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [1] x1 + [0] p(c_42) = [1] x2 + [1] x3 + [1] x4 + [0] p(c_43) = [1] x1 + [0] p(c_44) = [4] p(c_45) = [1] p(c_46) = [0] p(c_47) = [4] p(c_48) = [0] p(c_49) = [1] p(c_50) = [0] p(c_51) = [1] p(c_52) = [4] p(c_53) = [1] p(c_54) = [0] p(c_55) = [1] p(c_56) = [1] p(c_57) = [0] p(c_58) = [1] x3 + [1] p(c_59) = [4] x1 + [2] x2 + [1] x4 + [1] x6 + [1] x7 + [4] x8 + [1] x9 + [4] p(c_60) = [4] x1 + [1] x3 + [2] x5 + [1] x6 + [4] p(c_61) = [0] p(c_62) = [0] p(c_63) = [4] p(c_64) = [1] p(c_65) = [0] p(c_66) = [1] p(c_67) = [1] p(c_68) = [0] p(c_69) = [4] p(c_70) = [1] p(c_71) = [1] p(c_72) = [0] p(c_73) = [4] p(c_74) = [1] x1 + [0] p(c_75) = [4] p(c_76) = [1] p(c_77) = [1] x1 + [1] x2 + [1] x3 + [2] p(c_78) = [4] p(c_79) = [1] p(c_80) = [0] p(c_81) = [2] p(c_82) = [1] p(c_83) = [0] p(c_84) = [0] p(c_85) = [1] p(c_86) = [2] p(c_87) = [2] p(c_88) = [1] p(c_89) = [0] p(c_90) = [0] p(c_91) = [1] p(c_92) = [4] x4 + [2] p(c_93) = [1] p(c_94) = [0] p(c_95) = [1] x1 + [0] p(c_96) = [0] p(c_97) = [1] p(c_98) = [4] x1 + [0] p(c_99) = [2] p(c_100) = [1] x2 + [0] p(c_101) = [1] p(c_102) = [4] x1 + [2] p(c_103) = [1] x1 + [2] x2 + [0] p(c_104) = [4] x1 + [4] p(c_105) = [1] p(c_106) = [1] x1 + [1] x2 + [1] p(c_107) = [2] x1 + [1] p(c_108) = [4] x1 + [1] p(c_109) = [1] x1 + [2] p(c_110) = [1] p(c_111) = [1] x1 + [1] p(c_112) = [1] x1 + [2] x2 + [0] p(c_113) = [1] x1 + [0] p(c_114) = [0] p(c_115) = [4] x1 + [0] p(c_116) = [2] x1 + [1] p(c_117) = [1] x1 + [1] Following rules are strictly oriented: BFS2#1#(z0,z1) = [1] z0 + [1] z1 + [1] > [1] z1 + [0] = c_15(DOBFS#(z0,z1)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [4] z1 + [0] >= [1] z0 + [4] z1 + [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1] z1 + [4] z2 + [0] >= [1] z1 + [4] z2 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [4] z0 + [0] >= [4] z0 + [0] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [4] z1 + [0] >= [2] z1 + [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [4] z0 + [1] z1 + [0] >= [4] z0 + [1] z1 + [4] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [4] z3 + [1] z4 + [0] >= [4] z3 + [1] z4 + [3] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [4] z0 + [1] z3 + [0] >= [4] z0 + [1] z3 + [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [4] z0 + [4] z1 + [7] >= [1] z0 + [4] z1 + [7] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) DFS#(z0,z1) = [1] >= [1] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [0] >= [7] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [1] >= [1] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [1] >= [1] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [1] >= [1] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1] z1 + [0] >= [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [4] z1 + [0] >= [4] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [4] z2 + [0] >= [4] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [4] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [2] z1 + [0] >= [1] z0 + [2] z1 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z1 + [2] z2 + [0] >= [1] z1 + [2] z2 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [2] z0 + [0] >= [2] z0 + [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [2] z1 + [0] >= [2] z1 + [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [2] z0 + [1] z1 + [0] >= [2] z0 + [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [2] z3 + [1] z4 + [0] >= [2] z3 + [1] z4 + [0] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [2] z0 + [1] z3 + [0] >= [2] z0 + [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [2] z0 + [1] z3 + [0] >= [0] = node(z5,z1,z2) dobfs(z0,z1) = [1] z0 + [2] z1 + [2] >= [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [2] z0 + [0] >= [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:8: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [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) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [1] x1 + [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [2] p(BFS#4) = [1] x4 + [4] x5 + [1] x6 + [0] p(BFS2) = [1] x1 + [0] p(BFS2#1) = [2] x1 + [0] p(DFS) = [1] x2 + [0] p(DFS#1) = [2] x2 + [1] p(DFS#2) = [1] x2 + [2] x3 + [2] x4 + [0] p(DFS#3) = [4] x2 + [1] x6 + [0] p(DOBFS) = [2] x2 + [0] p(DODFS) = [4] x1 + [4] x2 + [1] p(REVERSE) = [2] x1 + [0] p(appendreverse) = [1] x1 + [1] x2 + [0] p(appendreverse#1) = [1] x1 + [1] x2 + [0] p(bfs) = [1] x1 + [1] x2 + [0] p(bfs#1) = [1] x1 + [1] x2 + [0] p(bfs#2) = [1] x1 + [0] p(bfs#3) = [1] x1 + [1] x2 + [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [1] x7 + [4] p(bfs2) = [2] x2 + [4] p(bfs2#1) = [1] x1 + [4] x2 + [1] p(c) = [1] p(c1) = [1] p(c10) = [0] p(c11) = [4] p(c12) = [2] p(c13) = [0] p(c14) = [1] p(c15) = [1] p(c16) = [1] x2 + [1] p(c17) = [1] p(c18) = [1] p(c19) = [0] p(c2) = [1] p(c20) = [2] p(c21) = [1] p(c22) = [4] p(c23) = [0] p(c24) = [0] p(c25) = [1] p(c26) = [1] p(c27) = [0] p(c28) = [1] p(c29) = [1] p(c3) = [1] p(c30) = [4] p(c31) = [4] p(c32) = [1] x1 + [4] p(c33) = [1] x3 + [0] p(c34) = [0] p(c35) = [1] p(c36) = [0] p(c37) = [1] x1 + [4] p(c38) = [1] p(c39) = [1] p(c4) = [0] p(c40) = [4] p(c41) = [1] x1 + [0] p(c42) = [1] p(c43) = [0] p(c44) = [1] p(c45) = [1] x2 + [4] p(c46) = [2] p(c47) = [2] p(c48) = [4] p(c49) = [1] p(c5) = [0] p(c50) = [0] p(c51) = [2] p(c52) = [4] p(c53) = [1] x1 + [1] p(c54) = [2] p(c55) = [0] p(c56) = [0] p(c57) = [1] p(c58) = [0] p(c59) = [2] p(c6) = [4] p(c7) = [2] p(c8) = [0] p(c9) = [1] p(dfs) = [1] x2 + [4] p(dfs#1) = [2] x2 + [0] p(dfs#2) = [1] x2 + [1] x4 + [2] p(dfs#3) = [1] x1 + [1] x2 + [1] x3 + [4] x5 + [1] p(dobfs) = [2] x1 + [4] x2 + [0] p(dodfs) = [4] x1 + [2] p(leaf) = [0] p(nil) = [0] p(node) = [1] x1 + [1] x2 + [1] x3 + [4] p(reverse) = [1] x1 + [0] p(#AND#) = [4] x2 + [1] p(#EQ#) = [1] x2 + [4] p(#EQUAL#) = [1] x2 + [2] p(#and#) = [2] x2 + [0] p(#eq#) = [1] x1 + [1] x2 + [1] p(#equal#) = [1] x1 + [1] x2 + [2] p(APPENDREVERSE#) = [1] x1 + [2] x2 + [0] p(APPENDREVERSE#1#) = [1] x1 + [1] x2 + [0] p(BFS#) = [1] x1 + [1] x2 + [0] p(BFS#1#) = [1] x1 + [1] x2 + [0] p(BFS#2#) = [1] x1 + [0] p(BFS#3#) = [1] x1 + [1] x2 + [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [1] x7 + [3] p(BFS2#) = [3] x1 + [4] x2 + [2] p(BFS2#1#) = [1] x1 + [2] p(DFS#) = [0] p(DFS#1#) = [0] p(DFS#2#) = [1] p(DFS#3#) = [1] x1 + [1] p(DOBFS#) = [1] x1 + [0] p(DODFS#) = [4] p(REVERSE#) = [2] x1 + [0] p(appendreverse#) = [4] p(appendreverse#1#) = [4] x2 + [1] p(bfs#) = [1] x1 + [1] x2 + [2] p(bfs#1#) = [1] x1 + [2] x2 + [4] x3 + [1] p(bfs#2#) = [1] p(bfs#3#) = [2] x1 + [1] x2 + [1] x3 + [1] x4 + [0] p(bfs#4#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x7 + [1] p(bfs2#) = [1] x1 + [4] x2 + [1] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [4] x1 + [2] x2 + [0] p(dfs#2#) = [4] x1 + [1] x3 + [1] x4 + [4] p(dfs#3#) = [1] x4 + [2] x5 + [1] p(dobfs#) = [2] x1 + [4] x2 + [0] p(dodfs#) = [1] x1 + [0] p(reverse#) = [1] x1 + [0] p(c_1) = [0] p(c_2) = [1] x1 + [0] p(c_3) = [1] x1 + [4] p(c_4) = [4] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [3] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [1] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [3] p(c_13) = [1] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [2] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [1] p(c_18) = [2] p(c_19) = [1] x1 + [1] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [0] p(c_23) = [1] x1 + [0] p(c_24) = [1] x1 + [1] p(c_25) = [1] p(c_26) = [0] p(c_27) = [1] p(c_28) = [0] p(c_29) = [1] p(c_30) = [4] p(c_31) = [0] p(c_32) = [1] p(c_33) = [1] p(c_34) = [0] p(c_35) = [2] p(c_36) = [0] p(c_37) = [0] p(c_38) = [1] p(c_39) = [1] x1 + [1] p(c_40) = [2] p(c_41) = [4] x1 + [1] p(c_42) = [1] x1 + [1] x3 + [0] p(c_43) = [1] x1 + [2] x2 + [1] x3 + [1] x4 + [1] p(c_44) = [1] p(c_45) = [0] p(c_46) = [2] p(c_47) = [0] p(c_48) = [0] p(c_49) = [1] p(c_50) = [0] p(c_51) = [1] p(c_52) = [1] p(c_53) = [4] p(c_54) = [2] p(c_55) = [0] p(c_56) = [1] p(c_57) = [0] p(c_58) = [4] x2 + [1] x3 + [1] x4 + [1] x5 + [0] p(c_59) = [1] x1 + [4] x2 + [2] x3 + [2] x5 + [4] x6 + [1] x9 + [1] p(c_60) = [4] x1 + [2] x3 + [2] x4 + [1] x8 + [0] p(c_61) = [1] p(c_62) = [0] p(c_63) = [1] p(c_64) = [0] p(c_65) = [1] p(c_66) = [0] p(c_67) = [1] p(c_68) = [1] p(c_69) = [2] p(c_70) = [1] x1 + [0] p(c_71) = [1] p(c_72) = [0] p(c_73) = [2] p(c_74) = [1] x1 + [0] p(c_75) = [0] p(c_76) = [1] p(c_77) = [1] x3 + [0] p(c_78) = [0] p(c_79) = [1] p(c_80) = [2] p(c_81) = [1] p(c_82) = [2] p(c_83) = [2] p(c_84) = [2] p(c_85) = [1] p(c_86) = [0] p(c_87) = [4] p(c_88) = [0] p(c_89) = [2] p(c_90) = [0] p(c_91) = [2] p(c_92) = [1] x1 + [1] x2 + [1] x4 + [1] x5 + [0] p(c_93) = [4] x1 + [4] p(c_94) = [0] p(c_95) = [1] x1 + [4] p(c_96) = [1] p(c_97) = [4] x1 + [0] p(c_98) = [1] x1 + [1] p(c_99) = [0] p(c_100) = [2] x2 + [2] p(c_101) = [0] p(c_102) = [1] x1 + [0] p(c_103) = [4] x2 + [1] p(c_104) = [1] x1 + [4] p(c_105) = [2] p(c_106) = [1] x1 + [1] p(c_107) = [1] p(c_108) = [2] p(c_109) = [1] x1 + [0] p(c_110) = [4] p(c_111) = [4] x1 + [1] p(c_112) = [0] p(c_113) = [1] x1 + [0] p(c_114) = [4] p(c_115) = [2] x1 + [1] p(c_116) = [1] p(c_117) = [1] x1 + [0] Following rules are strictly oriented: BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] > [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [3] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [3] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [1] = c_10(BFS#(z1,z0,z2)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [3] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [3] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [3] z0 + [4] z1 + [2] >= [3] z0 + [4] z1 + [2] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [2] >= [1] z0 + [2] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [0] >= [0] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [0] >= [2] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [1] >= [1] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [1] >= [1] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [1] >= [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [0] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [4] >= [1] z1 + [1] z2 + [1] z5 + [4] = node(z5,z1,z2) dobfs(z0,z1) = [2] z0 + [4] z1 + [0] >= [1] z0 + [0] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [1] z0 + [0] >= [1] z0 + [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:9: NaturalMI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE#,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4# ,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS#,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1# ,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2#,dfs#3#,dobfs#,dodfs#,reverse#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [7] p(#eq) = [1] x2 + [0] p(#equal) = [0] 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 + [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [0] p(appendreverse#1) = [0] p(bfs) = [0] p(bfs#1) = [0] p(bfs#2) = [0] p(bfs#3) = [0] p(bfs#4) = [0] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [0] p(c54) = [0] p(c55) = [1] p(c56) = [2] p(c57) = [0] p(c58) = [1] p(c59) = [4] p(c6) = [0] p(c7) = [1] p(c8) = [0] p(c9) = [1] p(dfs) = [2] p(dfs#1) = [2] x1 + [1] x2 + [0] p(dfs#2) = [1] x4 + [0] p(dfs#3) = [1] x2 + [1] x3 + [1] x5 + [1] p(dobfs) = [1] x1 + [0] p(dodfs) = [1] x1 + [1] x2 + [4] p(leaf) = [1] p(nil) = [0] p(node) = [1] x2 + [1] x3 + [1] p(reverse) = [4] p(#AND#) = [0] p(#EQ#) = [4] x1 + [0] p(#EQUAL#) = [4] x1 + [4] x2 + [1] p(#and#) = [4] x1 + [4] x2 + [0] p(#eq#) = [1] x1 + [4] p(#equal#) = [0] p(APPENDREVERSE#) = [1] x2 + [0] p(APPENDREVERSE#1#) = [4] x2 + [0] p(BFS#) = [0] p(BFS#1#) = [0] p(BFS#2#) = [0] p(BFS#3#) = [0] p(BFS#4#) = [0] p(BFS2#) = [4] x1 + [4] x2 + [6] p(BFS2#1#) = [2] x2 + [1] p(DFS#) = [6] x1 + [2] p(DFS#1#) = [6] x1 + [2] p(DFS#2#) = [6] x1 + [6] x3 + [0] p(DFS#3#) = [6] x3 + [6] x4 + [6] x5 + [5] p(DOBFS#) = [1] p(DODFS#) = [0] p(REVERSE#) = [2] p(appendreverse#) = [2] x1 + [1] p(appendreverse#1#) = [2] x2 + [0] p(bfs#) = [0] p(bfs#1#) = [4] x3 + [0] p(bfs#2#) = [4] p(bfs#3#) = [0] p(bfs#4#) = [1] x2 + [4] p(bfs2#) = [1] x2 + [0] p(bfs2#1#) = [4] x1 + [2] x2 + [4] p(dfs#) = [1] x1 + [4] x2 + [0] p(dfs#1#) = [1] x1 + [2] x2 + [4] p(dfs#2#) = [1] x1 + [1] p(dfs#3#) = [4] x1 + [1] x2 + [2] x3 + [1] x5 + [1] p(dobfs#) = [1] x1 + [0] p(dodfs#) = [1] x1 + [1] x2 + [1] p(reverse#) = [4] x1 + [1] p(c_1) = [2] p(c_2) = [0] p(c_3) = [1] x1 + [1] p(c_4) = [0] p(c_5) = [4] x1 + [0] p(c_6) = [4] x1 + [0] p(c_7) = [2] x1 + [0] p(c_8) = [4] x1 + [0] p(c_9) = [2] p(c_10) = [1] x1 + [0] p(c_11) = [4] x1 + [0] p(c_12) = [4] x1 + [0] p(c_13) = [0] p(c_14) = [2] x1 + [4] x2 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [1] p(c_19) = [1] x1 + [1] p(c_20) = [1] x1 + [1] p(c_21) = [1] x1 + [3] p(c_22) = [0] p(c_23) = [1] x1 + [1] p(c_24) = [2] x1 + [1] p(c_25) = [1] x1 + [0] p(c_26) = [1] p(c_27) = [1] p(c_28) = [1] p(c_29) = [4] p(c_30) = [2] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [1] p(c_36) = [0] p(c_37) = [1] p(c_38) = [1] p(c_39) = [1] x1 + [0] p(c_40) = [0] p(c_41) = [1] x1 + [1] p(c_42) = [1] p(c_43) = [1] x1 + [1] x3 + [1] p(c_44) = [0] p(c_45) = [4] p(c_46) = [2] p(c_47) = [0] p(c_48) = [1] p(c_49) = [0] p(c_50) = [0] p(c_51) = [1] p(c_52) = [1] p(c_53) = [1] p(c_54) = [1] p(c_55) = [0] p(c_56) = [0] p(c_57) = [2] p(c_58) = [1] x1 + [1] x2 + [1] x3 + [1] x6 + [2] p(c_59) = [1] x2 + [1] x5 + [1] x6 + [1] x7 + [2] x9 + [0] p(c_60) = [1] x1 + [1] x2 + [1] x3 + [2] x4 + [4] x5 + [1] x6 + [2] x7 + [2] p(c_61) = [1] p(c_62) = [4] p(c_63) = [1] p(c_64) = [0] p(c_65) = [1] p(c_66) = [0] p(c_67) = [1] p(c_68) = [2] p(c_69) = [4] p(c_70) = [0] p(c_71) = [1] p(c_72) = [1] p(c_73) = [0] p(c_74) = [1] x1 + [0] p(c_75) = [1] p(c_76) = [1] x1 + [1] p(c_77) = [1] x3 + [0] p(c_78) = [4] p(c_79) = [1] p(c_80) = [0] p(c_81) = [4] p(c_82) = [0] p(c_83) = [0] p(c_84) = [2] p(c_85) = [4] p(c_86) = [1] p(c_87) = [2] p(c_88) = [2] p(c_89) = [1] p(c_90) = [1] p(c_91) = [1] p(c_92) = [1] x2 + [2] x4 + [0] p(c_93) = [4] p(c_94) = [2] x1 + [0] p(c_95) = [1] p(c_96) = [4] p(c_97) = [0] p(c_98) = [1] x1 + [0] p(c_99) = [2] x1 + [0] p(c_100) = [1] p(c_101) = [0] p(c_102) = [0] p(c_103) = [4] x1 + [2] x2 + [0] p(c_104) = [2] p(c_105) = [1] p(c_106) = [4] x2 + [0] p(c_107) = [1] x1 + [2] p(c_108) = [0] p(c_109) = [4] p(c_110) = [0] p(c_111) = [1] x1 + [1] p(c_112) = [2] x1 + [1] x2 + [0] p(c_113) = [2] x1 + [0] p(c_114) = [0] p(c_115) = [1] p(c_116) = [1] x1 + [2] p(c_117) = [1] Following rules are strictly oriented: DFS#1#(::(z0,z1),z2) = [6] z0 + [6] z1 + [2] > [6] z0 + [6] z1 + [0] = c_17(DFS#2#(z0,z0,z1,z2)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [0] >= [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [0] >= [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [0] >= [0] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [0] >= [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [0] >= [0] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [0] >= [0] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [0] >= [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [4] z0 + [4] z1 + [6] >= [4] z1 + [6] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [2] z1 + [1] >= [1] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [6] z0 + [2] >= [6] z0 + [2] = c_16(DFS#1#(z0,z1)) DFS#2#(leaf(),z0,z1,z2) = [6] z1 + [6] >= [6] z1 + [3] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [6] z1 + [6] z2 + [6] z4 + [6] >= [6] z1 + [6] z2 + [6] z4 + [6] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [6] z1 + [6] z2 + [6] z3 + [5] >= [6] z1 + [6] z2 + [6] z3 + [5] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1] >= [1] = c_23(BFS#(::(z0,nil()),nil(),z1)) ** Step 8.a:10: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(DFS#3#) = {1}, uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [4] x1 + [1] p(#EQ) = [1] p(#EQUAL) = [4] x2 + [4] p(#and) = [1] x1 + [1] x2 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [4] p(#pos) = [1] p(#s) = [1] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [0] p(APPENDREVERSE) = [1] p(APPENDREVERSE#1) = [1] x1 + [0] p(BFS) = [1] x2 + [1] x3 + [0] p(BFS#1) = [0] p(BFS#2) = [1] x1 + [1] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [1] x1 + [1] x2 + [0] p(appendreverse#1) = [1] x1 + [1] x2 + [0] p(bfs) = [1] x1 + [1] x2 + [2] p(bfs#1) = [1] x1 + [1] x2 + [2] p(bfs#2) = [1] x1 + [2] p(bfs#3) = [1] x1 + [1] x2 + [1] x3 + [2] p(bfs#4) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [2] p(bfs2) = [0] p(bfs2#1) = [0] p(c) = [0] p(c1) = [0] p(c10) = [0] p(c11) = [0] p(c12) = [0] p(c13) = [0] p(c14) = [1] p(c15) = [4] p(c16) = [1] x1 + [1] x2 + [0] p(c17) = [1] x1 + [0] p(c18) = [1] p(c19) = [2] p(c2) = [0] p(c20) = [0] p(c21) = [1] p(c22) = [0] p(c23) = [2] p(c24) = [0] p(c25) = [1] p(c26) = [1] p(c27) = [0] p(c28) = [2] p(c29) = [0] p(c3) = [1] p(c30) = [0] p(c31) = [1] p(c32) = [4] p(c33) = [1] x1 + [1] x2 + [1] p(c34) = [1] x3 + [0] p(c35) = [4] p(c36) = [1] x1 + [1] p(c37) = [1] x1 + [2] p(c38) = [1] p(c39) = [4] p(c4) = [0] p(c40) = [0] p(c41) = [1] x1 + [2] p(c42) = [1] x1 + [2] p(c43) = [4] p(c44) = [1] p(c45) = [1] x2 + [1] p(c46) = [1] x1 + [1] p(c47) = [0] p(c48) = [1] x1 + [0] p(c49) = [4] p(c5) = [1] p(c50) = [0] p(c51) = [1] x1 + [1] p(c52) = [0] p(c53) = [0] p(c54) = [4] p(c55) = [0] p(c56) = [1] p(c57) = [0] p(c58) = [4] p(c59) = [0] p(c6) = [1] p(c7) = [4] p(c8) = [0] p(c9) = [0] p(dfs) = [1] p(dfs#1) = [1] x2 + [4] p(dfs#2) = [1] x1 + [1] x2 + [1] x4 + [1] p(dfs#3) = [1] x1 + [4] x6 + [4] p(dobfs) = [2] x1 + [2] x2 + [2] p(dodfs) = [2] x1 + [0] p(leaf) = [1] p(nil) = [0] p(node) = [1] x2 + [1] x3 + [0] p(reverse) = [1] x1 + [0] p(#AND#) = [1] x1 + [4] x2 + [1] p(#EQ#) = [1] x1 + [0] p(#EQUAL#) = [4] x2 + [4] p(#and#) = [2] p(#eq#) = [1] x2 + [1] p(#equal#) = [1] p(APPENDREVERSE#) = [1] x1 + [2] x2 + [4] p(APPENDREVERSE#1#) = [1] p(BFS#) = [1] x1 + [1] x2 + [0] p(BFS#1#) = [1] x1 + [1] x2 + [0] p(BFS#2#) = [1] x1 + [0] p(BFS#3#) = [1] x1 + [1] x2 + [1] x3 + [0] p(BFS#4#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [0] p(BFS2#) = [4] x1 + [3] x2 + [6] p(BFS2#1#) = [1] x1 + [1] x2 + [4] p(DFS#) = [1] p(DFS#1#) = [1] p(DFS#2#) = [1] p(DFS#3#) = [1] x1 + [1] p(DOBFS#) = [1] x1 + [0] p(DODFS#) = [4] x1 + [1] x2 + [0] p(REVERSE#) = [4] p(appendreverse#) = [1] x2 + [2] p(appendreverse#1#) = [2] x1 + [2] x2 + [0] p(bfs#) = [1] x1 + [1] x2 + [1] x3 + [1] p(bfs#1#) = [4] x2 + [0] p(bfs#2#) = [1] x1 + [0] p(bfs#3#) = [1] x1 + [1] x3 + [4] x4 + [1] p(bfs#4#) = [1] x3 + [1] x5 + [2] x7 + [2] p(bfs2#) = [4] x2 + [4] p(bfs2#1#) = [2] x1 + [1] x2 + [4] p(dfs#) = [4] x1 + [1] x2 + [0] p(dfs#1#) = [1] x1 + [0] p(dfs#2#) = [1] x1 + [1] x3 + [2] x4 + [0] p(dfs#3#) = [1] x1 + [1] x3 + [4] x4 + [2] x5 + [4] x6 + [2] p(dobfs#) = [2] x1 + [1] x2 + [0] p(dodfs#) = [1] x1 + [1] x2 + [4] p(reverse#) = [1] p(c_1) = [0] p(c_2) = [1] p(c_3) = [1] x1 + [4] p(c_4) = [1] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [1] x1 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [1] x1 + [0] p(c_13) = [4] p(c_14) = [1] x1 + [1] x2 + [0] p(c_15) = [1] x1 + [4] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [1] x1 + [0] p(c_22) = [4] p(c_23) = [1] x1 + [0] p(c_24) = [1] p(c_25) = [1] x1 + [2] p(c_26) = [0] p(c_27) = [4] p(c_28) = [1] p(c_29) = [4] p(c_30) = [1] p(c_31) = [1] p(c_32) = [1] p(c_33) = [0] p(c_34) = [0] p(c_35) = [4] p(c_36) = [0] p(c_37) = [1] p(c_38) = [1] p(c_39) = [0] p(c_40) = [2] p(c_41) = [1] x1 + [1] p(c_42) = [1] x2 + [1] x3 + [1] x4 + [0] p(c_43) = [4] x1 + [4] x2 + [4] x4 + [0] p(c_44) = [1] p(c_45) = [1] p(c_46) = [1] p(c_47) = [1] p(c_48) = [1] p(c_49) = [1] p(c_50) = [0] p(c_51) = [4] p(c_52) = [4] p(c_53) = [4] p(c_54) = [0] p(c_55) = [0] p(c_56) = [0] p(c_57) = [0] p(c_58) = [1] x3 + [4] x5 + [4] x6 + [0] p(c_59) = [1] x2 + [1] x3 + [2] x5 + [4] x8 + [1] x9 + [0] p(c_60) = [2] x3 + [2] x4 + [2] x5 + [1] x6 + [1] x7 + [0] p(c_61) = [0] p(c_62) = [4] p(c_63) = [0] p(c_64) = [1] p(c_65) = [0] p(c_66) = [1] p(c_67) = [0] p(c_68) = [0] p(c_69) = [1] p(c_70) = [4] x1 + [2] p(c_71) = [1] p(c_72) = [0] p(c_73) = [0] p(c_74) = [0] p(c_75) = [1] p(c_76) = [1] x1 + [0] p(c_77) = [1] x1 + [4] x3 + [0] p(c_78) = [1] p(c_79) = [1] p(c_80) = [2] p(c_81) = [2] p(c_82) = [0] p(c_83) = [0] p(c_84) = [1] p(c_85) = [1] p(c_86) = [0] p(c_87) = [4] p(c_88) = [0] p(c_89) = [1] p(c_90) = [4] p(c_91) = [1] p(c_92) = [1] x1 + [4] x2 + [1] x3 + [1] x4 + [1] p(c_93) = [1] p(c_94) = [1] x1 + [1] p(c_95) = [1] x1 + [1] p(c_96) = [1] p(c_97) = [4] p(c_98) = [1] p(c_99) = [1] x1 + [1] p(c_100) = [2] x2 + [4] p(c_101) = [1] p(c_102) = [1] x1 + [1] p(c_103) = [0] p(c_104) = [1] x1 + [0] p(c_105) = [1] p(c_106) = [1] x2 + [2] p(c_107) = [1] p(c_108) = [2] x1 + [1] p(c_109) = [4] x1 + [1] p(c_110) = [0] p(c_111) = [1] p(c_112) = [4] p(c_113) = [2] x1 + [4] p(c_114) = [0] p(c_115) = [4] p(c_116) = [1] x1 + [0] p(c_117) = [1] Following rules are strictly oriented: BFS#3#(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [1] > [1] z0 + [1] z1 + [0] = c_10(BFS#(z1,z0,z2)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z1 + [1] z2 + [1] z3 + [1] z4 + [0] >= [1] z1 + [1] z2 + [1] z3 + [1] z4 + [0] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [0] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [4] z0 + [3] z1 + [6] >= [3] z0 + [3] z1 + [6] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1] z0 + [1] z1 + [4] >= [1] z0 + [4] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [1] >= [1] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [1] >= [1] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [1] >= [1] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [1] >= [1] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [1] >= [1] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [0] >= [1] z0 + [1] z1 + [1] z2 + [0] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [2] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [1] z0 + [2] >= [1] z0 + [2] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [2] >= [1] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [3] >= [1] z0 + [1] z1 + [2] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z1 + [1] z2 + [1] z3 + [1] z4 + [2] >= [1] z1 + [1] z2 + [1] z3 + [1] z4 + [2] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [2] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [2] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [2] >= [1] z1 + [1] z2 + [0] = node(z5,z1,z2) dobfs(z0,z1) = [2] z0 + [2] z1 + [2] >= [1] z0 + [2] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [1] z0 + [0] >= [1] z0 + [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.a:11: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_5) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_10) = {1}, uargs(c_11) = {1}, uargs(c_12) = {1}, uargs(c_14) = {1,2}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1}, uargs(c_21) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {appendreverse,appendreverse#1,bfs,bfs#1,bfs#2,bfs#3,bfs#4,dobfs,reverse,#AND#,#EQ#,#EQUAL#,#and#,#eq# ,#equal#,APPENDREVERSE#,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2# ,DFS#3#,DOBFS#,DODFS#,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2# ,bfs2#1#,dfs#,dfs#1#,dfs#2#,dfs#3#,dobfs#,dodfs#,reverse#} TcT has computed the following interpretation: p(#0) = [2] [0] p(#AND) = [0 0] x_2 + [2] [0 2] [1] p(#EQ) = [0 1] x_2 + [2] [0 0] [0] p(#EQUAL) = [2 0] x_2 + [1] [1 0] [0] p(#and) = [2 0] x_1 + [0] [2 0] [2] p(#eq) = [0 1] x_1 + [1 0] x_2 + [2] [3 2] [0 0] [0] p(#equal) = [0] [0] p(#false) = [0] [0] p(#neg) = [2] [0] p(#pos) = [1] [2] p(#s) = [0] [0] p(#true) = [0] [0] p(::) = [1 1] x_1 + [1 0] x_2 + [0] [0 0] [0 1] [1] p(APPENDREVERSE) = [2 2] x_2 + [1] [1 0] [0] p(APPENDREVERSE#1) = [0 1] x_2 + [2] [1 2] [0] p(BFS) = [2 1] x_3 + [1] [1 0] [0] p(BFS#1) = [0 0] x_1 + [0 0] x_3 + [0] [0 2] [0 1] [0] p(BFS#2) = [1] [0] p(BFS#3) = [1 2] x_1 + [0] [0 0] [2] p(BFS#4) = [0 0] x_1 + [0] [0 2] [0] p(BFS2) = [2] [0] p(BFS2#1) = [0 0] x_2 + [1] [1 0] [0] p(DFS) = [0 0] x_1 + [1] [1 0] [0] p(DFS#1) = [1 0] x_1 + [0] [2 1] [0] p(DFS#2) = [2 1] x_4 + [0] [0 2] [0] p(DFS#3) = [0 2] x_3 + [2 0] x_5 + [1] [1 2] [0 0] [0] p(DOBFS) = [1 2] x_1 + [0 1] x_2 + [0] [0 2] [0 1] [0] p(DODFS) = [2 2] x_2 + [2] [2 0] [0] p(REVERSE) = [1 0] x_1 + [2] [1 2] [0] p(appendreverse) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [0 1] [0] p(appendreverse#1) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [0 1] [0] p(bfs) = [1 0] x_1 + [1 0] x_2 + [0] [1 0] [1 0] [1] p(bfs#1) = [1 0] x_1 + [1 0] x_2 + [0] [1 0] [1 0] [1] p(bfs#2) = [1 0] x_1 + [0] [1 0] [1] p(bfs#3) = [1 0] x_1 + [1 0] x_2 + [1 0] x_3 + [0] [1 0] [1 0] [1 0] [1] p(bfs#4) = [1 0] x_2 + [1 1] x_3 + [1 1] x_4 + [1 0] x_5 + [1] [1 0] [1 1] [1 1] [1 0] [2] p(bfs2) = [0 1] x_1 + [0] [0 0] [0] p(bfs2#1) = [0 0] x_1 + [0 2] x_2 + [2] [1 0] [2 2] [2] p(c) = [0] [0] p(c1) = [0] [1] p(c10) = [0] [0] p(c11) = [1] [1] p(c12) = [1] [0] p(c13) = [2] [1] p(c14) = [0] [0] p(c15) = [0] [0] p(c16) = [0] [0] p(c17) = [0 0] x_1 + [0] [0 1] [0] p(c18) = [0] [0] p(c19) = [1] [2] p(c2) = [1] [2] p(c20) = [0] [0] p(c21) = [1] [2] p(c22) = [0] [2] p(c23) = [0] [1] p(c24) = [0] [0] p(c25) = [2] [0] p(c26) = [0] [2] p(c27) = [2] [0] p(c28) = [2] [0] p(c29) = [2] [1] p(c3) = [0] [0] p(c30) = [0] [2] p(c31) = [2] [2] p(c32) = [0 0] x_1 + [0 1] x_2 + [0] [0 1] [0 0] [2] p(c33) = [0] [0] p(c34) = [1 1] x_3 + [2] [0 0] [1] p(c35) = [0 1] x_1 + [0] [0 0] [2] p(c36) = [2] [0] p(c37) = [0] [1] p(c38) = [1] [2] p(c39) = [0] [2] p(c4) = [2] [1] p(c40) = [0] [1] p(c41) = [1] [0] p(c42) = [2] [0] p(c43) = [0] [0] p(c44) = [0] [1] p(c45) = [0] [2] p(c46) = [1] [0] p(c47) = [2] [0] p(c48) = [1] [0] p(c49) = [0 1] x_1 + [0] [0 0] [1] p(c5) = [0] [0] p(c50) = [0] [2] p(c51) = [0] [1] p(c52) = [2] [0] p(c53) = [0] [0] p(c54) = [0] [1] p(c55) = [0 0] x_1 + [1] [0 1] [2] p(c56) = [0] [1] p(c57) = [0] [2] p(c58) = [0] [0] p(c59) = [1] [2] p(c6) = [0] [2] p(c7) = [0] [0] p(c8) = [2] [0] p(c9) = [0] [0] p(dfs) = [0] [2] p(dfs#1) = [0] [0] p(dfs#2) = [0 0] x_3 + [2 2] x_4 + [0] [2 0] [0 1] [0] p(dfs#3) = [2 1] x_1 + [0 0] x_4 + [0] [2 0] [1 2] [2] p(dobfs) = [1 1] x_1 + [0] [1 1] [1] p(dodfs) = [0] [2] p(leaf) = [0] [0] p(nil) = [0] [0] p(node) = [1 1] x_2 + [1 1] x_3 + [1] [0 0] [0 0] [2] p(reverse) = [1 0] x_1 + [0] [1 2] [2] p(#AND#) = [0 0] x_2 + [1] [0 1] [1] p(#EQ#) = [0] [2] p(#EQUAL#) = [2] [0] p(#and#) = [2] [0] p(#eq#) = [0 0] x_1 + [0] [0 1] [1] p(#equal#) = [0] [1] p(APPENDREVERSE#) = [0 0] x_2 + [2] [0 2] [0] p(APPENDREVERSE#1#) = [0] [2] p(BFS#) = [1 0] x_1 + [1 1] x_2 + [1] [1 0] [2 0] [3] p(BFS#1#) = [1 0] x_1 + [1 1] x_2 + [0 0] x_3 + [1] [2 0] [3 3] [2 3] [3] p(BFS#2#) = [1 1] x_1 + [0 0] x_2 + [0] [3 3] [0 1] [3] p(BFS#3#) = [1 1] x_1 + [1 1] x_2 + [1 0] x_3 + [1] [0 1] [2 1] [1 0] [3] p(BFS#4#) = [1 1] x_2 + [1 1] x_3 + [1 1] x_4 + [1 0] x_5 + [3] [0 0] [0 0] [0 0] [0 0] [1] p(BFS2#) = [3 3] x_1 + [2 2] x_2 + [3] [3 3] [0 3] [3] p(BFS2#1#) = [1 1] x_1 + [0 2] x_2 + [1] [1 3] [2 0] [1] p(DFS#) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [0 1] [2] p(DFS#1#) = [0 0] x_2 + [0] [1 0] [0] p(DFS#2#) = [0 0] x_1 + [0 0] x_2 + [0 0] x_4 + [0] [2 0] [2 2] [2 2] [1] p(DFS#3#) = [0 0] x_3 + [0 0] x_5 + [0] [2 0] [1 2] [1] p(DOBFS#) = [1 1] x_1 + [0 0] x_2 + [1] [1 2] [0 2] [1] p(DODFS#) = [2 0] x_1 + [2] [0 0] [0] p(REVERSE#) = [0] [0] p(appendreverse#) = [1] [0] p(appendreverse#1#) = [1] [1] p(bfs#) = [1 1] x_1 + [0] [0 0] [0] p(bfs#1#) = [1 0] x_2 + [0] [1 0] [0] p(bfs#2#) = [0] [0] p(bfs#3#) = [1 0] x_2 + [1 0] x_4 + [2] [0 0] [0 2] [0] p(bfs#4#) = [0 0] x_2 + [0 0] x_3 + [0 2] x_5 + [0 0] x_6 + [0] [0 2] [0 2] [0 2] [2 2] [0] p(bfs2#) = [0 0] x_1 + [2] [2 0] [0] p(bfs2#1#) = [0 0] x_1 + [2 0] x_2 + [2] [0 2] [0 2] [0] p(dfs#) = [0] [1] p(dfs#1#) = [0] [0] p(dfs#2#) = [0 2] x_1 + [1 0] x_2 + [0 0] x_3 + [0 2] x_4 + [0] [0 0] [0 0] [0 1] [0 2] [1] p(dfs#3#) = [0 0] x_1 + [0 1] x_3 + [0 0] x_4 + [0 2] x_6 + [0] [2 2] [1 1] [0 1] [1 0] [0] p(dobfs#) = [0] [0] p(dodfs#) = [0 0] x_1 + [0] [0 2] [0] p(reverse#) = [0 0] x_1 + [0] [0 2] [0] p(c_1) = [1] [0] p(c_2) = [2] [0] p(c_3) = [1] [0] p(c_4) = [0] [0] p(c_5) = [1 0] x_1 + [0] [0 0] [3] p(c_6) = [1 0] x_1 + [0] [0 0] [0] p(c_7) = [1 0] x_1 + [0] [0 1] [0] p(c_8) = [1 0] x_1 + [0] [1 1] [2] p(c_9) = [0] [1] p(c_10) = [1 0] x_1 + [0] [0 1] [0] p(c_11) = [1 0] x_1 + [0] [0 2] [0] p(c_12) = [1 0] x_1 + [0] [0 0] [0] p(c_13) = [1] [2] p(c_14) = [1 0] x_1 + [1 0] x_2 + [0] [1 0] [1 0] [0] p(c_15) = [1 0] x_1 + [0] [0 0] [1] p(c_16) = [1 0] x_1 + [0] [1 0] [0] p(c_17) = [2 0] x_1 + [0] [1 0] [0] p(c_18) = [0] [0] p(c_19) = [2 0] x_1 + [0] [0 0] [1] p(c_20) = [2 0] x_1 + [0] [2 0] [3] p(c_21) = [2 0] x_1 + [0] [0 0] [0] p(c_22) = [0] [1] p(c_23) = [1 0] x_1 + [0] [0 0] [0] p(c_24) = [2] [0] p(c_25) = [0] [2] p(c_26) = [1] [0] p(c_27) = [0] [0] p(c_28) = [2] [0] p(c_29) = [0] [0] p(c_30) = [0] [0] p(c_31) = [0] [0] p(c_32) = [0] [0] p(c_33) = [0] [2] p(c_34) = [0] [0] p(c_35) = [0 0] x_1 + [2] [2 2] [2] p(c_36) = [0] [0] p(c_37) = [0] [0] p(c_38) = [0] [0] p(c_39) = [2 2] x_1 + [0] [0 1] [0] p(c_40) = [0] [0] p(c_41) = [1] [0] p(c_42) = [0 0] x_2 + [0] [0 1] [1] p(c_43) = [0 0] x_1 + [2 0] x_3 + [0] [0 1] [0 1] [0] p(c_44) = [0] [2] p(c_45) = [1] [1] p(c_46) = [0] [0] p(c_47) = [0] [0] p(c_48) = [0] [0] p(c_49) = [0] [0] p(c_50) = [1] [0] p(c_51) = [2] [1] p(c_52) = [0] [0] p(c_53) = [1] [1] p(c_54) = [2] [1] p(c_55) = [0] [1] p(c_56) = [0] [1] p(c_57) = [0] [2] p(c_58) = [0 0] x_2 + [2 2] x_4 + [0] [1 2] [0 2] [0] p(c_59) = [2 1] x_1 + [0 1] x_3 + [1 0] x_5 + [0 0] x_6 + [2] [0 1] [0 0] [2 0] [0 1] [0] p(c_60) = [2 0] x_1 + [1 1] x_4 + [0 1] x_6 + [2 0] x_8 + [0] [2 0] [0 0] [0 0] [0 1] [0] p(c_61) = [1] [0] p(c_62) = [2] [1] p(c_63) = [0] [1] p(c_64) = [0] [0] p(c_65) = [2] [0] p(c_66) = [2] [1] p(c_67) = [0] [1] p(c_68) = [0] [0] p(c_69) = [1] [0] p(c_70) = [0] [0] p(c_71) = [0] [0] p(c_72) = [1] [0] p(c_73) = [2] [2] p(c_74) = [1] [0] p(c_75) = [0] [0] p(c_76) = [0] [0] p(c_77) = [2 1] x_1 + [0 0] x_3 + [0] [0 2] [0 2] [1] p(c_78) = [2] [0] p(c_79) = [2] [2] p(c_80) = [0] [0] p(c_81) = [1] [0] p(c_82) = [0] [2] p(c_83) = [2] [0] p(c_84) = [2] [0] p(c_85) = [1] [0] p(c_86) = [0] [0] p(c_87) = [1] [1] p(c_88) = [1] [2] p(c_89) = [0] [0] p(c_90) = [0] [0] p(c_91) = [2] [1] p(c_92) = [0 0] x_1 + [0 0] x_2 + [1 1] x_3 + [0 0] x_5 + [2] [2 0] [1 0] [0 1] [0 1] [0] p(c_93) = [0] [0] p(c_94) = [2] [1] p(c_95) = [0 0] x_1 + [0] [0 2] [0] p(c_96) = [0] [0] p(c_97) = [1] [1] p(c_98) = [0] [2] p(c_99) = [0 0] x_1 + [0] [0 1] [0] p(c_100) = [0 0] x_1 + [0 2] x_2 + [0] [0 1] [2 0] [1] p(c_101) = [0] [0] p(c_102) = [2 0] x_1 + [0] [2 2] [0] p(c_103) = [2 1] x_1 + [0] [0 0] [0] p(c_104) = [0 0] x_1 + [2] [2 2] [0] p(c_105) = [0] [0] p(c_106) = [0 0] x_1 + [2 0] x_2 + [0] [2 0] [1 1] [0] p(c_107) = [0 0] x_1 + [1] [0 2] [1] p(c_108) = [0 0] x_1 + [2] [0 1] [0] p(c_109) = [0] [0] p(c_110) = [0] [0] p(c_111) = [0 0] x_1 + [1] [1 2] [0] p(c_112) = [2] [2] p(c_113) = [0] [1] p(c_114) = [1] [1] p(c_115) = [0 0] x_1 + [1] [1 1] [1] p(c_116) = [1] [2] p(c_117) = [0] [1] Following rules are strictly oriented: BFS#1#(nil(),z0,z1) = [1 1] z0 + [0 0] z1 + [1] [3 3] [2 3] [3] > [1 1] z0 + [0 0] z1 + [0] [3 3] [0 1] [3] = c_7(BFS#2#(z0,z1)) Following rules are (at-least) weakly oriented: BFS#(z0,z1,z2) = [1 0] z0 + [1 1] z1 + [1] [1 0] [2 0] [3] >= [1 0] z0 + [1 1] z1 + [1] [0 0] [0 0] [3] = c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) = [1 1] z0 + [1 0] z1 + [1 1] z2 + [0 0] z3 + [1] [2 2] [2 0] [3 3] [2 3] [3] >= [1 1] z0 + [1 0] z1 + [1 1] z2 + [1] [0 0] [0 0] [0 0] [0] = c_6(BFS#3#(z0,z2,z1,z3)) BFS#2#(::(z0,z1),z2) = [1 1] z0 + [1 1] z1 + [0 0] z2 + [1] [3 3] [3 3] [0 1] [6] >= [1 1] z0 + [1 0] z1 + [1] [2 2] [2 0] [6] = c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) = [1 1] z0 + [1 0] z1 + [1] [2 1] [1 0] [3] >= [1 1] z0 + [1 0] z1 + [1] [2 0] [1 0] [3] = c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1 1] z1 + [1 1] z2 + [1 1] z3 + [1 0] z4 + [4] [0 0] [0 0] [2 1] [1 0] [5] >= [1 1] z1 + [1 1] z2 + [1 1] z3 + [1 0] z4 + [3] [0 0] [0 0] [0 0] [0 0] [2] = c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1 1] z0 + [1 1] z1 + [1 1] z2 + [1 0] z3 + [3] [0 0] [0 0] [0 0] [0 0] [1] >= [1 1] z0 + [1 1] z1 + [1 1] z2 + [1 0] z3 + [3] [0 0] [0 0] [0 0] [0 0] [0] = c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) = [3 3] z0 + [2 2] z1 + [3] [3 3] [0 3] [3] >= [3 3] z0 + [0 2] z1 + [3] [3 3] [0 2] [3] = c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) = [1 1] z0 + [0 2] z1 + [1] [1 3] [2 0] [1] >= [1 1] z0 + [1] [0 0] [1] = c_15(DOBFS#(z0,z1)) DFS#(z0,z1) = [0 0] z0 + [0 0] z1 + [0] [0 1] [0 1] [2] >= [0] [0] = c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) = [0 0] z2 + [0] [1 0] [0] >= [0] [0] = c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) = [0 0] z0 + [0 0] z2 + [0] [2 2] [2 2] [1] >= [0] [1] = c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) = [0 0] z1 + [0 0] z2 + [0 0] z3 + [0 0] z5 + [0] [2 2] [2 2] [2 2] [2 2] [3] >= [0] [3] = c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) = [0 0] z1 + [0 0] z3 + [0] [2 0] [1 2] [1] >= [0] [0] = c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) = [1 1] z0 + [0 0] z1 + [1] [1 2] [0 2] [1] >= [1 1] z0 + [1] [0 0] [0] = c_23(BFS#(::(z0,nil()),nil(),z1)) appendreverse(z0,z1) = [1 0] z0 + [1 0] z1 + [0] [0 1] [0 1] [0] >= [1 0] z0 + [1 0] z1 + [0] [0 1] [0 1] [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1 1] z0 + [1 0] z1 + [1 0] z2 + [0] [0 0] [0 1] [0 1] [1] >= [1 1] z0 + [1 0] z1 + [1 0] z2 + [0] [0 0] [0 1] [0 1] [1] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1 0] z0 + [0] [0 1] [0] >= [1 0] z0 + [0] [0 1] [0] = z0 bfs(z0,z1,z2) = [1 0] z0 + [1 0] z1 + [0] [1 0] [1 0] [1] >= [1 0] z0 + [1 0] z1 + [0] [1 0] [1 0] [1] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1 1] z0 + [1 0] z1 + [1 0] z2 + [0] [1 1] [1 0] [1 0] [1] >= [1 0] z0 + [1 0] z1 + [1 0] z2 + [0] [1 0] [1 0] [1 0] [1] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [1 0] z0 + [0] [1 0] [1] >= [1 0] z0 + [0] [1 0] [1] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [1 1] z0 + [1 0] z1 + [0] [1 1] [1 0] [1] >= [1 1] z0 + [1 0] z1 + [0] [1 1] [1 0] [1] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] [1] >= [0] [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1 0] z0 + [1 0] z1 + [0] [1 0] [1 0] [1] >= [1 0] z0 + [1 0] z1 + [0] [1 0] [1 0] [1] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1 1] z1 + [1 1] z2 + [1 0] z3 + [1 0] z4 + [1] [1 1] [1 1] [1 0] [1 0] [2] >= [1 1] z1 + [1 1] z2 + [1 0] z3 + [1 0] z4 + [1] [1 1] [1 1] [1 0] [1 0] [2] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1 0] z0 + [1 1] z1 + [1 1] z2 + [1 0] z3 + [1] [1 0] [1 1] [1 1] [1 0] [2] >= [1 0] z0 + [1 1] z1 + [1 1] z2 + [1 0] z3 + [0] [1 0] [1 1] [1 1] [1 0] [1] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1 0] z0 + [1 1] z1 + [1 1] z2 + [1 0] z3 + [1] [1 0] [1 1] [1 1] [1 0] [2] >= [1 1] z1 + [1 1] z2 + [1] [0 0] [0 0] [2] = node(z5,z1,z2) dobfs(z0,z1) = [1 1] z0 + [0] [1 1] [1] >= [1 1] z0 + [0] [1 1] [1] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [1 0] z0 + [0] [1 2] [2] >= [1 0] z0 + [0] [0 1] [0] = appendreverse(z0,nil()) ** Step 8.a:12: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: BFS#(z0,z1,z2) -> c_5(BFS#1#(z0,z1,z2)) BFS#1#(::(z0,z1),z2,z3) -> c_6(BFS#3#(z0,z2,z1,z3)) BFS#1#(nil(),z0,z1) -> c_7(BFS#2#(z0,z1)) BFS#2#(::(z0,z1),z2) -> c_8(BFS#(reverse(::(z0,z1)),nil(),z2)) BFS#3#(leaf(),z0,z1,z2) -> c_10(BFS#(z1,z0,z2)) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> c_11(BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0)) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> c_12(BFS#(z3,::(z2,::(z1,z0)),z4)) BFS2#(z0,z1) -> c_14(BFS2#1#(dobfs(z0,z1),z1),DOBFS#(z0,z1)) BFS2#1#(z0,z1) -> c_15(DOBFS#(z0,z1)) DFS#(z0,z1) -> c_16(DFS#1#(z0,z1)) DFS#1#(::(z0,z1),z2) -> c_17(DFS#2#(z0,z0,z1,z2)) DFS#2#(leaf(),z0,z1,z2) -> c_19(DFS#(z1,z2)) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> c_20(DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5)) DFS#3#(#false(),z0,z1,z2,z3,z4) -> c_21(DFS#(::(z1,::(z2,z3)),z4)) DOBFS#(z0,z1) -> c_23(BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ** Step 8.b:1: RemoveWeakSuffixes. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - Weak DPs: BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#(z0,z1) -> DOBFS#(z0,z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DFS#(z0,z1) -> DFS#1#(z0,z1) DFS#1#(::(z0,z1),z2) -> DFS#2#(z0,z0,z1,z2) DFS#2#(leaf(),z0,z1,z2) -> DFS#(z1,z2) DFS#2#(node(z0,z1,z2),z3,z4,z5) -> DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) DFS#3#(#false(),z0,z1,z2,z3,z4) -> DFS#(::(z1,::(z2,z3)),z4) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) -->_1 APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))):2 2:S:APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 3:S:REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 4:W:BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) -->_1 BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1):6 -->_1 BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3):5 5:W:BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0):10 -->_1 BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2):9 6:W:BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) -->_1 BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)):8 -->_1 BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2):7 7:W:BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 8:W:BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) -->_1 REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())):3 9:W:BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 10:W:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4):11 11:W:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 12:W:BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) -->_1 BFS2#1#(z0,z1) -> DOBFS#(z0,z1):14 13:W:BFS2#(z0,z1) -> DOBFS#(z0,z1) -->_1 DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1):20 14:W:BFS2#1#(z0,z1) -> DOBFS#(z0,z1) -->_1 DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1):20 15:W:DFS#(z0,z1) -> DFS#1#(z0,z1) -->_1 DFS#1#(::(z0,z1),z2) -> DFS#2#(z0,z0,z1,z2):16 16:W:DFS#1#(::(z0,z1),z2) -> DFS#2#(z0,z0,z1,z2) -->_1 DFS#2#(node(z0,z1,z2),z3,z4,z5) -> DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5):18 -->_1 DFS#2#(leaf(),z0,z1,z2) -> DFS#(z1,z2):17 17:W:DFS#2#(leaf(),z0,z1,z2) -> DFS#(z1,z2) -->_1 DFS#(z0,z1) -> DFS#1#(z0,z1):15 18:W:DFS#2#(node(z0,z1,z2),z3,z4,z5) -> DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) -->_1 DFS#3#(#false(),z0,z1,z2,z3,z4) -> DFS#(::(z1,::(z2,z3)),z4):19 19:W:DFS#3#(#false(),z0,z1,z2,z3,z4) -> DFS#(::(z1,::(z2,z3)),z4) -->_1 DFS#(z0,z1) -> DFS#1#(z0,z1):15 20:W:DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 15: DFS#(z0,z1) -> DFS#1#(z0,z1) 19: DFS#3#(#false(),z0,z1,z2,z3,z4) -> DFS#(::(z1,::(z2,z3)),z4) 18: DFS#2#(node(z0,z1,z2),z3,z4,z5) -> DFS#3#(#equal(z0,z5),z3,z1,z2,z4,z5) 16: DFS#1#(::(z0,z1),z2) -> DFS#2#(z0,z0,z1,z2) 17: DFS#2#(leaf(),z0,z1,z2) -> DFS#(z1,z2) ** Step 8.b:2: RemoveHeads. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - Weak DPs: BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#(z0,z1) -> DOBFS#(z0,z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) -->_1 APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))):2 2:S:APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 3:S:REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) -->_1 APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)):1 4:W:BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) -->_1 BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1):6 -->_1 BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3):5 5:W:BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) -->_1 BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0):10 -->_1 BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2):9 6:W:BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) -->_1 BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)):8 -->_1 BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2):7 7:W:BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 8:W:BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) -->_1 REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())):3 9:W:BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 10:W:BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) -->_1 BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4):11 11:W:BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 12:W:BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) -->_1 BFS2#1#(z0,z1) -> DOBFS#(z0,z1):14 13:W:BFS2#(z0,z1) -> DOBFS#(z0,z1) -->_1 DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1):20 14:W:BFS2#1#(z0,z1) -> DOBFS#(z0,z1) -->_1 DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1):20 20:W:DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) -->_1 BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2):4 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). [(13,BFS2#(z0,z1) -> DOBFS#(z0,z1))] ** Step 8.b:3: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - Weak DPs: BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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_2) = {1}, uargs(c_3) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE#,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4# ,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS#,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1# ,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2#,dfs#3#,dobfs#,dodfs#,reverse#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [5] 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(::) = [0] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [0] p(appendreverse#1) = [0] p(bfs) = [0] p(bfs#1) = [0] p(bfs#2) = [0] p(bfs#3) = [0] p(bfs#4) = [1] p(bfs2) = [0] p(bfs2#1) = [0] p(c) = [1] 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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x1 + [1] x2 + [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [1] x1 + [1] x2 + [0] p(c43) = [0] p(c44) = [1] x1 + [0] p(c45) = [1] x1 + [1] x2 + [0] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [1] x2 + [0] p(c49) = [1] x1 + [0] p(c5) = [0] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [0] p(c52) = [0] p(c53) = [1] x1 + [0] p(c54) = [1] x1 + [1] x2 + [0] p(c55) = [1] x1 + [0] p(c56) = [0] p(c57) = [1] x1 + [0] p(c58) = [1] x1 + [0] p(c59) = [1] x1 + [0] p(c6) = [0] p(c7) = [0] p(c8) = [0] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [0] p(dfs#2) = [0] p(dfs#3) = [0] p(dobfs) = [0] p(dodfs) = [0] p(leaf) = [0] p(nil) = [1] p(node) = [1] x1 + [1] x2 + [1] x3 + [0] p(reverse) = [0] p(#AND#) = [0] p(#EQ#) = [0] p(#EQUAL#) = [0] p(#and#) = [0] p(#eq#) = [0] p(#equal#) = [0] p(APPENDREVERSE#) = [1] x2 + [0] p(APPENDREVERSE#1#) = [0] p(BFS#) = [7] p(BFS#1#) = [7] p(BFS#2#) = [7] p(BFS#3#) = [7] p(BFS#4#) = [7] p(BFS2#) = [7] p(BFS2#1#) = [7] p(DFS#) = [0] p(DFS#1#) = [0] p(DFS#2#) = [0] p(DFS#3#) = [0] p(DOBFS#) = [7] p(DODFS#) = [0] p(REVERSE#) = [7] p(appendreverse#) = [0] p(appendreverse#1#) = [0] p(bfs#) = [0] p(bfs#1#) = [0] p(bfs#2#) = [0] p(bfs#3#) = [0] p(bfs#4#) = [0] p(bfs2#) = [0] p(bfs2#1#) = [0] p(dfs#) = [0] p(dfs#1#) = [0] p(dfs#2#) = [0] p(dfs#3#) = [0] p(dobfs#) = [0] p(dodfs#) = [0] p(reverse#) = [0] p(c_1) = [0] p(c_2) = [4] x1 + [0] p(c_3) = [4] x1 + [0] p(c_4) = [0] p(c_5) = [1] x1 + [0] p(c_6) = [1] x1 + [0] p(c_7) = [0] p(c_8) = [1] x2 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [1] x1 + [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [1] x1 + [0] p(c_20) = [1] x1 + [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [4] x1 + [2] 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) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [1] x1 + [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [2] x1 + [1] x3 + [4] x4 + [0] p(c_43) = [4] x2 + [1] x4 + [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) = [0] p(c_58) = [1] x1 + [4] x2 + [1] x3 + [1] x4 + [4] x5 + [0] p(c_59) = [1] x1 + [1] x3 + [1] x6 + [1] x9 + [0] p(c_60) = [4] x1 + [1] x3 + [1] x6 + [1] x9 + [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) = [0] p(c_68) = [0] p(c_69) = [0] p(c_70) = [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [0] p(c_74) = [1] x1 + [0] p(c_75) = [0] p(c_76) = [4] x1 + [0] p(c_77) = [2] x3 + [0] p(c_78) = [0] p(c_79) = [0] p(c_80) = [0] p(c_81) = [0] p(c_82) = [0] p(c_83) = [0] p(c_84) = [0] p(c_85) = [0] p(c_86) = [0] p(c_87) = [0] p(c_88) = [0] p(c_89) = [0] p(c_90) = [0] p(c_91) = [0] p(c_92) = [1] x2 + [1] x3 + [0] p(c_93) = [1] x1 + [0] p(c_94) = [1] x1 + [0] p(c_95) = [1] x1 + [0] p(c_96) = [0] p(c_97) = [0] p(c_98) = [2] x1 + [0] p(c_99) = [1] x1 + [0] p(c_100) = [1] x1 + [0] p(c_101) = [0] p(c_102) = [1] x1 + [0] p(c_103) = [2] x1 + [0] p(c_104) = [1] x1 + [0] p(c_105) = [0] p(c_106) = [2] x2 + [0] p(c_107) = [1] x1 + [0] p(c_108) = [1] x1 + [0] p(c_109) = [1] x1 + [0] p(c_110) = [0] p(c_111) = [0] p(c_112) = [1] x1 + [4] x2 + [0] p(c_113) = [0] p(c_114) = [0] p(c_115) = [0] p(c_116) = [2] x1 + [0] p(c_117) = [0] Following rules are strictly oriented: REVERSE#(z0) = [7] > [6] = c_25(APPENDREVERSE#(z0,nil())) Following rules are (at-least) weakly oriented: APPENDREVERSE#(z0,z1) = [1] z1 + [0] >= [0] = c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) = [0] >= [0] = c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) = [7] >= [7] = BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) = [7] >= [7] = BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) = [7] >= [7] = BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) = [7] >= [7] = BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) = [7] >= [7] = REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) = [7] >= [7] = BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [7] >= [7] = BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [7] >= [7] = BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) = [7] >= [7] = BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) = [7] >= [7] = DOBFS#(z0,z1) DOBFS#(z0,z1) = [7] >= [7] = BFS#(::(z0,nil()),nil(),z1) ** Step 8.b:4: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) - Weak DPs: BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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_2) = {1}, uargs(c_3) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {appendreverse,appendreverse#1,bfs,bfs#1,bfs#2,bfs#3,bfs#4,dobfs,reverse,#AND#,#EQ#,#EQUAL#,#and#,#eq# ,#equal#,APPENDREVERSE#,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2# ,DFS#3#,DOBFS#,DODFS#,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2# ,bfs2#1#,dfs#,dfs#1#,dfs#2#,dfs#3#,dobfs#,dodfs#,reverse#} TcT has computed the following interpretation: p(#0) = [0] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [0] p(#and) = [4] x1 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [1] x1 + [0] p(#s) = [0] p(#true) = [2] p(::) = [1] x1 + [1] x2 + [2] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [0] p(BFS2) = [0] p(BFS2#1) = [0] p(DFS) = [0] p(DFS#1) = [0] p(DFS#2) = [0] p(DFS#3) = [0] p(DOBFS) = [0] p(DODFS) = [0] p(REVERSE) = [0] p(appendreverse) = [1] x1 + [1] x2 + [0] p(appendreverse#1) = [1] x1 + [1] x2 + [0] p(bfs) = [1] x1 + [1] x2 + [0] p(bfs#1) = [1] x1 + [1] x2 + [0] p(bfs#2) = [1] x1 + [0] p(bfs#3) = [1] x1 + [1] x2 + [1] x3 + [2] p(bfs#4) = [1] x2 + [1] x3 + [1] x4 + [1] x5 + [1] x7 + [4] p(bfs2) = [0] p(bfs2#1) = [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) = [0] p(c22) = [0] p(c23) = [0] p(c24) = [0] p(c25) = [0] p(c26) = [0] p(c27) = [0] p(c28) = [0] p(c29) = [0] p(c3) = [0] p(c30) = [0] p(c31) = [0] p(c32) = [1] x1 + [1] x2 + [0] p(c33) = [1] x1 + [1] x2 + [1] x3 + [0] p(c34) = [1] x3 + [0] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [0] p(c39) = [1] x1 + [0] p(c4) = [0] p(c40) = [1] x1 + [0] p(c41) = [1] x1 + [0] p(c42) = [0] p(c43) = [1] p(c44) = [0] p(c45) = [0] p(c46) = [2] p(c47) = [4] p(c48) = [1] x1 + [0] p(c49) = [1] p(c5) = [0] p(c50) = [0] p(c51) = [1] p(c52) = [1] p(c53) = [1] p(c54) = [1] x2 + [0] p(c55) = [1] p(c56) = [2] p(c57) = [1] p(c58) = [1] x1 + [0] p(c59) = [1] p(c6) = [0] p(c7) = [0] p(c8) = [1] p(c9) = [1] x1 + [0] p(dfs) = [0] p(dfs#1) = [4] x1 + [2] p(dfs#2) = [2] x2 + [2] p(dfs#3) = [2] x4 + [1] x5 + [1] x6 + [1] p(dobfs) = [1] x1 + [2] x2 + [2] p(dodfs) = [1] x2 + [0] p(leaf) = [0] p(nil) = [0] p(node) = [1] x1 + [1] x2 + [1] x3 + [2] p(reverse) = [1] x1 + [0] p(#AND#) = [0] p(#EQ#) = [2] x1 + [1] x2 + [1] p(#EQUAL#) = [4] x1 + [0] p(#and#) = [1] x2 + [0] p(#eq#) = [0] p(#equal#) = [2] x1 + [1] p(APPENDREVERSE#) = [1] x1 + [0] p(APPENDREVERSE#1#) = [1] x1 + [0] p(BFS#) = [1] x1 + [1] x2 + [0] p(BFS#1#) = [1] x1 + [1] x2 + [0] p(BFS#2#) = [1] x1 + [0] p(BFS#3#) = [1] x1 + [1] x2 + [1] x3 + [2] p(BFS#4#) = [1] x2 + [1] x3 + [1] x4 + [1] x5 + [1] x7 + [4] p(BFS2#) = [2] x1 + [5] x2 + [6] p(BFS2#1#) = [2] x1 + [1] x2 + [2] p(DFS#) = [1] p(DFS#1#) = [2] x1 + [0] p(DFS#2#) = [1] x2 + [1] p(DFS#3#) = [1] x2 + [1] x3 + [1] x4 + [2] x5 + [1] p(DOBFS#) = [1] x1 + [1] x2 + [2] p(DODFS#) = [4] x2 + [1] p(REVERSE#) = [1] x1 + [0] p(appendreverse#) = [1] p(appendreverse#1#) = [0] p(bfs#) = [1] x2 + [1] x3 + [1] p(bfs#1#) = [1] x1 + [2] x2 + [1] x3 + [1] p(bfs#2#) = [1] x1 + [0] p(bfs#3#) = [2] x1 + [1] x3 + [1] p(bfs#4#) = [1] x1 + [4] x2 + [4] x3 + [4] x4 + [4] p(bfs2#) = [1] x1 + [0] p(bfs2#1#) = [1] p(dfs#) = [2] x2 + [4] p(dfs#1#) = [1] x1 + [1] x2 + [4] p(dfs#2#) = [2] x2 + [0] p(dfs#3#) = [1] x1 + [1] x2 + [1] x6 + [0] p(dobfs#) = [1] x2 + [0] p(dodfs#) = [1] x1 + [0] p(reverse#) = [1] x1 + [1] p(c_1) = [0] p(c_2) = [1] x1 + [0] p(c_3) = [1] x1 + [0] p(c_4) = [0] p(c_5) = [1] p(c_6) = [1] p(c_7) = [4] x1 + [4] p(c_8) = [1] x1 + [2] x2 + [0] p(c_9) = [1] p(c_10) = [2] x1 + [0] p(c_11) = [0] p(c_12) = [4] x1 + [0] p(c_13) = [4] p(c_14) = [1] x1 + [1] p(c_15) = [2] p(c_16) = [1] x1 + [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [2] p(c_21) = [1] x1 + [0] p(c_22) = [1] p(c_23) = [4] x1 + [2] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [1] p(c_27) = [1] p(c_28) = [1] p(c_29) = [0] p(c_30) = [4] p(c_31) = [1] p(c_32) = [0] p(c_33) = [2] p(c_34) = [1] p(c_35) = [1] x1 + [1] p(c_36) = [2] p(c_37) = [4] p(c_38) = [0] p(c_39) = [1] x1 + [1] p(c_40) = [0] p(c_41) = [0] p(c_42) = [2] x1 + [1] p(c_43) = [1] x1 + [1] x2 + [1] x4 + [4] p(c_44) = [1] p(c_45) = [2] p(c_46) = [1] p(c_47) = [0] p(c_48) = [0] p(c_49) = [2] p(c_50) = [4] p(c_51) = [0] p(c_52) = [4] p(c_53) = [4] p(c_54) = [2] p(c_55) = [4] p(c_56) = [2] p(c_57) = [1] p(c_58) = [1] x2 + [1] x3 + [0] p(c_59) = [1] x2 + [4] x3 + [4] x7 + [2] x9 + [0] p(c_60) = [1] x2 + [2] x4 + [4] x9 + [0] p(c_61) = [2] p(c_62) = [1] p(c_63) = [0] p(c_64) = [1] p(c_65) = [0] p(c_66) = [4] p(c_67) = [4] p(c_68) = [0] p(c_69) = [0] p(c_70) = [2] x1 + [0] p(c_71) = [1] p(c_72) = [1] p(c_73) = [0] p(c_74) = [2] x1 + [1] p(c_75) = [1] p(c_76) = [1] x1 + [1] p(c_77) = [1] x3 + [1] p(c_78) = [1] p(c_79) = [0] p(c_80) = [2] p(c_81) = [0] p(c_82) = [0] p(c_83) = [0] p(c_84) = [1] p(c_85) = [2] p(c_86) = [1] p(c_87) = [2] p(c_88) = [1] p(c_89) = [1] p(c_90) = [1] p(c_91) = [4] p(c_92) = [1] x1 + [2] x4 + [0] p(c_93) = [0] p(c_94) = [4] x1 + [1] p(c_95) = [4] x1 + [0] p(c_96) = [1] p(c_97) = [2] x1 + [4] p(c_98) = [1] x1 + [0] p(c_99) = [0] p(c_100) = [4] x1 + [1] p(c_101) = [0] p(c_102) = [1] x1 + [1] p(c_103) = [1] x2 + [1] p(c_104) = [2] x1 + [2] p(c_105) = [0] p(c_106) = [1] p(c_107) = [0] p(c_108) = [2] x1 + [4] p(c_109) = [2] x1 + [1] p(c_110) = [0] p(c_111) = [0] p(c_112) = [2] x1 + [0] p(c_113) = [4] p(c_114) = [0] p(c_115) = [1] x1 + [4] p(c_116) = [2] p(c_117) = [1] Following rules are strictly oriented: APPENDREVERSE#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] > [1] z1 + [0] = c_3(APPENDREVERSE#(z1,::(z0,z2))) Following rules are (at-least) weakly oriented: APPENDREVERSE#(z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = c_2(APPENDREVERSE#1#(z0,z1)) BFS#(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [2] = BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [0] = BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] = BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [4] = BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) = [2] z0 + [5] z1 + [6] >= [2] z0 + [5] z1 + [6] = BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) = [2] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = DOBFS#(z0,z1) DOBFS#(z0,z1) = [1] z0 + [1] z1 + [2] >= [1] z0 + [2] = BFS#(::(z0,nil()),nil(),z1) REVERSE#(z0) = [1] z0 + [0] >= [1] z0 + [0] = c_25(APPENDREVERSE#(z0,nil())) appendreverse(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [2] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [2] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [4] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [1] z5 + [4] >= [1] z1 + [1] z2 + [1] z5 + [2] = node(z5,z1,z2) dobfs(z0,z1) = [1] z0 + [2] z1 + [2] >= [1] z0 + [2] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [1] z0 + [0] >= [1] z0 + [0] = appendreverse(z0,nil()) ** Step 8.b:5: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) - Weak DPs: APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + 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(bfs) = {1}, uargs(bfs#4) = {1}, uargs(BFS#) = {1}, uargs(BFS#4#) = {1}, uargs(BFS2#1#) = {1}, uargs(c_2) = {1}, uargs(c_3) = {1}, uargs(c_25) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(#0) = [4] p(#AND) = [0] p(#EQ) = [0] p(#EQUAL) = [4] x1 + [0] p(#and) = [1] x1 + [1] x2 + [0] p(#eq) = [0] p(#equal) = [0] p(#false) = [0] p(#neg) = [1] x1 + [0] p(#pos) = [0] p(#s) = [0] p(#true) = [0] p(::) = [1] x1 + [1] x2 + [2] p(APPENDREVERSE) = [0] p(APPENDREVERSE#1) = [0] p(BFS) = [0] p(BFS#1) = [0] p(BFS#2) = [0] p(BFS#3) = [0] p(BFS#4) = [2] x1 + [1] x3 + [1] x4 + [1] x5 + [1] x6 + [1] x7 + [1] p(BFS2) = [1] x1 + [4] x2 + [0] p(BFS2#1) = [2] x2 + [1] p(DFS) = [1] x1 + [1] x2 + [0] p(DFS#1) = [1] x2 + [1] p(DFS#2) = [2] x1 + [4] x2 + [2] x3 + [1] x4 + [0] p(DFS#3) = [1] x3 + [1] x4 + [1] x5 + [1] x6 + [2] p(DOBFS) = [2] p(DODFS) = [2] x2 + [2] p(REVERSE) = [0] p(appendreverse) = [1] x1 + [1] x2 + [0] p(appendreverse#1) = [1] x1 + [1] x2 + [0] p(bfs) = [1] x1 + [1] x2 + [0] p(bfs#1) = [1] x1 + [1] x2 + [0] p(bfs#2) = [1] x1 + [0] p(bfs#3) = [1] x1 + [1] x2 + [1] x3 + [0] p(bfs#4) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [4] p(bfs2) = [1] x1 + [1] x2 + [1] p(bfs2#1) = [1] x1 + [2] p(c) = [1] p(c1) = [4] p(c10) = [0] p(c11) = [1] p(c12) = [0] p(c13) = [1] p(c14) = [4] p(c15) = [1] x1 + [4] p(c16) = [1] x2 + [0] p(c17) = [0] p(c18) = [0] p(c19) = [1] p(c2) = [0] p(c20) = [0] p(c21) = [0] p(c22) = [1] p(c23) = [0] p(c24) = [0] p(c25) = [1] p(c26) = [4] p(c27) = [4] p(c28) = [1] p(c29) = [1] p(c3) = [1] p(c30) = [1] p(c31) = [2] p(c32) = [1] p(c33) = [1] x3 + [4] p(c34) = [1] x2 + [2] p(c35) = [1] x1 + [0] p(c36) = [1] x1 + [0] p(c37) = [1] x1 + [0] p(c38) = [4] p(c39) = [1] x1 + [0] p(c4) = [1] p(c40) = [1] x1 + [2] p(c41) = [1] x1 + [1] p(c42) = [0] p(c43) = [2] p(c44) = [2] p(c45) = [1] x1 + [4] p(c46) = [1] x1 + [0] p(c47) = [0] p(c48) = [1] x1 + [0] p(c49) = [1] x1 + [0] p(c5) = [2] p(c50) = [1] x1 + [0] p(c51) = [1] x1 + [1] p(c52) = [2] p(c53) = [1] x1 + [1] p(c54) = [1] x1 + [1] x2 + [1] p(c55) = [1] x1 + [2] p(c56) = [0] p(c57) = [0] p(c58) = [1] x1 + [0] p(c59) = [1] p(c6) = [4] p(c7) = [0] p(c8) = [0] p(c9) = [0] p(dfs) = [4] x2 + [0] p(dfs#1) = [1] x1 + [2] x2 + [0] p(dfs#2) = [4] x1 + [1] x2 + [1] x3 + [0] p(dfs#3) = [1] x4 + [1] x6 + [0] p(dobfs) = [2] x1 + [5] x2 + [2] p(dodfs) = [4] x1 + [1] p(leaf) = [0] p(nil) = [0] p(node) = [1] x2 + [1] x3 + [4] p(reverse) = [1] x1 + [0] p(#AND#) = [2] x2 + [1] p(#EQ#) = [1] x1 + [0] p(#EQUAL#) = [2] p(#and#) = [1] x2 + [1] p(#eq#) = [4] x1 + [4] p(#equal#) = [1] x2 + [0] p(APPENDREVERSE#) = [1] x1 + [1] p(APPENDREVERSE#1#) = [1] x1 + [0] p(BFS#) = [1] x1 + [1] x2 + [1] p(BFS#1#) = [1] x1 + [1] x2 + [1] p(BFS#2#) = [1] x1 + [1] p(BFS#3#) = [1] x1 + [1] x2 + [1] x3 + [3] p(BFS#4#) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] x5 + [5] p(BFS2#) = [2] x1 + [5] x2 + [6] p(BFS2#1#) = [1] x1 + [3] p(DFS#) = [1] x1 + [2] x2 + [1] p(DFS#1#) = [1] x1 + [4] p(DFS#2#) = [4] x1 + [1] x3 + [4] p(DFS#3#) = [4] x1 + [1] x2 + [1] x6 + [0] p(DOBFS#) = [1] x1 + [3] p(DODFS#) = [2] x1 + [4] x2 + [0] p(REVERSE#) = [1] x1 + [1] p(appendreverse#) = [1] x1 + [1] x2 + [4] p(appendreverse#1#) = [1] x2 + [1] p(bfs#) = [4] x2 + [0] p(bfs#1#) = [1] x1 + [1] p(bfs#2#) = [1] x2 + [0] p(bfs#3#) = [1] x2 + [1] x3 + [2] p(bfs#4#) = [1] x1 + [4] x2 + [2] x5 + [2] x6 + [1] x7 + [4] p(bfs2#) = [4] x1 + [0] p(bfs2#1#) = [4] x1 + [1] x2 + [4] p(dfs#) = [4] x1 + [0] p(dfs#1#) = [1] x2 + [1] p(dfs#2#) = [4] x2 + [4] x3 + [1] p(dfs#3#) = [2] x2 + [1] x6 + [2] p(dobfs#) = [4] x1 + [2] p(dodfs#) = [4] x1 + [1] x2 + [1] p(reverse#) = [1] x1 + [1] p(c_1) = [1] x1 + [4] p(c_2) = [1] x1 + [0] p(c_3) = [1] x1 + [0] p(c_4) = [2] p(c_5) = [1] p(c_6) = [0] p(c_7) = [1] x1 + [1] p(c_8) = [1] p(c_9) = [0] p(c_10) = [4] x1 + [0] p(c_11) = [2] x1 + [1] p(c_12) = [2] x1 + [1] p(c_13) = [1] p(c_14) = [4] x1 + [0] p(c_15) = [2] x1 + [1] p(c_16) = [1] x1 + [0] p(c_17) = [4] x1 + [1] p(c_18) = [0] p(c_19) = [2] p(c_20) = [1] p(c_21) = [1] x1 + [0] p(c_22) = [1] p(c_23) = [1] x1 + [1] p(c_24) = [4] x1 + [0] p(c_25) = [1] x1 + [0] p(c_26) = [0] p(c_27) = [1] p(c_28) = [0] p(c_29) = [1] p(c_30) = [4] p(c_31) = [0] p(c_32) = [1] p(c_33) = [0] p(c_34) = [1] p(c_35) = [1] x1 + [0] p(c_36) = [0] p(c_37) = [1] p(c_38) = [1] p(c_39) = [2] x1 + [0] p(c_40) = [1] p(c_41) = [4] p(c_42) = [2] x1 + [2] x2 + [0] p(c_43) = [1] x1 + [1] x2 + [1] x3 + [1] x4 + [1] p(c_44) = [4] p(c_45) = [0] p(c_46) = [4] p(c_47) = [0] p(c_48) = [4] p(c_49) = [4] p(c_50) = [4] p(c_51) = [4] p(c_52) = [1] p(c_53) = [4] p(c_54) = [2] p(c_55) = [0] p(c_56) = [0] p(c_57) = [0] p(c_58) = [1] x1 + [4] x2 + [0] p(c_59) = [1] x2 + [1] x3 + [1] x4 + [2] x7 + [1] p(c_60) = [1] x1 + [1] x3 + [1] x6 + [1] x7 + [1] x9 + [0] p(c_61) = [1] p(c_62) = [1] p(c_63) = [1] p(c_64) = [4] p(c_65) = [1] p(c_66) = [1] p(c_67) = [2] p(c_68) = [0] p(c_69) = [0] p(c_70) = [2] x1 + [0] p(c_71) = [0] p(c_72) = [0] p(c_73) = [1] p(c_74) = [1] x1 + [4] p(c_75) = [1] p(c_76) = [1] x1 + [0] p(c_77) = [2] x1 + [1] x2 + [4] p(c_78) = [4] p(c_79) = [4] p(c_80) = [0] p(c_81) = [2] p(c_82) = [1] p(c_83) = [0] p(c_84) = [4] p(c_85) = [1] p(c_86) = [4] p(c_87) = [0] p(c_88) = [0] p(c_89) = [1] p(c_90) = [4] p(c_91) = [2] p(c_92) = [1] x1 + [2] x2 + [4] x3 + [0] p(c_93) = [2] p(c_94) = [2] x1 + [1] p(c_95) = [2] x1 + [0] p(c_96) = [0] p(c_97) = [1] x1 + [1] p(c_98) = [1] p(c_99) = [1] p(c_100) = [2] x2 + [1] p(c_101) = [4] p(c_102) = [0] p(c_103) = [1] x1 + [0] p(c_104) = [0] p(c_105) = [4] p(c_106) = [1] p(c_107) = [1] x1 + [0] p(c_108) = [4] x1 + [0] p(c_109) = [4] x1 + [2] p(c_110) = [0] p(c_111) = [4] p(c_112) = [1] x2 + [4] p(c_113) = [2] x1 + [0] p(c_114) = [1] p(c_115) = [4] x1 + [1] p(c_116) = [1] x1 + [0] p(c_117) = [1] Following rules are strictly oriented: APPENDREVERSE#(z0,z1) = [1] z0 + [1] > [1] z0 + [0] = c_2(APPENDREVERSE#1#(z0,z1)) Following rules are (at-least) weakly oriented: APPENDREVERSE#1#(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z1 + [1] = c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) = [1] z0 + [1] z1 + [1] >= [1] z0 + [1] z1 + [1] = BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [3] >= [1] z0 + [1] z1 + [1] z2 + [3] = BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) = [1] z0 + [1] >= [1] z0 + [1] = BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [3] >= [1] z0 + [1] z1 + [3] = BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) = [1] z0 + [1] z1 + [3] >= [1] z0 + [1] z1 + [3] = REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [3] >= [1] z0 + [1] z1 + [1] = BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) = [1] z1 + [1] z2 + [1] z3 + [1] z4 + [7] >= [1] z1 + [1] z2 + [1] z3 + [1] z4 + [5] = BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [5] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [5] = BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) = [2] z0 + [5] z1 + [6] >= [2] z0 + [5] z1 + [5] = BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) = [1] z0 + [3] >= [1] z0 + [3] = DOBFS#(z0,z1) DOBFS#(z0,z1) = [1] z0 + [3] >= [1] z0 + [3] = BFS#(::(z0,nil()),nil(),z1) REVERSE#(z0) = [1] z0 + [1] >= [1] z0 + [1] = c_25(APPENDREVERSE#(z0,nil())) #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),leaf()) = [0] >= [0] = #false() #eq(::(z0,z1),nil()) = [0] >= [0] = #false() #eq(::(z0,z1),node(z2,z3,z4)) = [0] >= [0] = #false() #eq(leaf(),::(z0,z1)) = [0] >= [0] = #false() #eq(leaf(),leaf()) = [0] >= [0] = #true() #eq(leaf(),nil()) = [0] >= [0] = #false() #eq(leaf(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(nil(),::(z0,z1)) = [0] >= [0] = #false() #eq(nil(),leaf()) = [0] >= [0] = #false() #eq(nil(),nil()) = [0] >= [0] = #true() #eq(nil(),node(z0,z1,z2)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),::(z3,z4)) = [0] >= [0] = #false() #eq(node(z0,z1,z2),leaf()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),nil()) = [0] >= [0] = #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) = [0] >= [0] = #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) = [0] >= [0] = #eq(z0,z1) appendreverse(z0,z1) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [2] = appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) = [1] z0 + [0] >= [1] z0 + [0] = z0 bfs(z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) = [1] z0 + [1] z1 + [1] z2 + [2] >= [1] z0 + [1] z1 + [1] z2 + [0] = bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) = [1] z0 + [0] >= [1] z0 + [0] = bfs#2(z0,z1) bfs#2(::(z0,z1),z2) = [1] z0 + [1] z1 + [2] >= [1] z0 + [1] z1 + [2] = bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) = [0] >= [0] = leaf() bfs#3(leaf(),z0,z1,z2) = [1] z0 + [1] z1 + [0] >= [1] z0 + [1] z1 + [0] = bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) = [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] >= [1] z1 + [1] z2 + [1] z3 + [1] z4 + [4] = bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [4] >= [1] z0 + [1] z1 + [1] z2 + [1] z3 + [4] = bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) = [1] z0 + [1] z1 + [1] z2 + [1] z3 + [4] >= [1] z1 + [1] z2 + [4] = node(z5,z1,z2) dobfs(z0,z1) = [2] z0 + [5] z1 + [2] >= [1] z0 + [2] = bfs(::(z0,nil()),nil(),z1) reverse(z0) = [1] z0 + [0] >= [1] z0 + [0] = appendreverse(z0,nil()) Further, it can be verified that all rules not oriented are covered by the weightgap condition. ** Step 8.b:6: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: APPENDREVERSE#(z0,z1) -> c_2(APPENDREVERSE#1#(z0,z1)) APPENDREVERSE#1#(::(z0,z1),z2) -> c_3(APPENDREVERSE#(z1,::(z0,z2))) BFS#(z0,z1,z2) -> BFS#1#(z0,z1,z2) BFS#1#(::(z0,z1),z2,z3) -> BFS#3#(z0,z2,z1,z3) BFS#1#(nil(),z0,z1) -> BFS#2#(z0,z1) BFS#2#(::(z0,z1),z2) -> BFS#(reverse(::(z0,z1)),nil(),z2) BFS#2#(::(z0,z1),z2) -> REVERSE#(::(z0,z1)) BFS#3#(leaf(),z0,z1,z2) -> BFS#(z1,z0,z2) BFS#3#(node(z0,z1,z2),z3,z4,z5) -> BFS#4#(#equal(z5,z0),z3,z1,z2,z4,z5,z0) BFS#4#(#false(),z0,z1,z2,z3,z4,z5) -> BFS#(z3,::(z2,::(z1,z0)),z4) BFS2#(z0,z1) -> BFS2#1#(dobfs(z0,z1),z1) BFS2#1#(z0,z1) -> DOBFS#(z0,z1) DOBFS#(z0,z1) -> BFS#(::(z0,nil()),nil(),z1) REVERSE#(z0) -> c_25(APPENDREVERSE#(z0,nil())) - 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),leaf()) -> #false() #eq(::(z0,z1),nil()) -> #false() #eq(::(z0,z1),node(z2,z3,z4)) -> #false() #eq(leaf(),::(z0,z1)) -> #false() #eq(leaf(),leaf()) -> #true() #eq(leaf(),nil()) -> #false() #eq(leaf(),node(z0,z1,z2)) -> #false() #eq(nil(),::(z0,z1)) -> #false() #eq(nil(),leaf()) -> #false() #eq(nil(),nil()) -> #true() #eq(nil(),node(z0,z1,z2)) -> #false() #eq(node(z0,z1,z2),::(z3,z4)) -> #false() #eq(node(z0,z1,z2),leaf()) -> #false() #eq(node(z0,z1,z2),nil()) -> #false() #eq(node(z0,z1,z2),node(z3,z4,z5)) -> #and(#eq(z0,z3),#and(#eq(z1,z4),#eq(z2,z5))) #equal(z0,z1) -> #eq(z0,z1) appendreverse(z0,z1) -> appendreverse#1(z0,z1) appendreverse#1(::(z0,z1),z2) -> appendreverse(z1,::(z0,z2)) appendreverse#1(nil(),z0) -> z0 bfs(z0,z1,z2) -> bfs#1(z0,z1,z2) bfs#1(::(z0,z1),z2,z3) -> bfs#3(z0,z2,z1,z3) bfs#1(nil(),z0,z1) -> bfs#2(z0,z1) bfs#2(::(z0,z1),z2) -> bfs(reverse(::(z0,z1)),nil(),z2) bfs#2(nil(),z0) -> leaf() bfs#3(leaf(),z0,z1,z2) -> bfs(z1,z0,z2) bfs#3(node(z0,z1,z2),z3,z4,z5) -> bfs#4(#equal(z5,z0),z3,z1,z2,z4,z5,z0) bfs#4(#false(),z0,z1,z2,z3,z4,z5) -> bfs(z3,::(z2,::(z1,z0)),z4) bfs#4(#true(),z0,z1,z2,z3,z4,z5) -> node(z5,z1,z2) dobfs(z0,z1) -> bfs(::(z0,nil()),nil(),z1) reverse(z0) -> appendreverse(z0,nil()) - Signature: {#AND/2,#EQ/2,#EQUAL/2,#and/2,#eq/2,#equal/2,APPENDREVERSE/2,APPENDREVERSE#1/2,BFS/3,BFS#1/3,BFS#2/2,BFS#3/4 ,BFS#4/7,BFS2/2,BFS2#1/2,DFS/2,DFS#1/2,DFS#2/4,DFS#3/6,DOBFS/2,DODFS/2,REVERSE/1,appendreverse/2 ,appendreverse#1/2,bfs/3,bfs#1/3,bfs#2/2,bfs#3/4,bfs#4/7,bfs2/2,bfs2#1/2,dfs/2,dfs#1/2,dfs#2/4,dfs#3/6 ,dobfs/2,dodfs/2,reverse/1,#AND#/2,#EQ#/2,#EQUAL#/2,#and#/2,#eq#/2,#equal#/2,APPENDREVERSE#/2 ,APPENDREVERSE#1#/2,BFS#/3,BFS#1#/3,BFS#2#/2,BFS#3#/4,BFS#4#/7,BFS2#/2,BFS2#1#/2,DFS#/2,DFS#1#/2,DFS#2#/4 ,DFS#3#/6,DOBFS#/2,DODFS#/2,REVERSE#/1,appendreverse#/2,appendreverse#1#/2,bfs#/3,bfs#1#/3,bfs#2#/2,bfs#3#/4 ,bfs#4#/7,bfs2#/2,bfs2#1#/2,dfs#/2,dfs#1#/2,dfs#2#/4,dfs#3#/6,dobfs#/2,dodfs#/2,reverse#/1} / {#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/0,c22/0,c23/0,c24/0,c25/0,c26/0,c27/0,c28/0,c29/0,c3/0,c30/0,c31/0,c32/2,c33/3,c34/3,c35/1,c36/1 ,c37/1,c38/0,c39/1,c4/0,c40/1,c41/1,c42/2,c43/0,c44/1,c45/2,c46/1,c47/0,c48/2,c49/1,c5/0,c50/1,c51/1,c52/0 ,c53/1,c54/2,c55/1,c56/0,c57/1,c58/1,c59/1,c6/0,c7/0,c8/0,c9/1,leaf/0,nil/0,node/3,c_1/1,c_2/1,c_3/1,c_4/0 ,c_5/1,c_6/1,c_7/1,c_8/2,c_9/0,c_10/1,c_11/1,c_12/1,c_13/0,c_14/2,c_15/1,c_16/1,c_17/1,c_18/0,c_19/1,c_20/1 ,c_21/1,c_22/0,c_23/1,c_24/1,c_25/1,c_26/0,c_27/0,c_28/0,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/1 ,c_36/0,c_37/0,c_38/0,c_39/1,c_40/0,c_41/1,c_42/4,c_43/4,c_44/0,c_45/0,c_46/0,c_47/0,c_48/0,c_49/0,c_50/0 ,c_51/0,c_52/0,c_53/0,c_54/0,c_55/0,c_56/0,c_57/0,c_58/6,c_59/9,c_60/9,c_61/0,c_62/0,c_63/0,c_64/0,c_65/0 ,c_66/0,c_67/0,c_68/0,c_69/0,c_70/1,c_71/0,c_72/0,c_73/0,c_74/1,c_75/0,c_76/1,c_77/3,c_78/0,c_79/0,c_80/0 ,c_81/0,c_82/0,c_83/0,c_84/0,c_85/0,c_86/0,c_87/0,c_88/0,c_89/0,c_90/0,c_91/0,c_92/5,c_93/1,c_94/1,c_95/1 ,c_96/0,c_97/1,c_98/1,c_99/1,c_100/2,c_101/0,c_102/1,c_103/2,c_104/1,c_105/0,c_106/2,c_107/1,c_108/1,c_109/1 ,c_110/0,c_111/1,c_112/2,c_113/1,c_114/0,c_115/1,c_116/1,c_117/1} - Obligation: innermost runtime complexity wrt. defined symbols {#AND#,#EQ#,#EQUAL#,#and#,#eq#,#equal#,APPENDREVERSE# ,APPENDREVERSE#1#,BFS#,BFS#1#,BFS#2#,BFS#3#,BFS#4#,BFS2#,BFS2#1#,DFS#,DFS#1#,DFS#2#,DFS#3#,DOBFS#,DODFS# ,REVERSE#,appendreverse#,appendreverse#1#,bfs#,bfs#1#,bfs#2#,bfs#3#,bfs#4#,bfs2#,bfs2#1#,dfs#,dfs#1#,dfs#2# ,dfs#3#,dobfs#,dodfs#,reverse#} 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,c39 ,c4,c40,c41,c42,c43,c44,c45,c46,c47,c48,c49,c5,c50,c51,c52,c53,c54,c55,c56,c57,c58,c59,c6,c7,c8,c9,leaf,nil ,node} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^3))