MAYBE Problem: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() Proof: DP Processor: DPs: f#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() Usable Rule Processor: DPs: f#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f10(x,y) -> x f10(x,y) -> y gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() TDG Processor: DPs: f#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f10(x,y) -> x f10(x,y) -> y gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() graph: gt#(s(u),s(v)) -> gt#(u,v) -> gt#(s(u),s(v)) -> gt#(u,v) f#(true(),x,y,z) -> gt#(x,z) -> gt#(s(u),s(v)) -> gt#(u,v) f#(true(),x,y,z) -> gt#(x,y) -> gt#(s(u),s(v)) -> gt#(u,v) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) -> f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) -> f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) -> f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) -> f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) -> f#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) -> f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) -> f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) -> f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) -> f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) -> f#(true(),x,y,z) -> gt#(x,z) Restore Modifier: DPs: f#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> and#(gt(x,y),gt(x,z)) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() SCC Processor: #sccs: 2 #rules: 3 #arcs: 13/36 DPs: f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,s(y),z) f#(true(),x,y,z) -> f#(and(gt(x,y),gt(x,z)),x,y,s(z)) TRS: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() Open DPs: gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() Matrix Interpretation Processor: dimension: 1 interpretation: [gt#](x0, x1) = x0 + 1, [false] = 0, [0] = 0, [s](x0) = x0 + 1, [and](x0, x1) = x0, [gt](x0, x1) = 0, [f](x0, x1, x2, x3) = 0, [true] = 0 orientation: gt#(s(u),s(v)) = u + 2 >= u + 1 = gt#(u,v) f(true(),x,y,z) = 0 >= 0 = f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) = 0 >= 0 = f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) = 0 >= 0 = false() gt(s(u),0()) = 0 >= 0 = true() gt(s(u),s(v)) = 0 >= 0 = gt(u,v) and(x,true()) = x >= x = x and(x,false()) = x >= 0 = false() problem: DPs: TRS: f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,s(y),z) f(true(),x,y,z) -> f(and(gt(x,y),gt(x,z)),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) and(x,true()) -> x and(x,false()) -> false() Qed