YES Problem: nonZero(0()) -> false() nonZero(s(x)) -> true() p(0()) -> 0() p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x,0()) rand(x,y) -> if(nonZero(x),x,y) if(false(),x,y) -> y if(true(),x,y) -> rand(p(x),id_inc(y)) Proof: DP Processor: DPs: random#(x) -> rand#(x,0()) rand#(x,y) -> nonZero#(x) rand#(x,y) -> if#(nonZero(x),x,y) if#(true(),x,y) -> id_inc#(y) if#(true(),x,y) -> p#(x) if#(true(),x,y) -> rand#(p(x),id_inc(y)) TRS: nonZero(0()) -> false() nonZero(s(x)) -> true() p(0()) -> 0() p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x,0()) rand(x,y) -> if(nonZero(x),x,y) if(false(),x,y) -> y if(true(),x,y) -> rand(p(x),id_inc(y)) TDG Processor: DPs: random#(x) -> rand#(x,0()) rand#(x,y) -> nonZero#(x) rand#(x,y) -> if#(nonZero(x),x,y) if#(true(),x,y) -> id_inc#(y) if#(true(),x,y) -> p#(x) if#(true(),x,y) -> rand#(p(x),id_inc(y)) TRS: nonZero(0()) -> false() nonZero(s(x)) -> true() p(0()) -> 0() p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x,0()) rand(x,y) -> if(nonZero(x),x,y) if(false(),x,y) -> y if(true(),x,y) -> rand(p(x),id_inc(y)) graph: if#(true(),x,y) -> rand#(p(x),id_inc(y)) -> rand#(x,y) -> if#(nonZero(x),x,y) if#(true(),x,y) -> rand#(p(x),id_inc(y)) -> rand#(x,y) -> nonZero#(x) rand#(x,y) -> if#(nonZero(x),x,y) -> if#(true(),x,y) -> rand#(p(x),id_inc(y)) rand#(x,y) -> if#(nonZero(x),x,y) -> if#(true(),x,y) -> p#(x) rand#(x,y) -> if#(nonZero(x),x,y) -> if#(true(),x,y) -> id_inc#(y) random#(x) -> rand#(x,0()) -> rand#(x,y) -> if#(nonZero(x),x,y) random#(x) -> rand#(x,0()) -> rand#(x,y) -> nonZero#(x) SCC Processor: #sccs: 1 #rules: 2 #arcs: 7/36 DPs: if#(true(),x,y) -> rand#(p(x),id_inc(y)) rand#(x,y) -> if#(nonZero(x),x,y) TRS: nonZero(0()) -> false() nonZero(s(x)) -> true() p(0()) -> 0() p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x,0()) rand(x,y) -> if(nonZero(x),x,y) if(false(),x,y) -> y if(true(),x,y) -> rand(p(x),id_inc(y)) Usable Rule Processor: DPs: if#(true(),x,y) -> rand#(p(x),id_inc(y)) rand#(x,y) -> if#(nonZero(x),x,y) TRS: id_inc(x) -> x id_inc(x) -> s(x) p(0()) -> 0() p(s(x)) -> x nonZero(0()) -> false() nonZero(s(x)) -> true() Arctic Interpretation Processor: dimension: 1 usable rules: p(0()) -> 0() p(s(x)) -> x nonZero(0()) -> false() nonZero(s(x)) -> true() interpretation: [true] = 1, [if#](x0, x1, x2) = x0 + -7x1 + -16, [nonZero](x0) = x0 + -4, [s](x0) = 9x0 + 1, [p](x0) = -8x0 + 0, [0] = 0, [rand#](x0, x1) = x0 + 0, [id_inc](x0) = 6x0 + 1, [false] = 0 orientation: if#(true(),x,y) = -7x + 1 >= -8x + 0 = rand#(p(x),id_inc(y)) rand#(x,y) = x + 0 >= x + -4 = if#(nonZero(x),x,y) id_inc(x) = 6x + 1 >= x = x id_inc(x) = 6x + 1 >= 9x + 1 = s(x) p(0()) = 0 >= 0 = 0() p(s(x)) = 1x + 0 >= x = x nonZero(0()) = 0 >= 0 = false() nonZero(s(x)) = 9x + 1 >= 1 = true() problem: DPs: rand#(x,y) -> if#(nonZero(x),x,y) TRS: id_inc(x) -> x id_inc(x) -> s(x) p(0()) -> 0() p(s(x)) -> x nonZero(0()) -> false() nonZero(s(x)) -> true() Restore Modifier: DPs: rand#(x,y) -> if#(nonZero(x),x,y) TRS: nonZero(0()) -> false() nonZero(s(x)) -> true() p(0()) -> 0() p(s(x)) -> x id_inc(x) -> x id_inc(x) -> s(x) random(x) -> rand(x,0()) rand(x,y) -> if(nonZero(x),x,y) if(false(),x,y) -> y if(true(),x,y) -> rand(p(x),id_inc(y)) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1