YES Problem: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Proof: DP Processor: DPs: min#(s(x),s(y)) -> min#(x,y) max#(s(x),s(y)) -> max#(x,y) -#(s(x),s(y)) -> -#(x,y) gcd#(s(x),s(y)) -> min#(x,y) gcd#(s(x),s(y)) -> max#(x,y) gcd#(s(x),s(y)) -> -#(max(x,y),min(x,y)) gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) TDG Processor: DPs: min#(s(x),s(y)) -> min#(x,y) max#(s(x),s(y)) -> max#(x,y) -#(s(x),s(y)) -> -#(x,y) gcd#(s(x),s(y)) -> min#(x,y) gcd#(s(x),s(y)) -> max#(x,y) gcd#(s(x),s(y)) -> -#(max(x,y),min(x,y)) gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) graph: gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) -> gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) -> gcd#(s(x),s(y)) -> -#(max(x,y),min(x,y)) gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) -> gcd#(s(x),s(y)) -> max#(x,y) gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) -> gcd#(s(x),s(y)) -> min#(x,y) gcd#(s(x),s(y)) -> -#(max(x,y),min(x,y)) -> -#(s(x),s(y)) -> -#(x,y) gcd#(s(x),s(y)) -> max#(x,y) -> max#(s(x),s(y)) -> max#(x,y) gcd#(s(x),s(y)) -> min#(x,y) -> min#(s(x),s(y)) -> min#(x,y) -#(s(x),s(y)) -> -#(x,y) -> -#(s(x),s(y)) -> -#(x,y) max#(s(x),s(y)) -> max#(x,y) -> max#(s(x),s(y)) -> max#(x,y) min#(s(x),s(y)) -> min#(x,y) -> min#(s(x),s(y)) -> min#(x,y) SCC Processor: #sccs: 4 #rules: 4 #arcs: 10/49 DPs: gcd#(s(x),s(y)) -> gcd#(-(max(x,y),min(x,y)),s(min(x,y))) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Matrix Interpretation Processor: dim=1 interpretation: [gcd#](x0, x1) = 4x0 + 2x1, [gcd](x0, x1) = 4x0 + 3x1, [-](x0, x1) = x0, [max](x0, x1) = x0 + 2x1, [s](x0) = 4x0 + 1, [min](x0, x1) = x0, [0] = 0 orientation: gcd#(s(x),s(y)) = 16x + 8y + 6 >= 12x + 8y + 2 = gcd#(-(max(x,y),min(x,y)),s(min(x,y))) min(x,0()) = x >= 0 = 0() min(0(),y) = 0 >= 0 = 0() min(s(x),s(y)) = 4x + 1 >= 4x + 1 = s(min(x,y)) max(x,0()) = x >= x = x max(0(),y) = 2y >= y = y max(s(x),s(y)) = 4x + 8y + 3 >= 4x + 8y + 1 = s(max(x,y)) -(x,0()) = x >= x = x -(s(x),s(y)) = 4x + 1 >= x = -(x,y) gcd(s(x),0()) = 16x + 4 >= 4x + 1 = s(x) gcd(0(),s(x)) = 12x + 3 >= 4x + 1 = s(x) gcd(s(x),s(y)) = 16x + 12y + 7 >= 16x + 8y + 3 = gcd(-(max(x,y),min(x,y)),s(min(x,y))) problem: DPs: TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Qed DPs: -#(s(x),s(y)) -> -#(x,y) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Matrix Interpretation Processor: dim=1 interpretation: [-#](x0, x1) = x1 + 4, [gcd](x0, x1) = 2x0 + x1 + 4, [-](x0, x1) = x0 + 1, [max](x0, x1) = x0 + x1, [s](x0) = 2x0 + 1, [min](x0, x1) = x0, [0] = 0 orientation: -#(s(x),s(y)) = 2y + 5 >= y + 4 = -#(x,y) min(x,0()) = x >= 0 = 0() min(0(),y) = 0 >= 0 = 0() min(s(x),s(y)) = 2x + 1 >= 2x + 1 = s(min(x,y)) max(x,0()) = x >= x = x max(0(),y) = y >= y = y max(s(x),s(y)) = 2x + 2y + 2 >= 2x + 2y + 1 = s(max(x,y)) -(x,0()) = x + 1 >= x = x -(s(x),s(y)) = 2x + 2 >= x + 1 = -(x,y) gcd(s(x),0()) = 4x + 6 >= 2x + 1 = s(x) gcd(0(),s(x)) = 2x + 5 >= 2x + 1 = s(x) gcd(s(x),s(y)) = 4x + 2y + 7 >= 4x + 2y + 7 = gcd(-(max(x,y),min(x,y)),s(min(x,y))) problem: DPs: TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Qed DPs: max#(s(x),s(y)) -> max#(x,y) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Matrix Interpretation Processor: dim=1 interpretation: [max#](x0, x1) = x1 + 4, [gcd](x0, x1) = 2x0 + x1 + 4, [-](x0, x1) = x0 + 1, [max](x0, x1) = x0 + x1, [s](x0) = 2x0 + 1, [min](x0, x1) = x0, [0] = 0 orientation: max#(s(x),s(y)) = 2y + 5 >= y + 4 = max#(x,y) min(x,0()) = x >= 0 = 0() min(0(),y) = 0 >= 0 = 0() min(s(x),s(y)) = 2x + 1 >= 2x + 1 = s(min(x,y)) max(x,0()) = x >= x = x max(0(),y) = y >= y = y max(s(x),s(y)) = 2x + 2y + 2 >= 2x + 2y + 1 = s(max(x,y)) -(x,0()) = x + 1 >= x = x -(s(x),s(y)) = 2x + 2 >= x + 1 = -(x,y) gcd(s(x),0()) = 4x + 6 >= 2x + 1 = s(x) gcd(0(),s(x)) = 2x + 5 >= 2x + 1 = s(x) gcd(s(x),s(y)) = 4x + 2y + 7 >= 4x + 2y + 7 = gcd(-(max(x,y),min(x,y)),s(min(x,y))) problem: DPs: TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Qed DPs: min#(s(x),s(y)) -> min#(x,y) TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Matrix Interpretation Processor: dim=1 interpretation: [min#](x0, x1) = x1 + 4, [gcd](x0, x1) = 2x0 + x1 + 4, [-](x0, x1) = x0 + 1, [max](x0, x1) = x0 + x1, [s](x0) = 2x0 + 1, [min](x0, x1) = x0, [0] = 0 orientation: min#(s(x),s(y)) = 2y + 5 >= y + 4 = min#(x,y) min(x,0()) = x >= 0 = 0() min(0(),y) = 0 >= 0 = 0() min(s(x),s(y)) = 2x + 1 >= 2x + 1 = s(min(x,y)) max(x,0()) = x >= x = x max(0(),y) = y >= y = y max(s(x),s(y)) = 2x + 2y + 2 >= 2x + 2y + 1 = s(max(x,y)) -(x,0()) = x + 1 >= x = x -(s(x),s(y)) = 2x + 2 >= x + 1 = -(x,y) gcd(s(x),0()) = 4x + 6 >= 2x + 1 = s(x) gcd(0(),s(x)) = 2x + 5 >= 2x + 1 = s(x) gcd(s(x),s(y)) = 4x + 2y + 7 >= 4x + 2y + 7 = gcd(-(max(x,y),min(x,y)),s(min(x,y))) problem: DPs: TRS: min(x,0()) -> 0() min(0(),y) -> 0() min(s(x),s(y)) -> s(min(x,y)) max(x,0()) -> x max(0(),y) -> y max(s(x),s(y)) -> s(max(x,y)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) gcd(s(x),0()) -> s(x) gcd(0(),s(x)) -> s(x) gcd(s(x),s(y)) -> gcd(-(max(x,y),min(x,y)),s(min(x,y))) Qed