YES Problem: ite(tt(),u,v) -> u ite(ff(),u,v) -> v find(u,v,nil()) -> ff() find(u,v,cons(cons(u,v),E)) -> tt() find(u,v,cons(cons(u2,v2),E)) -> find(u,v,E) complete(u,nil(),E) -> tt() complete(u,cons(v,S),E) -> ite(find(u,v,E),complete(u,S,E),ff()) clique(nil(),E) -> tt() clique(cons(u,K),E) -> ite(complete(u,K,E),clique(K,E),ff()) choice(nil(),K,E) -> ite(clique(K,E),K,nil()) choice(cons(u,S),K,E) -> choice(S,cons(u,K),E) choice(cons(u,S),K,E) -> choice(S,K,E) Proof: DP Processor: DPs: find#(u,v,cons(cons(u2,v2),E)) -> find#(u,v,E) complete#(u,cons(v,S),E) -> complete#(u,S,E) complete#(u,cons(v,S),E) -> find#(u,v,E) complete#(u,cons(v,S),E) -> ite#(find(u,v,E),complete(u,S,E),ff()) clique#(cons(u,K),E) -> clique#(K,E) clique#(cons(u,K),E) -> complete#(u,K,E) clique#(cons(u,K),E) -> ite#(complete(u,K,E),clique(K,E),ff()) choice#(nil(),K,E) -> clique#(K,E) choice#(nil(),K,E) -> ite#(clique(K,E),K,nil()) choice#(cons(u,S),K,E) -> choice#(S,cons(u,K),E) choice#(cons(u,S),K,E) -> choice#(S,K,E) TRS: ite(tt(),u,v) -> u ite(ff(),u,v) -> v find(u,v,nil()) -> ff() find(u,v,cons(cons(u,v),E)) -> tt() find(u,v,cons(cons(u2,v2),E)) -> find(u,v,E) complete(u,nil(),E) -> tt() complete(u,cons(v,S),E) -> ite(find(u,v,E),complete(u,S,E),ff()) clique(nil(),E) -> tt() clique(cons(u,K),E) -> ite(complete(u,K,E),clique(K,E),ff()) choice(nil(),K,E) -> ite(clique(K,E),K,nil()) choice(cons(u,S),K,E) -> choice(S,cons(u,K),E) choice(cons(u,S),K,E) -> choice(S,K,E) Usable Rule Processor: DPs: find#(u,v,cons(cons(u2,v2),E)) -> find#(u,v,E) complete#(u,cons(v,S),E) -> complete#(u,S,E) complete#(u,cons(v,S),E) -> find#(u,v,E) complete#(u,cons(v,S),E) -> ite#(find(u,v,E),complete(u,S,E),ff()) clique#(cons(u,K),E) -> clique#(K,E) clique#(cons(u,K),E) -> complete#(u,K,E) clique#(cons(u,K),E) -> ite#(complete(u,K,E),clique(K,E),ff()) choice#(nil(),K,E) -> clique#(K,E) choice#(nil(),K,E) -> ite#(clique(K,E),K,nil()) choice#(cons(u,S),K,E) -> choice#(S,cons(u,K),E) choice#(cons(u,S),K,E) -> choice#(S,K,E) TRS: complete(u,nil(),E) -> tt() complete(u,cons(v,S),E) -> ite(find(u,v,E),complete(u,S,E),ff()) ite(tt(),u,v) -> u ite(ff(),u,v) -> v find(u,v,nil()) -> ff() find(u,v,cons(cons(u,v),E)) -> tt() find(u,v,cons(cons(u2,v2),E)) -> find(u,v,E) clique(nil(),E) -> tt() clique(cons(u,K),E) -> ite(complete(u,K,E),clique(K,E),ff()) Matrix Interpretation Processor: dim=1 usable rules: complete(u,nil(),E) -> tt() complete(u,cons(v,S),E) -> ite(find(u,v,E),complete(u,S,E),ff()) ite(tt(),u,v) -> u ite(ff(),u,v) -> v find(u,v,nil()) -> ff() find(u,v,cons(cons(u,v),E)) -> tt() find(u,v,cons(cons(u2,v2),E)) -> find(u,v,E) clique(nil(),E) -> tt() clique(cons(u,K),E) -> ite(complete(u,K,E),clique(K,E),ff()) interpretation: [choice#](x0, x1, x2) = 5x0 + 3x1 + 6x2 + 3, [clique#](x0, x1) = 3x0 + 6x1, [complete#](x0, x1, x2) = x1 + 3x2 + 2, [find#](x0, x1, x2) = 3x2, [ite#](x0, x1, x2) = 3x1, [clique](x0, x1) = x0, [complete](x0, x1, x2) = x2 + 2, [cons](x0, x1) = x1 + 5, [find](x0, x1, x2) = 4x2 + 2, [nil] = 0, [ff] = 0, [ite](x0, x1, x2) = x1 + 2x2, [tt] = 0 orientation: find#(u,v,cons(cons(u2,v2),E)) = 3E + 15 >= 3E = find#(u,v,E) complete#(u,cons(v,S),E) = 3E + S + 7 >= 3E + S + 2 = complete#(u,S,E) complete#(u,cons(v,S),E) = 3E + S + 7 >= 3E = find#(u,v,E) complete#(u,cons(v,S),E) = 3E + S + 7 >= 3E + 6 = ite#(find(u,v,E),complete(u,S,E),ff()) clique#(cons(u,K),E) = 6E + 3K + 15 >= 6E + 3K = clique#(K,E) clique#(cons(u,K),E) = 6E + 3K + 15 >= 3E + K + 2 = complete#(u,K,E) clique#(cons(u,K),E) = 6E + 3K + 15 >= 3K = ite#(complete(u,K,E),clique(K,E),ff()) choice#(nil(),K,E) = 6E + 3K + 3 >= 6E + 3K = clique#(K,E) choice#(nil(),K,E) = 6E + 3K + 3 >= 3K = ite#(clique(K,E),K,nil()) choice#(cons(u,S),K,E) = 6E + 3K + 5S + 28 >= 6E + 3K + 5S + 18 = choice#(S,cons(u,K),E) choice#(cons(u,S),K,E) = 6E + 3K + 5S + 28 >= 6E + 3K + 5S + 3 = choice#(S,K,E) complete(u,nil(),E) = E + 2 >= 0 = tt() complete(u,cons(v,S),E) = E + 2 >= E + 2 = ite(find(u,v,E),complete(u,S,E),ff()) ite(tt(),u,v) = u + 2v >= u = u ite(ff(),u,v) = u + 2v >= v = v find(u,v,nil()) = 2 >= 0 = ff() find(u,v,cons(cons(u,v),E)) = 4E + 22 >= 0 = tt() find(u,v,cons(cons(u2,v2),E)) = 4E + 22 >= 4E + 2 = find(u,v,E) clique(nil(),E) = 0 >= 0 = tt() clique(cons(u,K),E) = K + 5 >= K = ite(complete(u,K,E),clique(K,E),ff()) problem: DPs: TRS: complete(u,nil(),E) -> tt() complete(u,cons(v,S),E) -> ite(find(u,v,E),complete(u,S,E),ff()) ite(tt(),u,v) -> u ite(ff(),u,v) -> v find(u,v,nil()) -> ff() find(u,v,cons(cons(u,v),E)) -> tt() find(u,v,cons(cons(u2,v2),E)) -> find(u,v,E) clique(nil(),E) -> tt() clique(cons(u,K),E) -> ite(complete(u,K,E),clique(K,E),ff()) Qed