YES Problem: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Proof: DP Processor: DPs: lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) max#(s(x),s(y)) -> max#(x,y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) TDG Processor: DPs: lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) max#(s(x),s(y)) -> max#(x,y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) graph: max#(s(x),s(y)) -> max#(x,y) -> max#(s(x),s(y)) -> max#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) -> max#(s(x),s(y)) -> max#(x,y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) -> max#(s(x),s(y)) -> max#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y) EDG Processor: DPs: lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) max#(s(x),s(y)) -> max#(x,y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) graph: max#(s(x),s(y)) -> max#(x,y) -> max#(s(x),s(y)) -> max#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),b(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) -> max#(s(x),s(y)) -> max#(x,y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> lcs#(x,a(y)) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) -> max#(s(x),s(y)) -> max#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> lcs#(x,b(y)) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(a(x),a(y)) -> lcs#(x,y) -> lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) Restore Modifier: DPs: lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(a(x),y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> max#(lcs(x,b(y)),lcs(a(x),y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> max#(lcs(x,a(y)),lcs(b(x),y)) max#(s(x),s(y)) -> max#(x,y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) SCC Processor: #sccs: 2 #rules: 7 #arcs: 35/81 DPs: lcs#(b(x),b(y)) -> lcs#(x,y) lcs#(b(x),a(y)) -> lcs#(x,a(y)) lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),a(y)) -> lcs#(x,y) lcs#(a(x),b(y)) -> lcs#(x,b(y)) lcs#(a(x),b(y)) -> lcs#(a(x),y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Matrix Interpretation Processor: dimension: 1 interpretation: [lcs#](x0, x1) = x0 + 1, [max](x0, x1) = 0, [b](x0) = x0 + 1, [s](x0) = 0, [a](x0) = x0 + 1, [0] = 0, [lcs](x0, x1) = 0, [e] = 0 orientation: lcs#(b(x),b(y)) = x + 2 >= x + 1 = lcs#(x,y) lcs#(b(x),a(y)) = x + 2 >= x + 1 = lcs#(x,a(y)) lcs#(b(x),a(y)) = x + 2 >= x + 2 = lcs#(b(x),y) lcs#(a(x),a(y)) = x + 2 >= x + 1 = lcs#(x,y) lcs#(a(x),b(y)) = x + 2 >= x + 1 = lcs#(x,b(y)) lcs#(a(x),b(y)) = x + 2 >= x + 2 = lcs#(a(x),y) lcs(e(),y) = 0 >= 0 = 0() lcs(x,e()) = 0 >= 0 = 0() lcs(a(x),a(y)) = 0 >= 0 = s(lcs(x,y)) lcs(b(x),b(y)) = 0 >= 0 = s(lcs(x,y)) lcs(a(x),b(y)) = 0 >= 0 = max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) = 0 >= 0 = max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) = 0 >= 0 = 0() max(0(),y) = 0 >= 0 = 0() max(s(x),s(y)) = 0 >= 0 = max(x,y) problem: DPs: lcs#(b(x),a(y)) -> lcs#(b(x),y) lcs#(a(x),b(y)) -> lcs#(a(x),y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Matrix Interpretation Processor: dimension: 1 interpretation: [lcs#](x0, x1) = x0 + x1 + 1, [max](x0, x1) = 1, [b](x0) = x0, [s](x0) = x0, [a](x0) = x0 + 1, [0] = 0, [lcs](x0, x1) = x0 + x1, [e] = 0 orientation: lcs#(b(x),a(y)) = x + y + 2 >= x + y + 1 = lcs#(b(x),y) lcs#(a(x),b(y)) = x + y + 2 >= x + y + 2 = lcs#(a(x),y) lcs(e(),y) = y >= 0 = 0() lcs(x,e()) = x >= 0 = 0() lcs(a(x),a(y)) = x + y + 2 >= x + y = s(lcs(x,y)) lcs(b(x),b(y)) = x + y >= x + y = s(lcs(x,y)) lcs(a(x),b(y)) = x + y + 1 >= 1 = max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) = x + y + 1 >= 1 = max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) = 1 >= 0 = 0() max(0(),y) = 1 >= 0 = 0() max(s(x),s(y)) = 1 >= 1 = max(x,y) problem: DPs: lcs#(a(x),b(y)) -> lcs#(a(x),y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Matrix Interpretation Processor: dimension: 1 interpretation: [lcs#](x0, x1) = x1, [max](x0, x1) = 0, [b](x0) = x0 + 1, [s](x0) = 0, [a](x0) = 0, [0] = 0, [lcs](x0, x1) = 0, [e] = 0 orientation: lcs#(a(x),b(y)) = y + 1 >= y = lcs#(a(x),y) lcs(e(),y) = 0 >= 0 = 0() lcs(x,e()) = 0 >= 0 = 0() lcs(a(x),a(y)) = 0 >= 0 = s(lcs(x,y)) lcs(b(x),b(y)) = 0 >= 0 = s(lcs(x,y)) lcs(a(x),b(y)) = 0 >= 0 = max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) = 0 >= 0 = max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) = 0 >= 0 = 0() max(0(),y) = 0 >= 0 = 0() max(s(x),s(y)) = 0 >= 0 = max(x,y) problem: DPs: TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Qed DPs: max#(s(x),s(y)) -> max#(x,y) TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Matrix Interpretation Processor: dimension: 1 interpretation: [max#](x0, x1) = x0 + 1, [max](x0, x1) = 1, [b](x0) = x0 + 1, [s](x0) = x0 + 1, [a](x0) = x0 + 1, [0] = 1, [lcs](x0, x1) = x1 + 1, [e] = 0 orientation: max#(s(x),s(y)) = x + 2 >= x + 1 = max#(x,y) lcs(e(),y) = y + 1 >= 1 = 0() lcs(x,e()) = 1 >= 1 = 0() lcs(a(x),a(y)) = y + 2 >= y + 2 = s(lcs(x,y)) lcs(b(x),b(y)) = y + 2 >= y + 2 = s(lcs(x,y)) lcs(a(x),b(y)) = y + 2 >= 1 = max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) = y + 2 >= 1 = max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) = 1 >= 1 = 0() max(0(),y) = 1 >= 1 = 0() max(s(x),s(y)) = 1 >= 1 = max(x,y) problem: DPs: TRS: lcs(e(),y) -> 0() lcs(x,e()) -> 0() lcs(a(x),a(y)) -> s(lcs(x,y)) lcs(b(x),b(y)) -> s(lcs(x,y)) lcs(a(x),b(y)) -> max(lcs(x,b(y)),lcs(a(x),y)) lcs(b(x),a(y)) -> max(lcs(x,a(y)),lcs(b(x),y)) max(x,0()) -> 0() max(0(),y) -> 0() max(s(x),s(y)) -> max(x,y) Qed