YES Problem: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Proof: DP Processor: DPs: a__f#(g(X),Y) -> mark#(X) a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) TDG Processor: DPs: a__f#(g(X),Y) -> mark#(X) a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) graph: mark#(f(X1,X2)) -> mark#(X1) -> mark#(g(X)) -> mark#(X) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) -> a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) -> a__f#(g(X),Y) -> mark#(X) mark#(g(X)) -> mark#(X) -> mark#(g(X)) -> mark#(X) mark#(g(X)) -> mark#(X) -> mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) -> mark#(f(X1,X2)) -> mark#(X1) a__f#(g(X),Y) -> mark#(X) -> mark#(g(X)) -> mark#(X) a__f#(g(X),Y) -> mark#(X) -> mark#(f(X1,X2)) -> a__f#(mark(X1),X2) a__f#(g(X),Y) -> mark#(X) -> mark#(f(X1,X2)) -> mark#(X1) a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) -> a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) -> a__f#(g(X),Y) -> mark#(X) Arctic Interpretation Processor: dimension: 1 usable rules: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) interpretation: [mark#](x0) = x0, [a__f#](x0, x1) = 7x0 + x1, [f](x0, x1) = 7x0 + x1, [mark](x0) = x0, [a__f](x0, x1) = 7x0 + x1, [g](x0) = x0 + -7 orientation: a__f#(g(X),Y) = 7X + Y + 0 >= X = mark#(X) a__f#(g(X),Y) = 7X + Y + 0 >= 7X + Y + 0 = a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) = 7X1 + X2 >= X1 = mark#(X1) mark#(f(X1,X2)) = 7X1 + X2 >= 7X1 + X2 = a__f#(mark(X1),X2) mark#(g(X)) = X + -7 >= X = mark#(X) a__f(g(X),Y) = 7X + Y + 0 >= 7X + Y + 0 = a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) = 7X1 + X2 >= 7X1 + X2 = a__f(mark(X1),X2) mark(g(X)) = X + -7 >= X + -7 = g(mark(X)) a__f(X1,X2) = 7X1 + X2 >= 7X1 + X2 = f(X1,X2) problem: DPs: a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Restore Modifier: DPs: a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) mark#(f(X1,X2)) -> a__f#(mark(X1),X2) mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) SCC Processor: #sccs: 2 #rules: 2 #arcs: 13/9 DPs: mark#(g(X)) -> mark#(X) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Subterm Criterion Processor: simple projection: pi(mark#) = 0 problem: DPs: TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Qed DPs: a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Arctic Interpretation Processor: dimension: 1 usable rules: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) interpretation: [a__f#](x0, x1) = 3x0 + x1, [f](x0, x1) = x0 + -4x1, [mark](x0) = x0, [a__f](x0, x1) = x0 + -4x1, [g](x0) = 3x0 orientation: a__f#(g(X),Y) = 6X + Y >= 3X + -4Y = a__f#(mark(X),f(g(X),Y)) a__f(g(X),Y) = 3X + -4Y >= X + -8Y = a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) = X1 + -4X2 >= X1 + -4X2 = a__f(mark(X1),X2) mark(g(X)) = 3X >= 3X = g(mark(X)) a__f(X1,X2) = X1 + -4X2 >= X1 + -4X2 = f(X1,X2) problem: DPs: TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) Qed