MAYBE Problem: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) Proof: DP Processor: DPs: f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> gt#(x,z) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) Usable Rule Processor: DPs: f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> gt#(x,z) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) g#(true(),x,y,z) -> f#(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) ADG Processor: DPs: f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> gt#(x,z) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) g#(true(),x,y,z) -> f#(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) graph: g#(true(),x,y,z) -> gt#(x,z) -> gt#(s(u),s(v)) -> gt#(u,v) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) -> f#(true(),x,y,z) -> gt#(x,y) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) -> f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) -> f#(true(),x,y,z) -> gt#(x,y) g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) -> f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) gt#(s(u),s(v)) -> gt#(u,v) -> gt#(s(u),s(v)) -> gt#(u,v) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) -> g#(true(),x,y,z) -> gt#(x,z) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) -> g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) -> g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) f#(true(),x,y,z) -> gt#(x,y) -> gt#(s(u),s(v)) -> gt#(u,v) Restore Modifier: DPs: f#(true(),x,y,z) -> gt#(x,y) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> gt#(x,z) g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) SCC Processor: #sccs: 2 #rules: 4 #arcs: 10/36 DPs: g#(true(),x,y,z) -> f#(gt(x,z),x,s(y),z) f#(true(),x,y,z) -> g#(gt(x,y),x,y,z) g#(true(),x,y,z) -> f#(gt(x,z),x,y,s(z)) TRS: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) Open DPs: gt#(s(u),s(v)) -> gt#(u,v) TRS: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) Matrix Interpretation Processor: dimension: 1 interpretation: [gt#](x0, x1) = x0 + 1, [false] = 0, [0] = 0, [s](x0) = x0 + 1, [g](x0, x1, x2, x3) = 0, [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 = g(gt(x,y),x,y,z) g(true(),x,y,z) = 0 >= 0 = f(gt(x,z),x,s(y),z) g(true(),x,y,z) = 0 >= 0 = f(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) problem: DPs: TRS: f(true(),x,y,z) -> g(gt(x,y),x,y,z) g(true(),x,y,z) -> f(gt(x,z),x,s(y),z) g(true(),x,y,z) -> f(gt(x,z),x,y,s(z)) gt(0(),v) -> false() gt(s(u),0()) -> true() gt(s(u),s(v)) -> gt(u,v) Qed