YES Problem: if(true(),x,y) -> x if(false(),x,y) -> y if(x,y,y) -> y if(if(x,y,z),u(),v()) -> if(x,if(y,u(),v()),if(z,u(),v())) Proof: DP Processor: DPs: if#(if(x,y,z),u(),v()) -> if#(z,u(),v()) if#(if(x,y,z),u(),v()) -> if#(y,u(),v()) if#(if(x,y,z),u(),v()) -> if#(x,if(y,u(),v()),if(z,u(),v())) TRS: if(true(),x,y) -> x if(false(),x,y) -> y if(x,y,y) -> y if(if(x,y,z),u(),v()) -> if(x,if(y,u(),v()),if(z,u(),v())) LPO Processor: argument filtering: pi(true) = [] pi(if) = [0,1,2] pi(false) = [] pi(u) = [] pi(v) = [] pi(if#) = 0 precedence: if# ~ v ~ u ~ false ~ if ~ true problem: DPs: TRS: if(true(),x,y) -> x if(false(),x,y) -> y if(x,y,y) -> y if(if(x,y,z),u(),v()) -> if(x,if(y,u(),v()),if(z,u(),v())) Qed