Problem SK90 4.28

Tool CaT

Execution TimeUnknown
Answer
MAYBE
InputSK90 4.28

stdout:

MAYBE

Problem:
 f(x,nil()) -> g(nil(),x)
 f(x,g(y,z)) -> g(f(x,y),z)
 ++(x,nil()) -> x
 ++(x,g(y,z)) -> g(++(x,y),z)
 null(nil()) -> true()
 null(g(x,y)) -> false()
 mem(nil(),y) -> false()
 mem(g(x,y),z) -> or(=(y,z),mem(x,z))
 mem(x,max(x)) -> not(null(x))
 max(g(g(nil(),x),y)) -> max'(x,y)
 max(g(g(g(x,y),z),u())) -> max'(max(g(g(x,y),z)),u())

Proof:
 Open

Tool IRC1

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

Tool IRC2

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           YES(?,O(n^1))
Input Problem:    innermost runtime-complexity with respect to
  Rules:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}

Proof Output:    
  'wdg' proved the best result:
  
  Details:
  --------
    'wdg' succeeded with the following output:
     'wdg'
     -----
     Answer:           YES(?,O(n^1))
     Input Problem:    innermost runtime-complexity with respect to
       Rules:
         {  f(x, nil()) -> g(nil(), x)
          , f(x, g(y, z)) -> g(f(x, y), z)
          , ++(x, nil()) -> x
          , ++(x, g(y, z)) -> g(++(x, y), z)
          , null(nil()) -> true()
          , null(g(x, y)) -> false()
          , mem(nil(), y) -> false()
          , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
          , mem(x, max(x)) -> not(null(x))
          , max(g(g(nil(), x), y)) -> max'(x, y)
          , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
     
     Proof Output:    
       Transformation Details:
       -----------------------
         We have computed the following set of weak (innermost) dependency pairs:
         
           {  1: f^#(x, nil()) -> c_0()
            , 2: f^#(x, g(y, z)) -> c_1(f^#(x, y))
            , 3: ++^#(x, nil()) -> c_2()
            , 4: ++^#(x, g(y, z)) -> c_3(++^#(x, y))
            , 5: null^#(nil()) -> c_4()
            , 6: null^#(g(x, y)) -> c_5()
            , 7: mem^#(nil(), y) -> c_6()
            , 8: mem^#(g(x, y), z) -> c_7(mem^#(x, z))
            , 9: mem^#(x, max(x)) -> c_8(null^#(x))
            , 10: max^#(g(g(nil(), x), y)) -> c_9()
            , 11: max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
         
         Following Dependency Graph (modulo SCCs) was computed. (Answers to
         subproofs are indicated to the right.)
         
           ->{11}                                                      [   YES(?,O(n^1))    ]
              |
              `->{10}                                                  [    YES(?,O(1))     ]
           
           ->{8}                                                       [   YES(?,O(n^1))    ]
              |
              |->{7}                                                   [   YES(?,O(n^1))    ]
              |
              `->{9}                                                   [   YES(?,O(n^1))    ]
                  |
                  |->{5}                                               [   YES(?,O(n^1))    ]
                  |
                  `->{6}                                               [   YES(?,O(n^1))    ]
           
           ->{4}                                                       [   YES(?,O(n^1))    ]
              |
              `->{3}                                                   [   YES(?,O(n^1))    ]
           
           ->{2}                                                       [   YES(?,O(n^1))    ]
              |
              `->{1}                                                   [   YES(?,O(n^1))    ]
           
         
       
       Sub-problems:
       -------------
         * Path {2}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {1}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [3] x1 + [3] x2 + [0]
              c_0() = [0]
              c_1(x1) = [1] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {f^#(x, g(y, z)) -> c_1(f^#(x, y))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(f^#) = {}, Uargs(c_1) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [0] x2 + [4]
              f^#(x1, x2) = [7] x1 + [2] x2 + [0]
              c_1(x1) = [1] x1 + [7]
         
         * Path {2}->{1}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {1}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [1] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {f^#(x, nil()) -> c_0()}
             Weak Rules: {f^#(x, g(y, z)) -> c_1(f^#(x, y))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(f^#) = {}, Uargs(c_1) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [0] x2 + [2]
              f^#(x1, x2) = [7] x1 + [2] x2 + [4]
              c_0() = [1]
              c_1(x1) = [1] x1 + [4]
         
         * Path {4}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {1},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [3] x1 + [3] x2 + [0]
              c_2() = [0]
              c_3(x1) = [1] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {++^#(x, g(y, z)) -> c_3(++^#(x, y))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(++^#) = {}, Uargs(c_3) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [0] x2 + [4]
              ++^#(x1, x2) = [7] x1 + [2] x2 + [0]
              c_3(x1) = [1] x1 + [7]
         
         * Path {4}->{3}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {1},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [1] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {++^#(x, nil()) -> c_2()}
             Weak Rules: {++^#(x, g(y, z)) -> c_3(++^#(x, y))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(++^#) = {}, Uargs(c_3) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [0] x2 + [2]
              ++^#(x1, x2) = [7] x1 + [2] x2 + [4]
              c_2() = [1]
              c_3(x1) = [1] x1 + [4]
         
         * Path {8}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [3] x1 + [1] x2 + [0]
              c_6() = [0]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {mem^#(g(x, y), z) -> c_7(mem^#(x, z))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [0] x2 + [4]
              mem^#(x1, x2) = [2] x1 + [7] x2 + [0]
              c_7(x1) = [1] x1 + [7]
         
         * Path {8}->{7}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {mem^#(nil(), y) -> c_6()}
             Weak Rules: {mem^#(g(x, y), z) -> c_7(mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [0] x2 + [2]
              mem^#(x1, x2) = [6] x1 + [7] x2 + [0]
              c_6() = [1]
              c_7(x1) = [1] x1 + [7]
         
         * Path {8}->{9}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [2] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [3] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [1] x1 + [3] x2 + [0]
              c_6() = [0]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [2] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {mem^#(x, max(x)) -> c_8(null^#(x))}
             Weak Rules: {mem^#(g(x, y), z) -> c_7(mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {1}, Uargs(c_8) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [0] x2 + [2]
              max(x1) = [2] x1 + [2]
              null^#(x1) = [0] x1 + [2]
              mem^#(x1, x2) = [3] x1 + [3] x2 + [2]
              c_7(x1) = [1] x1 + [6]
              c_8(x1) = [2] x1 + [3]
         
         * Path {8}->{9}->{5}: YES(?,O(n^1))
           ---------------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1},
               Uargs(c_8) = {1}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [1] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {null^#(nil()) -> c_4()}
             Weak Rules:
               {  mem^#(x, max(x)) -> c_8(null^#(x))
                , mem^#(g(x, y), z) -> c_7(mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {1}, Uargs(c_8) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [0] x2 + [0]
              max(x1) = [2] x1 + [0]
              null^#(x1) = [2] x1 + [4]
              c_4() = [1]
              mem^#(x1, x2) = [4] x1 + [2] x2 + [4]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [1] x1 + [0]
         
         * Path {8}->{9}->{6}: YES(?,O(n^1))
           ---------------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {1},
               Uargs(c_8) = {1}, Uargs(max^#) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [1] x1 + [0]
              c_8(x1) = [1] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {null^#(g(x, y)) -> c_5()}
             Weak Rules:
               {  mem^#(x, max(x)) -> c_8(null^#(x))
                , mem^#(g(x, y), z) -> c_7(mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {1}, Uargs(c_8) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [0] x2 + [2]
              max(x1) = [2] x1 + [2]
              null^#(x1) = [2] x1 + [4]
              c_5() = [1]
              mem^#(x1, x2) = [2] x1 + [6] x2 + [0]
              c_7(x1) = [1] x1 + [3]
              c_8(x1) = [2] x1 + [0]
         
         * Path {11}: YES(?,O(n^1))
           ------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [3] x1 + [0]
              c_9() = [0]
              c_10(x1) = [1] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules:
               {max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max^#) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              u() = [1]
              max^#(x1) = [2] x1 + [0]
              c_10(x1) = [1] x1 + [1]
         
         * Path {11}->{10}: YES(?,O(1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_1) = {}, Uargs(++^#) = {}, Uargs(c_3) = {},
               Uargs(null^#) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {},
               Uargs(c_8) = {}, Uargs(max^#) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0() = [0]
              c_1(x1) = [0] x1 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2() = [0]
              c_3(x1) = [0] x1 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1) = [0] x1 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9() = [0]
              c_10(x1) = [1] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(1))
           Input Problem:    innermost DP runtime-complexity with respect to
             Strict Rules: {max^#(g(g(nil(), x), y)) -> c_9()}
             Weak Rules:
               {max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max^#) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [2]
              u() = [0]
              max^#(x1) = [2] x1 + [0]
              c_9() = [1]
              c_10(x1) = [1] x1 + [0]

Tool RC1

Execution TimeUnknown
Answer
MAYBE
InputSK90 4.28

stdout:

MAYBE

Tool RC2

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           YES(?,O(n^1))
Input Problem:    runtime-complexity with respect to
  Rules:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}

Proof Output:    
  'wdg' proved the best result:
  
  Details:
  --------
    'wdg' succeeded with the following output:
     'wdg'
     -----
     Answer:           YES(?,O(n^1))
     Input Problem:    runtime-complexity with respect to
       Rules:
         {  f(x, nil()) -> g(nil(), x)
          , f(x, g(y, z)) -> g(f(x, y), z)
          , ++(x, nil()) -> x
          , ++(x, g(y, z)) -> g(++(x, y), z)
          , null(nil()) -> true()
          , null(g(x, y)) -> false()
          , mem(nil(), y) -> false()
          , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
          , mem(x, max(x)) -> not(null(x))
          , max(g(g(nil(), x), y)) -> max'(x, y)
          , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
     
     Proof Output:    
       Transformation Details:
       -----------------------
         We have computed the following set of weak (innermost) dependency pairs:
         
           {  1: f^#(x, nil()) -> c_0(x)
            , 2: f^#(x, g(y, z)) -> c_1(f^#(x, y), z)
            , 3: ++^#(x, nil()) -> c_2(x)
            , 4: ++^#(x, g(y, z)) -> c_3(++^#(x, y), z)
            , 5: null^#(nil()) -> c_4()
            , 6: null^#(g(x, y)) -> c_5()
            , 7: mem^#(nil(), y) -> c_6()
            , 8: mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))
            , 9: mem^#(x, max(x)) -> c_8(null^#(x))
            , 10: max^#(g(g(nil(), x), y)) -> c_9(x, y)
            , 11: max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
         
         Following Dependency Graph (modulo SCCs) was computed. (Answers to
         subproofs are indicated to the right.)
         
           ->{11}                                                      [   YES(?,O(n^1))    ]
              |
              `->{10}                                                  [   YES(?,O(n^1))    ]
           
           ->{8}                                                       [   YES(?,O(n^1))    ]
              |
              |->{7}                                                   [   YES(?,O(n^1))    ]
              |
              `->{9}                                                   [   YES(?,O(n^1))    ]
                  |
                  |->{5}                                               [   YES(?,O(n^1))    ]
                  |
                  `->{6}                                               [   YES(?,O(n^1))    ]
           
           ->{4}                                                       [   YES(?,O(n^1))    ]
              |
              `->{3}                                                   [   YES(?,O(n^1))    ]
           
           ->{2}                                                       [   YES(?,O(n^1))    ]
              |
              `->{1}                                                   [   YES(?,O(n^1))    ]
           
         
       
       Sub-problems:
       -------------
         * Path {2}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {1}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [3] x1 + [3] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [1] x1 + [1] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {f^#(x, g(y, z)) -> c_1(f^#(x, y), z)}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(f^#) = {}, Uargs(c_1) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [4]
              f^#(x1, x2) = [7] x1 + [2] x2 + [0]
              c_1(x1, x2) = [1] x1 + [0] x2 + [7]
         
         * Path {2}->{1}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {1}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [3] x1 + [0] x2 + [0]
              c_0(x1) = [1] x1 + [0]
              c_1(x1, x2) = [1] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {f^#(x, nil()) -> c_0(x)}
             Weak Rules: {f^#(x, g(y, z)) -> c_1(f^#(x, y), z)}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(f^#) = {}, Uargs(c_0) = {}, Uargs(c_1) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              f^#(x1, x2) = [7] x1 + [2] x2 + [1]
              c_0(x1) = [1] x1 + [0]
              c_1(x1, x2) = [1] x1 + [0] x2 + [1]
         
         * Path {4}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {1}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [3] x1 + [3] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [1] x1 + [1] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {++^#(x, g(y, z)) -> c_3(++^#(x, y), z)}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(++^#) = {}, Uargs(c_3) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [4]
              ++^#(x1, x2) = [7] x1 + [2] x2 + [0]
              c_3(x1, x2) = [1] x1 + [0] x2 + [7]
         
         * Path {4}->{3}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {1}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [3] x1 + [0] x2 + [0]
              c_2(x1) = [1] x1 + [0]
              c_3(x1, x2) = [1] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {++^#(x, nil()) -> c_2(x)}
             Weak Rules: {++^#(x, g(y, z)) -> c_3(++^#(x, y), z)}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(++^#) = {}, Uargs(c_2) = {}, Uargs(c_3) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              ++^#(x1, x2) = [7] x1 + [2] x2 + [1]
              c_2(x1) = [1] x1 + [0]
              c_3(x1, x2) = [1] x1 + [0] x2 + [1]
         
         * Path {8}: YES(?,O(n^1))
           -----------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [3] x1 + [3] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [1] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {3}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              mem^#(x1, x2) = [6] x1 + [7] x2 + [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [3]
         
         * Path {8}->{7}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {mem^#(nil(), y) -> c_6()}
             Weak Rules: {mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(mem^#) = {}, Uargs(c_7) = {3}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              mem^#(x1, x2) = [2] x1 + [7] x2 + [4]
              c_6() = [1]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [3]
         
         * Path {8}->{9}: YES(?,O(n^1))
           ----------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [2] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [3] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [1] x1 + [3] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [2] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {mem^#(x, max(x)) -> c_8(null^#(x))}
             Weak Rules: {mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              max(x1) = [0] x1 + [2]
              null^#(x1) = [2] x1 + [0]
              mem^#(x1, x2) = [6] x1 + [2] x2 + [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [3]
              c_8(x1) = [2] x1 + [3]
         
         * Path {8}->{9}->{5}: YES(?,O(n^1))
           ---------------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {1},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [1] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {null^#(nil()) -> c_4()}
             Weak Rules:
               {  mem^#(x, max(x)) -> c_8(null^#(x))
                , mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [2]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              max(x1) = [0] x1 + [2]
              null^#(x1) = [2] x1 + [4]
              c_4() = [1]
              mem^#(x1, x2) = [4] x1 + [6] x2 + [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [2] x1 + [3]
         
         * Path {8}->{9}->{6}: YES(?,O(n^1))
           ---------------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {1},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [1] x1 + [0]
              max^#(x1) = [0] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [0] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {null^#(g(x, y)) -> c_5()}
             Weak Rules:
               {  mem^#(x, max(x)) -> c_8(null^#(x))
                , mem^#(g(x, y), z) -> c_7(y, z, mem^#(x, z))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {3}, Uargs(c_8) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [2]
              max(x1) = [2] x1 + [2]
              null^#(x1) = [2] x1 + [4]
              c_5() = [1]
              mem^#(x1, x2) = [2] x1 + [6] x2 + [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [1] x3 + [0]
              c_8(x1) = [2] x1 + [3]
         
         * Path {11}: YES(?,O(n^1))
           ------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [3] x1 + [0]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [1] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(n^1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules:
               {max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
             Weak Rules: {}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max^#) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              u() = [1]
              max^#(x1) = [2] x1 + [0]
              c_10(x1) = [1] x1 + [1]
         
         * Path {11}->{10}: YES(?,O(n^1))
           ------------------------------
           
           The usable rules of this path are empty.
           
           The weightgap principle applies, using the following adequate RMI:
             The following argument positions are usable:
               Uargs(f) = {}, Uargs(g) = {}, Uargs(++) = {}, Uargs(null) = {},
               Uargs(mem) = {}, Uargs(or) = {}, Uargs(=) = {}, Uargs(max) = {},
               Uargs(not) = {}, Uargs(max') = {}, Uargs(f^#) = {},
               Uargs(c_0) = {}, Uargs(c_1) = {}, Uargs(++^#) = {},
               Uargs(c_2) = {}, Uargs(c_3) = {}, Uargs(null^#) = {},
               Uargs(mem^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {},
               Uargs(max^#) = {}, Uargs(c_9) = {}, Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              f(x1, x2) = [0] x1 + [0] x2 + [0]
              nil() = [0]
              g(x1, x2) = [1] x1 + [1] x2 + [0]
              ++(x1, x2) = [0] x1 + [0] x2 + [0]
              null(x1) = [0] x1 + [0]
              true() = [0]
              false() = [0]
              mem(x1, x2) = [0] x1 + [0] x2 + [0]
              or(x1, x2) = [0] x1 + [0] x2 + [0]
              =(x1, x2) = [0] x1 + [0] x2 + [0]
              max(x1) = [0] x1 + [0]
              not(x1) = [0] x1 + [0]
              max'(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              f^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_0(x1) = [0] x1 + [0]
              c_1(x1, x2) = [0] x1 + [0] x2 + [0]
              ++^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_2(x1) = [0] x1 + [0]
              c_3(x1, x2) = [0] x1 + [0] x2 + [0]
              null^#(x1) = [0] x1 + [0]
              c_4() = [0]
              c_5() = [0]
              mem^#(x1, x2) = [0] x1 + [0] x2 + [0]
              c_6() = [0]
              c_7(x1, x2, x3) = [0] x1 + [0] x2 + [0] x3 + [0]
              c_8(x1) = [0] x1 + [0]
              max^#(x1) = [3] x1 + [0]
              c_9(x1, x2) = [1] x1 + [1] x2 + [0]
              c_10(x1) = [1] x1 + [0]
           
           We apply the sub-processor on the resulting sub-problem:
           
           'matrix-interpretation of dimension 1'
           --------------------------------------
           Answer:           YES(?,O(1))
           Input Problem:    DP runtime-complexity with respect to
             Strict Rules: {max^#(g(g(nil(), x), y)) -> c_9(x, y)}
             Weak Rules:
               {max^#(g(g(g(x, y), z), u())) -> c_10(max^#(g(g(x, y), z)))}
           
           Proof Output:    
             The following argument positions are usable:
               Uargs(g) = {}, Uargs(max^#) = {}, Uargs(c_9) = {},
               Uargs(c_10) = {1}
             We have the following constructor-restricted matrix interpretation:
             Interpretation Functions:
              nil() = [0]
              g(x1, x2) = [0] x1 + [0] x2 + [0]
              u() = [0]
              max^#(x1) = [0] x1 + [1]
              c_9(x1, x2) = [0] x1 + [0] x2 + [0]
              c_10(x1) = [1] x1 + [0]

Tool pair1rc

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none

Certificate: YES(?,O(n^1))

Application of 'pair1 (timeout of 60.0 seconds)':
-------------------------------------------------
  The processor is not applicable, reason is:
   Input problem is not restricted to innermost rewriting
  
  We abort the transformation and continue with the subprocessor on the problem
  
  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none
  
  1) 'Fastest' proved the goal fastest:
     
     'Sequentially' proved the goal fastest:
     
     'Fastest' succeeded:
     
     'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
     
     The following argument positions are usable:
       Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
       Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
       Uargs(not) = {1}, Uargs(max') = {1}
     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
     Interpretation Functions:
      f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
                  [1 2]      [0 0]      [0]
      nil() = [2]
              [0]
      g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                  [0 0]      [0 0]      [0]
      ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                   [2 2]      [0 0]      [0]
      null(x1) = [0 0] x1 + [1]
                 [0 0]      [0]
      true() = [0]
               [0]
      false() = [0]
                [0]
      mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                    [0 0]      [0 0]      [0]
      or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                   [0 0]      [0 0]      [0]
      =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
                  [0 0]      [0 0]      [0]
      max(x1) = [1 0] x1 + [0]
                [0 0]      [2]
      not(x1) = [1 0] x1 + [0]
                [0 0]      [0]
      max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                     [0 0]      [0 0]      [1]
      u() = [0]
            [0]
  

Hurray, we answered YES(?,O(n^1))

Tool pair2rc

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none

Certificate: YES(?,O(n^1))

Application of 'pair2 (timeout of 60.0 seconds)':
-------------------------------------------------
  The processor is not applicable, reason is:
   Input problem is not restricted to innermost rewriting
  
  We abort the transformation and continue with the subprocessor on the problem
  
  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none
  
  1) 'Fastest' proved the goal fastest:
     
     'Sequentially' proved the goal fastest:
     
     'Fastest' succeeded:
     
     'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
     
     The following argument positions are usable:
       Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
       Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
       Uargs(not) = {1}, Uargs(max') = {1}
     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
     Interpretation Functions:
      f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
                  [1 2]      [0 0]      [0]
      nil() = [2]
              [0]
      g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                  [0 0]      [0 0]      [0]
      ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                   [2 2]      [0 0]      [0]
      null(x1) = [0 0] x1 + [1]
                 [0 0]      [0]
      true() = [0]
               [0]
      false() = [0]
                [0]
      mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                    [0 0]      [0 0]      [0]
      or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                   [0 0]      [0 0]      [0]
      =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
                  [0 0]      [0 0]      [0]
      max(x1) = [1 0] x1 + [0]
                [0 0]      [2]
      not(x1) = [1 0] x1 + [0]
                [0 0]      [0]
      max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                     [0 0]      [0 0]      [1]
      u() = [0]
            [0]
  

Hurray, we answered YES(?,O(n^1))

Tool pair3irc

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: innermost

Certificate: YES(?,O(n^1))

Application of 'pair3 (timeout of 60.0 seconds)':
-------------------------------------------------
  The input problem contains no overlaps that give rise to inapplicable rules.
  
  We abort the transformation and continue with the subprocessor on the problem
  
  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: innermost
  
  1) 'Fastest' proved the goal fastest:
     
     'Sequentially' proved the goal fastest:
     
     'Fastest' succeeded:
     
     'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
     
     The following argument positions are usable:
       Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
       Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
       Uargs(not) = {1}, Uargs(max') = {1}
     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
     Interpretation Functions:
      f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
                  [1 2]      [0 0]      [0]
      nil() = [2]
              [0]
      g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                  [0 0]      [0 0]      [0]
      ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                   [2 2]      [0 0]      [0]
      null(x1) = [0 0] x1 + [1]
                 [0 0]      [0]
      true() = [0]
               [0]
      false() = [0]
                [0]
      mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                    [0 0]      [0 0]      [0]
      or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                   [0 0]      [0 0]      [0]
      =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
                  [0 0]      [0 0]      [0]
      max(x1) = [1 0] x1 + [0]
                [0 0]      [2]
      not(x1) = [1 0] x1 + [0]
                [0 0]      [0]
      max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                     [0 0]      [0 0]      [1]
      u() = [0]
            [0]
  

Hurray, we answered YES(?,O(n^1))

Tool pair3rc

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none

Certificate: YES(?,O(n^1))

Application of 'pair3 (timeout of 60.0 seconds)':
-------------------------------------------------
  The processor is not applicable, reason is:
   Input problem is not restricted to innermost rewriting
  
  We abort the transformation and continue with the subprocessor on the problem
  
  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none
  
  1) 'Fastest' proved the goal fastest:
     
     'Sequentially' proved the goal fastest:
     
     'Fastest' succeeded:
     
     'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
     
     The following argument positions are usable:
       Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
       Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
       Uargs(not) = {1}, Uargs(max') = {1}
     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
     Interpretation Functions:
      f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
                  [1 2]      [0 0]      [0]
      nil() = [2]
              [0]
      g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                  [0 0]      [0 0]      [0]
      ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                   [2 2]      [0 0]      [0]
      null(x1) = [0 0] x1 + [1]
                 [0 0]      [0]
      true() = [0]
               [0]
      false() = [0]
                [0]
      mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                    [0 0]      [0 0]      [0]
      or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                   [0 0]      [0 0]      [0]
      =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
                  [0 0]      [0 0]      [0]
      max(x1) = [1 0] x1 + [0]
                [0 0]      [2]
      not(x1) = [1 0] x1 + [0]
                [0 0]      [0]
      max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                     [0 0]      [0 0]      [1]
      u() = [0]
            [0]
  

Hurray, we answered YES(?,O(n^1))

Tool rc

Execution TimeUnknown
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: none

Certificate: YES(?,O(n^1))

Application of 'rc (timeout of 60.0 seconds)':
----------------------------------------------
  'Fastest' proved the goal fastest:
  
  'Sequentially' proved the goal fastest:
  
  'Fastest' succeeded:
  
  'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
  
  The following argument positions are usable:
    Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
    Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
    Uargs(not) = {1}, Uargs(max') = {1}
  We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
  Interpretation Functions:
   f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
               [1 2]      [0 0]      [0]
   nil() = [2]
           [0]
   g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
               [0 0]      [0 0]      [0]
   ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                [2 2]      [0 0]      [0]
   null(x1) = [0 0] x1 + [1]
              [0 0]      [0]
   true() = [0]
            [0]
   false() = [0]
             [0]
   mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                 [0 0]      [0 0]      [0]
   or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                [0 0]      [0 0]      [0]
   =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
               [0 0]      [0 0]      [0]
   max(x1) = [1 0] x1 + [0]
             [0 0]      [2]
   not(x1) = [1 0] x1 + [0]
             [0 0]      [0]
   max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                  [0 0]      [0 0]      [1]
   u() = [0]
         [0]

Hurray, we answered YES(?,O(n^1))

Tool tup3irc

Execution Time1.775197ms
Answer
YES(?,O(n^1))
InputSK90 4.28

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: innermost

Certificate: YES(?,O(n^1))

Application of 'tup3 (timeout of 60.0 seconds)':
------------------------------------------------
  The input problem contains no overlaps that give rise to inapplicable rules.
  
  We abort the transformation and continue with the subprocessor on the problem
  
  Strict Trs:
    {  f(x, nil()) -> g(nil(), x)
     , f(x, g(y, z)) -> g(f(x, y), z)
     , ++(x, nil()) -> x
     , ++(x, g(y, z)) -> g(++(x, y), z)
     , null(nil()) -> true()
     , null(g(x, y)) -> false()
     , mem(nil(), y) -> false()
     , mem(g(x, y), z) -> or(=(y, z), mem(x, z))
     , mem(x, max(x)) -> not(null(x))
     , max(g(g(nil(), x), y)) -> max'(x, y)
     , max(g(g(g(x, y), z), u())) -> max'(max(g(g(x, y), z)), u())}
  StartTerms: basic terms
  Strategy: innermost
  
  1) 'Fastest' proved the goal fastest:
     
     'Sequentially' proved the goal fastest:
     
     'Fastest' succeeded:
     
     'matrix-interpretation of dimension 2 (timeout of 100.0 seconds)' proved the goal fastest:
     
     The following argument positions are usable:
       Uargs(f) = {}, Uargs(g) = {1}, Uargs(++) = {}, Uargs(null) = {},
       Uargs(mem) = {}, Uargs(or) = {2}, Uargs(=) = {}, Uargs(max) = {},
       Uargs(not) = {1}, Uargs(max') = {1}
     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
     Interpretation Functions:
      f(x1, x2) = [1 1] x1 + [2 0] x2 + [0]
                  [1 2]      [0 0]      [0]
      nil() = [2]
              [0]
      g(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                  [0 0]      [0 0]      [0]
      ++(x1, x2) = [1 2] x1 + [2 0] x2 + [0]
                   [2 2]      [0 0]      [0]
      null(x1) = [0 0] x1 + [1]
                 [0 0]      [0]
      true() = [0]
               [0]
      false() = [0]
                [0]
      mem(x1, x2) = [2 0] x1 + [2 2] x2 + [0]
                    [0 0]      [0 0]      [0]
      or(x1, x2) = [0 2] x1 + [1 0] x2 + [1]
                   [0 0]      [0 0]      [0]
      =(x1, x2) = [1 2] x1 + [1 2] x2 + [1]
                  [0 0]      [0 0]      [0]
      max(x1) = [1 0] x1 + [0]
                [0 0]      [2]
      not(x1) = [1 0] x1 + [0]
                [0 0]      [0]
      max'(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                     [0 0]      [0 0]      [1]
      u() = [0]
            [0]
  

Hurray, we answered YES(?,O(n^1))