YES(O(1),O(n^2)) 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) 446.26/297.12 , rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 The weightgap principle applies (using the following nonconstant 446.26/297.12 growth matrix-interpretation) 446.26/297.12 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 Note that the diagonal of the component-wise maxima of 446.26/297.12 interpretation-entries contains no more than 1 non-zero entries. 446.26/297.12 446.26/297.12 [top](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [sent](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [check](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [rest](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [nil] = [0] 446.26/297.12 446.26/297.12 [cons](x1, x2) = [1] x1 + [1] x2 + [1] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1] x + [0] 446.26/297.12 >= [1] x + [0] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1] x + [0] 446.26/297.12 >= [1] x + [0] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1] x + [0] 446.26/297.12 >= [1] x + [0] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 >= [1] x + [1] y + [1] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 >= [1] x + [1] y + [1] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 >= [1] x + [1] y + [1] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [0] 446.26/297.12 >= [0] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 > [1] y + [0] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) 446.26/297.12 , rest(nil()) -> sent(nil()) } 446.26/297.12 Weak Trs: { rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 The weightgap principle applies (using the following nonconstant 446.26/297.12 growth matrix-interpretation) 446.26/297.12 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 Note that the diagonal of the component-wise maxima of 446.26/297.12 interpretation-entries contains no more than 1 non-zero entries. 446.26/297.12 446.26/297.12 [top](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [sent](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [check](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [rest](x1) = [1] x1 + [1] 446.26/297.12 446.26/297.12 [nil] = [0] 446.26/297.12 446.26/297.12 [cons](x1, x2) = [1] x1 + [1] x2 + [0] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1] x + [0] 446.26/297.12 ? [1] x + [1] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1] x + [0] 446.26/297.12 >= [1] x + [0] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1] x + [1] 446.26/297.12 >= [1] x + [1] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [0] 446.26/297.12 >= [1] x + [1] y + [0] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [0] 446.26/297.12 >= [1] x + [1] y + [0] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [0] 446.26/297.12 >= [1] x + [1] y + [0] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [1] 446.26/297.12 > [0] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 > [1] y + [0] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) } 446.26/297.12 Weak Trs: 446.26/297.12 { rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 The weightgap principle applies (using the following nonconstant 446.26/297.12 growth matrix-interpretation) 446.26/297.12 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 Note that the diagonal of the component-wise maxima of 446.26/297.12 interpretation-entries contains no more than 1 non-zero entries. 446.26/297.12 446.26/297.12 [top](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [sent](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [check](x1) = [1] x1 + [1] 446.26/297.12 446.26/297.12 [rest](x1) = [1] x1 + [0] 446.26/297.12 446.26/297.12 [nil] = [0] 446.26/297.12 446.26/297.12 [cons](x1, x2) = [1] x1 + [1] x2 + [0] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1] x + [0] 446.26/297.12 ? [1] x + [1] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1] x + [1] 446.26/297.12 >= [1] x + [1] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1] x + [1] 446.26/297.12 >= [1] x + [1] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 > [1] x + [1] y + [0] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 >= [1] x + [1] y + [1] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1] x + [1] y + [1] 446.26/297.12 >= [1] x + [1] y + [1] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [0] 446.26/297.12 >= [0] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1] x + [1] y + [0] 446.26/297.12 >= [1] y + [0] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) } 446.26/297.12 Weak Trs: 446.26/297.12 { check(cons(x, y)) -> cons(x, y) 446.26/297.12 , rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 The weightgap principle applies (using the following nonconstant 446.26/297.12 growth matrix-interpretation) 446.26/297.12 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 Note that the diagonal of the component-wise maxima of 446.26/297.12 interpretation-entries contains no more than 1 non-zero entries. 446.26/297.12 446.26/297.12 [top](x1) = [1 1] x1 + [0] 446.26/297.12 [0 0] [2] 446.26/297.12 446.26/297.12 [sent](x1) = [1 0] x1 + [0] 446.26/297.12 [0 0] [1] 446.26/297.12 446.26/297.12 [check](x1) = [1 0] x1 + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 446.26/297.12 [rest](x1) = [1 0] x1 + [0] 446.26/297.12 [0 0] [1] 446.26/297.12 446.26/297.12 [nil] = [0] 446.26/297.12 [0] 446.26/297.12 446.26/297.12 [cons](x1, x2) = [1 1] x1 + [1 1] x2 + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1 0] x + [1] 446.26/297.12 [0 0] [2] 446.26/297.12 > [1 0] x + [0] 446.26/297.12 [0 0] [2] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1 0] x + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 ? [1 0] x + [0] 446.26/297.12 [0 0] [1] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1 0] x + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 ? [1 0] x + [0] 446.26/297.12 [0 0] [1] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 >= [1 1] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 >= [1 1] x + [1 0] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 >= [1 0] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [0] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [0] 446.26/297.12 [1] 446.26/297.12 >= [0] 446.26/297.12 [1] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1 1] x + [1 1] y + [0] 446.26/297.12 [0 0] [0 0] [1] 446.26/297.12 >= [1 0] y + [0] 446.26/297.12 [0 0] [1] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 Further, it can be verified that all rules not oriented are covered by the weightgap condition. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) } 446.26/297.12 Weak Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 We use the processor 'matrix interpretation of dimension 2' to 446.26/297.12 orient following rules strictly. 446.26/297.12 446.26/297.12 Trs: 446.26/297.12 { check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) } 446.26/297.12 446.26/297.12 The induced complexity on above rules (modulo remaining rules) is 446.26/297.12 YES(?,O(n^2)) . These rules are moved into the corresponding weak 446.26/297.12 component(s). 446.26/297.12 446.26/297.12 Sub-proof: 446.26/297.12 ---------- 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 446.26/297.12 [top](x1) = [1 0] x1 + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 446.26/297.12 [sent](x1) = [1 2] x1 + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 446.26/297.12 [check](x1) = [1 1] x1 + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 446.26/297.12 [rest](x1) = [1 0] x1 + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 446.26/297.12 [nil] = [0] 446.26/297.12 [0] 446.26/297.12 446.26/297.12 [cons](x1, x2) = [1 0] x1 + [1 2] x2 + [0] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1 2] x + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 >= [1 1] x + [0] 446.26/297.12 [0 0] [0] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1 3] x + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 >= [1 3] x + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1 1] x + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 >= [1 1] x + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 3] y + [1] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 > [1 0] x + [1 2] y + [0] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 3] y + [1] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 > [1 0] x + [1 3] y + [0] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 1] x + [1 3] y + [1] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 > [1 1] x + [1 2] y + [0] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [0] 446.26/297.12 [0] 446.26/297.12 >= [0] 446.26/297.12 [0] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1 0] x + [1 2] y + [0] 446.26/297.12 [0 1] [0 1] [1] 446.26/297.12 >= [1 2] y + [0] 446.26/297.12 [0 1] [0] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 We return to the main proof. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(n^2)). 446.26/297.12 446.26/297.12 Strict Trs: 446.26/297.12 { check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) } 446.26/297.12 Weak Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) 446.26/297.12 , rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(n^2)) 446.26/297.12 446.26/297.12 We use the processor 'matrix interpretation of dimension 4' to 446.26/297.12 orient following rules strictly. 446.26/297.12 446.26/297.12 Trs: 446.26/297.12 { check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) } 446.26/297.12 446.26/297.12 The induced complexity on above rules (modulo remaining rules) is 446.26/297.12 YES(?,O(n^2)) . These rules are moved into the corresponding weak 446.26/297.12 component(s). 446.26/297.12 446.26/297.12 Sub-proof: 446.26/297.12 ---------- 446.26/297.12 TcT has computed the following triangular matrix interpretation. 446.26/297.12 Note that the diagonal of the component-wise maxima of 446.26/297.12 interpretation-entries contains no more than 2 non-zero entries. 446.26/297.12 446.26/297.12 [1 1 0 0] [1] 446.26/297.12 [top](x1) = [0 0 0 0] x1 + [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 446.26/297.12 [1 0 1 0] [1] 446.26/297.12 [sent](x1) = [0 0 1 1] x1 + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 446.26/297.12 [1 0 1 0] [0] 446.26/297.12 [check](x1) = [0 0 1 0] x1 + [0] 446.26/297.12 [0 0 1 0] [0] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 446.26/297.12 [1 0 0 1] [0] 446.26/297.12 [rest](x1) = [0 0 1 1] x1 + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 446.26/297.12 [0] 446.26/297.12 [nil] = [0] 446.26/297.12 [0] 446.26/297.12 [1] 446.26/297.12 446.26/297.12 [1 0 0 0] [1 0 1 0] [1] 446.26/297.12 [cons](x1, x2) = [0 0 0 0] x1 + [0 0 0 0] x2 + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 446.26/297.12 The order satisfies the following ordering constraints: 446.26/297.12 446.26/297.12 [top(sent(x))] = [1 0 2 1] [3] 446.26/297.12 [0 0 0 0] x + [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 >= [1 0 2 1] [3] 446.26/297.12 [0 0 0 0] x + [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 [0 0 0 0] [1] 446.26/297.12 = [top(check(rest(x)))] 446.26/297.12 446.26/297.12 [check(sent(x))] = [1 0 2 0] [2] 446.26/297.12 [0 0 1 0] x + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 > [1 0 2 0] [1] 446.26/297.12 [0 0 1 0] x + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 = [sent(check(x))] 446.26/297.12 446.26/297.12 [check(rest(x))] = [1 0 1 1] [1] 446.26/297.12 [0 0 1 0] x + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 > [1 0 1 0] [0] 446.26/297.12 [0 0 1 0] x + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 = [rest(check(x))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 0 1 0] [1 0 2 1] [1] 446.26/297.12 [0 0 1 0] x + [0 0 1 1] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 >= [1 0 0 0] [1 0 1 0] [1] 446.26/297.12 [0 0 0 0] x + [0 0 0 0] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 = [cons(x, y)] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 0 1 0] [1 0 2 1] [1] 446.26/297.12 [0 0 1 0] x + [0 0 1 1] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 >= [1 0 0 0] [1 0 2 0] [1] 446.26/297.12 [0 0 0 0] x + [0 0 0 0] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 0] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 = [cons(x, check(y))] 446.26/297.12 446.26/297.12 [check(cons(x, y))] = [1 0 1 0] [1 0 2 1] [1] 446.26/297.12 [0 0 1 0] x + [0 0 1 1] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 >= [1 0 1 0] [1 0 1 0] [1] 446.26/297.12 [0 0 0 0] x + [0 0 0 0] y + [0] 446.26/297.12 [0 0 1 0] [0 0 1 1] [0] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 = [cons(check(x), y)] 446.26/297.12 446.26/297.12 [rest(nil())] = [1] 446.26/297.12 [2] 446.26/297.12 [1] 446.26/297.12 [0] 446.26/297.12 >= [1] 446.26/297.12 [2] 446.26/297.12 [1] 446.26/297.12 [0] 446.26/297.12 = [sent(nil())] 446.26/297.12 446.26/297.12 [rest(cons(x, y))] = [1 0 0 0] [1 0 1 0] [1] 446.26/297.12 [0 0 1 0] x + [0 0 1 1] y + [1] 446.26/297.12 [0 0 1 0] [0 0 1 1] [1] 446.26/297.12 [0 0 0 0] [0 0 0 0] [0] 446.26/297.12 >= [1 0 1 0] [1] 446.26/297.12 [0 0 1 1] y + [1] 446.26/297.12 [0 0 1 0] [1] 446.26/297.12 [0 0 0 0] [0] 446.26/297.12 = [sent(y)] 446.26/297.12 446.26/297.12 446.26/297.12 We return to the main proof. 446.26/297.12 446.26/297.12 We are left with following problem, upon which TcT provides the 446.26/297.12 certificate YES(O(1),O(1)). 446.26/297.12 446.26/297.12 Weak Trs: 446.26/297.12 { top(sent(x)) -> top(check(rest(x))) 446.26/297.12 , check(sent(x)) -> sent(check(x)) 446.26/297.12 , check(rest(x)) -> rest(check(x)) 446.26/297.12 , check(cons(x, y)) -> cons(x, y) 446.26/297.12 , check(cons(x, y)) -> cons(x, check(y)) 446.26/297.12 , check(cons(x, y)) -> cons(check(x), y) 446.26/297.12 , rest(nil()) -> sent(nil()) 446.26/297.12 , rest(cons(x, y)) -> sent(y) } 446.26/297.12 Obligation: 446.26/297.12 derivational complexity 446.26/297.12 Answer: 446.26/297.12 YES(O(1),O(1)) 446.26/297.12 446.26/297.12 Empty rules are trivially bounded 446.26/297.12 446.26/297.12 Hurray, we answered YES(O(1),O(n^2)) 446.26/297.13 EOF