MAYBE Problem: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) Proof: DP Processor: DPs: f#(s(x)) -> f#(x) g#(s(x),s(y)) -> f#(x) g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) TDG Processor: DPs: f#(s(x)) -> f#(x) g#(s(x),s(y)) -> f#(x) g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) graph: g#(s(x),s(y)) -> f#(x) -> f#(s(x)) -> f#(x) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(x,g(s(c(y)),y)) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> f#(x) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(x,c(y)) -> g#(x,g(s(c(y)),y)) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) -> g#(s(x),s(y)) -> f#(x) f#(s(x)) -> f#(x) -> f#(s(x)) -> f#(x) EDG Processor: DPs: f#(s(x)) -> f#(x) g#(s(x),s(y)) -> f#(x) g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) graph: g#(s(x),s(y)) -> f#(x) -> f#(s(x)) -> f#(x) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> f#(x) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(s(c(y)),y) -> g#(x,c(y)) -> g#(x,g(s(c(y)),y)) f#(s(x)) -> f#(x) -> f#(s(x)) -> f#(x) Restore Modifier: DPs: f#(s(x)) -> f#(x) g#(s(x),s(y)) -> f#(x) g#(s(x),s(y)) -> if#(f(x),s(x),s(y)) g#(x,c(y)) -> g#(s(c(y)),y) g#(x,c(y)) -> g#(x,g(s(c(y)),y)) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) SCC Processor: #sccs: 2 #rules: 2 #arcs: 6/25 DPs: g#(x,c(y)) -> g#(s(c(y)),y) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) Matrix Interpretation Processor: dimension: 1 interpretation: [g#](x0, x1) = x1, [c](x0) = x0 + 1, [g](x0, x1) = 0, [if](x0, x1, x2) = x1 + x2, [s](x0) = 0, [false] = 0, [1] = 0, [true] = 0, [f](x0) = 0, [0] = 0 orientation: g#(x,c(y)) = y + 1 >= y = g#(s(c(y)),y) f(0()) = 0 >= 0 = true() f(1()) = 0 >= 0 = false() f(s(x)) = 0 >= 0 = f(x) if(true(),x,y) = x + y >= x = x if(false(),x,y) = x + y >= y = y g(s(x),s(y)) = 0 >= 0 = if(f(x),s(x),s(y)) g(x,c(y)) = 0 >= 0 = g(x,g(s(c(y)),y)) problem: DPs: TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) Qed DPs: f#(s(x)) -> f#(x) TRS: f(0()) -> true() f(1()) -> false() f(s(x)) -> f(x) if(true(),x,y) -> x if(false(),x,y) -> y g(s(x),s(y)) -> if(f(x),s(x),s(y)) g(x,c(y)) -> g(x,g(s(c(y)),y)) Open