MAYBE Problem: a__f(X) -> a__if(mark(X),c(),f(true())) a__if(true(),X,Y) -> mark(X) a__if(false(),X,Y) -> mark(Y) mark(f(X)) -> a__f(mark(X)) mark(if(X1,X2,X3)) -> a__if(mark(X1),mark(X2),X3) mark(c()) -> c() mark(true()) -> true() mark(false()) -> false() a__f(X) -> f(X) a__if(X1,X2,X3) -> if(X1,X2,X3) Proof: DP Processor: DPs: a__f#(X) -> mark#(X) a__f#(X) -> a__if#(mark(X),c(),f(true())) a__if#(true(),X,Y) -> mark#(X) a__if#(false(),X,Y) -> mark#(Y) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(if(X1,X2,X3)) -> mark#(X2) mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) TRS: a__f(X) -> a__if(mark(X),c(),f(true())) a__if(true(),X,Y) -> mark(X) a__if(false(),X,Y) -> mark(Y) mark(f(X)) -> a__f(mark(X)) mark(if(X1,X2,X3)) -> a__if(mark(X1),mark(X2),X3) mark(c()) -> c() mark(true()) -> true() mark(false()) -> false() a__f(X) -> f(X) a__if(X1,X2,X3) -> if(X1,X2,X3) TDG Processor: DPs: a__f#(X) -> mark#(X) a__f#(X) -> a__if#(mark(X),c(),f(true())) a__if#(true(),X,Y) -> mark#(X) a__if#(false(),X,Y) -> mark#(Y) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(if(X1,X2,X3)) -> mark#(X2) mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) TRS: a__f(X) -> a__if(mark(X),c(),f(true())) a__if(true(),X,Y) -> mark(X) a__if(false(),X,Y) -> mark(Y) mark(f(X)) -> a__f(mark(X)) mark(if(X1,X2,X3)) -> a__if(mark(X1),mark(X2),X3) mark(c()) -> c() mark(true()) -> true() mark(false()) -> false() a__f(X) -> f(X) a__if(X1,X2,X3) -> if(X1,X2,X3) graph: a__if#(false(),X,Y) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) a__if#(false(),X,Y) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> mark#(X1) a__if#(false(),X,Y) -> mark#(Y) -> mark#(if(X1,X2,X3)) -> mark#(X2) a__if#(false(),X,Y) -> mark#(Y) -> mark#(f(X)) -> a__f#(mark(X)) a__if#(false(),X,Y) -> mark#(Y) -> mark#(f(X)) -> mark#(X) a__if#(true(),X,Y) -> mark#(X) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) a__if#(true(),X,Y) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) a__if#(true(),X,Y) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X2) a__if#(true(),X,Y) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) a__if#(true(),X,Y) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) -> a__if#(false(),X,Y) -> mark#(Y) mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) -> a__if#(true(),X,Y) -> mark#(X) mark#(if(X1,X2,X3)) -> mark#(X2) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) mark#(if(X1,X2,X3)) -> mark#(X2) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X2) -> mark#(if(X1,X2,X3)) -> mark#(X2) mark#(if(X1,X2,X3)) -> mark#(X2) -> mark#(f(X)) -> a__f#(mark(X)) mark#(if(X1,X2,X3)) -> mark#(X2) -> mark#(f(X)) -> mark#(X) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(if(X1,X2,X3)) -> mark#(X2) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(f(X)) -> a__f#(mark(X)) mark#(if(X1,X2,X3)) -> mark#(X1) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) mark#(f(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) mark#(f(X)) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X2) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(X) -> a__if#(mark(X),c(),f(true())) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(X) -> mark#(X) a__f#(X) -> a__if#(mark(X),c(),f(true())) -> a__if#(false(),X,Y) -> mark#(Y) a__f#(X) -> a__if#(mark(X),c(),f(true())) -> a__if#(true(),X,Y) -> mark#(X) a__f#(X) -> mark#(X) -> mark#(if(X1,X2,X3)) -> a__if#(mark(X1),mark(X2),X3) a__f#(X) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X1) a__f#(X) -> mark#(X) -> mark#(if(X1,X2,X3)) -> mark#(X2) a__f#(X) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) a__f#(X) -> mark#(X) -> mark#(f(X)) -> mark#(X) Open