MAYBE Problem: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Proof: DP Processor: DPs: active#(f(X,X)) -> f#(a(),b()) active#(f(X,X)) -> mark#(f(a(),b())) active#(b()) -> mark#(a()) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> f#(mark(X1),X2) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) mark#(a()) -> active#(a()) mark#(b()) -> active#(b()) f#(mark(X1),X2) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) TDG Processor: DPs: active#(f(X,X)) -> f#(a(),b()) active#(f(X,X)) -> mark#(f(a(),b())) active#(b()) -> mark#(a()) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> f#(mark(X1),X2) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) mark#(a()) -> active#(a()) mark#(b()) -> active#(b()) f#(mark(X1),X2) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) graph: mark#(b()) -> active#(b()) -> active#(b()) -> mark#(a()) mark#(b()) -> active#(b()) -> active#(f(X,X)) -> mark#(f(a(),b())) mark#(b()) -> active#(b()) -> active#(f(X,X)) -> f#(a(),b()) mark#(a()) -> active#(a()) -> active#(b()) -> mark#(a()) mark#(a()) -> active#(a()) -> active#(f(X,X)) -> mark#(f(a(),b())) mark#(a()) -> active#(a()) -> active#(f(X,X)) -> f#(a(),b()) mark#(f(X1,X2)) -> mark#(X1) -> mark#(b()) -> active#(b()) mark#(f(X1,X2)) -> mark#(X1) -> mark#(a()) -> active#(a()) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> f#(mark(X1),X2) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> f#(mark(X1),X2) -> f#(X1,active(X2)) -> f#(X1,X2) mark#(f(X1,X2)) -> f#(mark(X1),X2) -> f#(active(X1),X2) -> f#(X1,X2) mark#(f(X1,X2)) -> f#(mark(X1),X2) -> f#(X1,mark(X2)) -> f#(X1,X2) mark#(f(X1,X2)) -> f#(mark(X1),X2) -> f#(mark(X1),X2) -> f#(X1,X2) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) -> active#(b()) -> mark#(a()) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) -> active#(f(X,X)) -> mark#(f(a(),b())) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) -> active#(f(X,X)) -> f#(a(),b()) f#(mark(X1),X2) -> f#(X1,X2) -> f#(X1,active(X2)) -> f#(X1,X2) f#(mark(X1),X2) -> f#(X1,X2) -> f#(active(X1),X2) -> f#(X1,X2) f#(mark(X1),X2) -> f#(X1,X2) -> f#(X1,mark(X2)) -> f#(X1,X2) f#(mark(X1),X2) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) -> f#(X1,active(X2)) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) -> f#(active(X1),X2) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) -> f#(X1,mark(X2)) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) -> f#(X1,active(X2)) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) -> f#(active(X1),X2) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) -> f#(X1,mark(X2)) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) -> f#(X1,active(X2)) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) -> f#(active(X1),X2) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) -> f#(X1,mark(X2)) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) -> f#(mark(X1),X2) -> f#(X1,X2) active#(b()) -> mark#(a()) -> mark#(b()) -> active#(b()) active#(b()) -> mark#(a()) -> mark#(a()) -> active#(a()) active#(b()) -> mark#(a()) -> mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(b()) -> mark#(a()) -> mark#(f(X1,X2)) -> f#(mark(X1),X2) active#(b()) -> mark#(a()) -> mark#(f(X1,X2)) -> mark#(X1) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(b()) -> active#(b()) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(a()) -> active#(a()) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(f(X1,X2)) -> f#(mark(X1),X2) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(f(X1,X2)) -> mark#(X1) active#(f(X,X)) -> f#(a(),b()) -> f#(X1,active(X2)) -> f#(X1,X2) active#(f(X,X)) -> f#(a(),b()) -> f#(active(X1),X2) -> f#(X1,X2) active#(f(X,X)) -> f#(a(),b()) -> f#(X1,mark(X2)) -> f#(X1,X2) active#(f(X,X)) -> f#(a(),b()) -> f#(mark(X1),X2) -> f#(X1,X2) SCC Processor: #sccs: 2 #rules: 10 #arcs: 48/144 DPs: mark#(b()) -> active#(b()) active#(f(X,X)) -> mark#(f(a(),b())) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(b()) -> mark#(a()) mark#(a()) -> active#(a()) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) EDG Processor: DPs: mark#(b()) -> active#(b()) active#(f(X,X)) -> mark#(f(a(),b())) mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(b()) -> mark#(a()) mark#(a()) -> active#(a()) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) graph: mark#(b()) -> active#(b()) -> active#(b()) -> mark#(a()) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) mark#(f(X1,X2)) -> mark#(X1) -> mark#(a()) -> active#(a()) mark#(f(X1,X2)) -> mark#(X1) -> mark#(b()) -> active#(b()) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) -> active#(f(X,X)) -> mark#(f(a(),b())) active#(b()) -> mark#(a()) -> mark#(a()) -> active#(a()) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(f(X1,X2)) -> mark#(X1) active#(f(X,X)) -> mark#(f(a(),b())) -> mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) SCC Processor: #sccs: 1 #rules: 3 #arcs: 9/36 DPs: mark#(f(X1,X2)) -> mark#(X1) mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(f(X,X)) -> mark#(f(a(),b())) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Arctic Interpretation Processor: dimension: 1 interpretation: [mark#](x0) = x0 + 0, [active#](x0) = x0 + 0, [mark](x0) = x0 + 1, [b] = 4, [a] = 0, [active](x0) = x0 + 1, [f](x0, x1) = 1x0 + 2 orientation: mark#(f(X1,X2)) = 1X1 + 2 >= X1 + 0 = mark#(X1) mark#(f(X1,X2)) = 1X1 + 2 >= 1X1 + 2 = active#(f(mark(X1),X2)) active#(f(X,X)) = 1X + 2 >= 2 = mark#(f(a(),b())) active(f(X,X)) = 1X + 2 >= 2 = mark(f(a(),b())) active(b()) = 4 >= 1 = mark(a()) mark(f(X1,X2)) = 1X1 + 2 >= 1X1 + 2 = active(f(mark(X1),X2)) mark(a()) = 1 >= 1 = active(a()) mark(b()) = 4 >= 4 = active(b()) f(mark(X1),X2) = 1X1 + 2 >= 1X1 + 2 = f(X1,X2) f(X1,mark(X2)) = 1X1 + 2 >= 1X1 + 2 = f(X1,X2) f(active(X1),X2) = 1X1 + 2 >= 1X1 + 2 = f(X1,X2) f(X1,active(X2)) = 1X1 + 2 >= 1X1 + 2 = f(X1,X2) problem: DPs: mark#(f(X1,X2)) -> active#(f(mark(X1),X2)) active#(f(X,X)) -> mark#(f(a(),b())) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Open DPs: f#(mark(X1),X2) -> f#(X1,X2) f#(X1,mark(X2)) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) f#(X1,active(X2)) -> f#(X1,X2) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Subterm Criterion Processor: simple projection: pi(f#) = 1 problem: DPs: f#(mark(X1),X2) -> f#(X1,X2) f#(active(X1),X2) -> f#(X1,X2) TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Subterm Criterion Processor: simple projection: pi(f#) = 0 problem: DPs: TRS: active(f(X,X)) -> mark(f(a(),b())) active(b()) -> mark(a()) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) Qed