YES(O(1),O(n^2)) 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [0] 518.81/297.06 518.81/297.06 [0] = [0] 518.81/297.06 518.81/297.06 [true] = [0] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [1] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [0] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [1] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [1] 518.81/297.06 >= [1] x + [1] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [0] 518.81/297.06 >= [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 ? [1] y + [1] x + [1] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 ? [1] y + [1] x + [1] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Weak Trs: { minus(x, 0()) -> x } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [0] 518.81/297.06 518.81/297.06 [0] = [1] 518.81/297.06 518.81/297.06 [true] = [0] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [0] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [1] 518.81/297.06 > [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [1] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Weak Trs: 518.81/297.06 { minus(x, 0()) -> x 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [1] 518.81/297.06 518.81/297.06 [0] = [7] 518.81/297.06 518.81/297.06 [true] = [0] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [0] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [1] 518.81/297.06 > [0] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [1] 518.81/297.06 > [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [1] 518.81/297.06 >= [1] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [7] 518.81/297.06 > [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [7] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 ? [1] y + [1] x + [1] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Weak Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [4] 518.81/297.06 518.81/297.06 [0] = [7] 518.81/297.06 518.81/297.06 [true] = [1] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [0] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [4] 518.81/297.06 > [1] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [4] 518.81/297.06 > [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [4] 518.81/297.06 >= [4] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [7] 518.81/297.06 > [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [7] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 ? [1] y + [1] x + [4] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [1] 518.81/297.06 > [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [0] 518.81/297.06 >= [1] y + [1] x + [0] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Weak Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [0] 518.81/297.06 518.81/297.06 [0] = [7] 518.81/297.06 518.81/297.06 [true] = [0] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [4] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [0] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [4] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [7] 518.81/297.06 > [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [11] 518.81/297.06 > [1] x + [4] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [8] 518.81/297.06 >= [1] y + [1] x + [8] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [8] 518.81/297.06 > [1] y + [1] x + [4] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [8] 518.81/297.06 > [1] y + [1] x + [4] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: 518.81/297.06 { le(s(x), s(y)) -> le(x, y) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) } 518.81/297.06 Weak Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 The weightgap principle applies (using the following nonconstant 518.81/297.06 growth matrix-interpretation) 518.81/297.06 518.81/297.06 The following argument positions are usable: 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following matrix interpretation satisfying 518.81/297.06 not(EDA) and not(IDA(1)). 518.81/297.06 518.81/297.06 [le](x1, x2) = [0] 518.81/297.06 518.81/297.06 [0] = [7] 518.81/297.06 518.81/297.06 [true] = [0] 518.81/297.06 518.81/297.06 [s](x1) = [1] x1 + [4] 518.81/297.06 518.81/297.06 [false] = [0] 518.81/297.06 518.81/297.06 [minus](x1, x2) = [1] x1 + [0] 518.81/297.06 518.81/297.06 [gcd](x1, x2) = [1] x1 + [1] x2 + [4] 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [0] 518.81/297.06 518.81/297.06 The order satisfies the following ordering constraints: 518.81/297.06 518.81/297.06 [le(0(), y)] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = [0] 518.81/297.06 >= [0] 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = [1] x + [0] 518.81/297.06 >= [1] x + [0] 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = [1] x + [4] 518.81/297.06 > [1] x + [0] 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = [1] y + [11] 518.81/297.06 > [1] y + [0] 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = [1] x + [15] 518.81/297.06 > [1] x + [4] 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = [1] y + [1] x + [12] 518.81/297.06 > [1] y + [1] x + [8] 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = [1] y + [1] x + [8] 518.81/297.06 >= [1] y + [1] x + [8] 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = [1] y + [1] x + [8] 518.81/297.06 >= [1] y + [1] x + [8] 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(n^2)). 518.81/297.06 518.81/297.06 Strict Trs: { le(s(x), s(y)) -> le(x, y) } 518.81/297.06 Weak Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(n^2)) 518.81/297.06 518.81/297.06 We use the processor 'polynomial interpretation' to orient 518.81/297.06 following rules strictly. 518.81/297.06 518.81/297.06 Trs: { le(s(x), s(y)) -> le(x, y) } 518.81/297.06 518.81/297.06 The induced complexity on above rules (modulo remaining rules) is 518.81/297.06 YES(?,O(n^2)) . These rules are moved into the corresponding weak 518.81/297.06 component(s). 518.81/297.06 518.81/297.06 Sub-proof: 518.81/297.06 ---------- 518.81/297.06 We consider the following typing: 518.81/297.06 518.81/297.06 le :: (b,b) -> a 518.81/297.06 0 :: b 518.81/297.06 true :: a 518.81/297.06 s :: b -> b 518.81/297.06 false :: a 518.81/297.06 minus :: (b,b) -> b 518.81/297.06 gcd :: (b,b) -> b 518.81/297.06 if_gcd :: (a,b,b) -> b 518.81/297.06 518.81/297.06 The following argument positions are considered usable: 518.81/297.06 518.81/297.06 Uargs(gcd) = {1}, Uargs(if_gcd) = {1} 518.81/297.06 518.81/297.06 TcT has computed the following constructor-restricted 518.81/297.06 typedpolynomial interpretation. 518.81/297.06 518.81/297.06 [le](x1, x2) = x2 518.81/297.06 518.81/297.06 [0]() = 0 518.81/297.06 518.81/297.06 [true]() = 0 518.81/297.06 518.81/297.06 [s](x1) = 1 + x1 518.81/297.06 518.81/297.06 [false]() = 0 518.81/297.06 518.81/297.06 [minus](x1, x2) = x1 518.81/297.06 518.81/297.06 [gcd](x1, x2) = 3*x1 + x1^2 + x2 + x2^2 518.81/297.06 518.81/297.06 [if_gcd](x1, x2, x3) = x1 + 2*x2 + x2^2 + x3 + x3^2 518.81/297.06 518.81/297.06 518.81/297.06 This order satisfies the following ordering constraints. 518.81/297.06 518.81/297.06 [le(0(), y)] = y 518.81/297.06 >= 518.81/297.06 = [true()] 518.81/297.06 518.81/297.06 [le(s(x), 0())] = 518.81/297.06 >= 518.81/297.06 = [false()] 518.81/297.06 518.81/297.06 [le(s(x), s(y))] = 1 + y 518.81/297.06 > y 518.81/297.06 = [le(x, y)] 518.81/297.06 518.81/297.06 [minus(x, 0())] = x 518.81/297.06 >= x 518.81/297.06 = [x] 518.81/297.06 518.81/297.06 [minus(s(x), s(y))] = 1 + x 518.81/297.06 > x 518.81/297.06 = [minus(x, y)] 518.81/297.06 518.81/297.06 [gcd(0(), y)] = y + y^2 518.81/297.06 >= y 518.81/297.06 = [y] 518.81/297.06 518.81/297.06 [gcd(s(x), 0())] = 4 + 5*x + x^2 518.81/297.06 > 1 + x 518.81/297.06 = [s(x)] 518.81/297.06 518.81/297.06 [gcd(s(x), s(y))] = 6 + 5*x + x^2 + 3*y + y^2 518.81/297.06 > 5*x + 5 + x^2 + 3*y + y^2 518.81/297.06 = [if_gcd(le(y, x), s(x), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(true(), s(x), s(y))] = 5 + 4*x + x^2 + 3*y + y^2 518.81/297.06 > 3*x + x^2 + 2 + 3*y + y^2 518.81/297.06 = [gcd(minus(x, y), s(y))] 518.81/297.06 518.81/297.06 [if_gcd(false(), s(x), s(y))] = 5 + 4*x + x^2 + 3*y + y^2 518.81/297.06 > 3*y + y^2 + 2 + 3*x + x^2 518.81/297.06 = [gcd(minus(y, x), s(x))] 518.81/297.06 518.81/297.06 518.81/297.06 We return to the main proof. 518.81/297.06 518.81/297.06 We are left with following problem, upon which TcT provides the 518.81/297.06 certificate YES(O(1),O(1)). 518.81/297.06 518.81/297.06 Weak Trs: 518.81/297.06 { le(0(), y) -> true() 518.81/297.06 , le(s(x), 0()) -> false() 518.81/297.06 , le(s(x), s(y)) -> le(x, y) 518.81/297.06 , minus(x, 0()) -> x 518.81/297.06 , minus(s(x), s(y)) -> minus(x, y) 518.81/297.06 , gcd(0(), y) -> y 518.81/297.06 , gcd(s(x), 0()) -> s(x) 518.81/297.06 , gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) 518.81/297.06 , if_gcd(true(), s(x), s(y)) -> gcd(minus(x, y), s(y)) 518.81/297.06 , if_gcd(false(), s(x), s(y)) -> gcd(minus(y, x), s(x)) } 518.81/297.06 Obligation: 518.81/297.06 runtime complexity 518.81/297.06 Answer: 518.81/297.06 YES(O(1),O(1)) 518.81/297.06 518.81/297.06 Empty rules are trivially bounded 518.81/297.06 518.81/297.06 Hurray, we answered YES(O(1),O(n^2)) 519.24/297.44 EOF