Problem SK90 2.39

Tool CaT

Execution TimeUnknown
Answer
MAYBE
InputSK90 2.39

stdout:

MAYBE

Problem:
 rev(nil()) -> nil()
 rev(.(x,y)) -> ++(rev(y),.(x,nil()))
 car(.(x,y)) -> x
 cdr(.(x,y)) -> y
 null(nil()) -> true()
 null(.(x,y)) -> false()
 ++(nil(),y) -> y
 ++(.(x,y),z) -> .(x,++(y,z))

Proof:
 Complexity Transformation Processor:
  strict:
   rev(nil()) -> nil()
   rev(.(x,y)) -> ++(rev(y),.(x,nil()))
   car(.(x,y)) -> x
   cdr(.(x,y)) -> y
   null(nil()) -> true()
   null(.(x,y)) -> false()
   ++(nil(),y) -> y
   ++(.(x,y),z) -> .(x,++(y,z))
  weak:
   
  Matrix Interpretation Processor:
   dimension: 1
   max_matrix:
    1
    interpretation:
     [false] = 0,
     
     [true] = 0,
     
     [null](x0) = x0 + 16,
     
     [cdr](x0) = x0 + 68,
     
     [car](x0) = x0,
     
     [++](x0, x1) = x0 + x1 + 36,
     
     [.](x0, x1) = x0 + x1 + 16,
     
     [rev](x0) = x0 + 106,
     
     [nil] = 33
    orientation:
     rev(nil()) = 139 >= 33 = nil()
     
     rev(.(x,y)) = x + y + 122 >= x + y + 191 = ++(rev(y),.(x,nil()))
     
     car(.(x,y)) = x + y + 16 >= x = x
     
     cdr(.(x,y)) = x + y + 84 >= y = y
     
     null(nil()) = 49 >= 0 = true()
     
     null(.(x,y)) = x + y + 32 >= 0 = false()
     
     ++(nil(),y) = y + 69 >= y = y
     
     ++(.(x,y),z) = x + y + z + 52 >= x + y + z + 52 = .(x,++(y,z))
    problem:
     strict:
      rev(.(x,y)) -> ++(rev(y),.(x,nil()))
      ++(.(x,y),z) -> .(x,++(y,z))
     weak:
      rev(nil()) -> nil()
      car(.(x,y)) -> x
      cdr(.(x,y)) -> y
      null(nil()) -> true()
      null(.(x,y)) -> false()
      ++(nil(),y) -> y
    Bounds Processor:
     bound: 1
     enrichment: match
     automaton:
      final states: {9,8,7,6,5}
      transitions:
       ++1(10,11) -> 10*
       ++1(12,11) -> 12,5
       rev1(2) -> 12*
       rev1(4) -> 12*
       rev1(1) -> 12*
       rev1(3) -> 12*
       .1(2,10) -> 11*
       .1(4,10) -> 11*
       .1(1,10) -> 11*
       .1(3,10) -> 11*
       nil1() -> 12,10
       rev0(2) -> 5*
       rev0(4) -> 5*
       rev0(1) -> 5*
       rev0(3) -> 5*
       .0(3,1) -> 1*
       .0(3,3) -> 1*
       .0(4,2) -> 1*
       .0(4,4) -> 1*
       .0(4,6) -> 6*
       .0(1,2) -> 1*
       .0(1,4) -> 1*
       .0(1,6) -> 6*
       .0(2,1) -> 1*
       .0(2,3) -> 1*
       .0(3,2) -> 1*
       .0(3,4) -> 1*
       .0(3,6) -> 6*
       .0(4,1) -> 1*
       .0(4,3) -> 1*
       .0(1,1) -> 1*
       .0(1,3) -> 1*
       .0(2,2) -> 1*
       .0(2,4) -> 1*
       .0(2,6) -> 6*
       ++0(3,1) -> 6*
       ++0(3,3) -> 6*
       ++0(4,2) -> 6*
       ++0(4,4) -> 6*
       ++0(1,2) -> 6*
       ++0(1,4) -> 6*
       ++0(2,1) -> 6*
       ++0(2,3) -> 6*
       ++0(3,2) -> 6*
       ++0(3,4) -> 6*
       ++0(4,1) -> 6*
       ++0(4,3) -> 6*
       ++0(1,1) -> 6*
       ++0(1,3) -> 6*
       ++0(2,2) -> 6*
       ++0(2,4) -> 6*
       nil0() -> 5,2
       car0(2) -> 7*
       car0(4) -> 7*
       car0(1) -> 7*
       car0(3) -> 7*
       cdr0(2) -> 8*
       cdr0(4) -> 8*
       cdr0(1) -> 8*
       cdr0(3) -> 8*
       null0(2) -> 9*
       null0(4) -> 9*
       null0(1) -> 9*
       null0(3) -> 9*
       true0() -> 9,3
       false0() -> 9,4
       1 -> 6,8,7
       2 -> 6,8,7
       3 -> 6,8,7
       4 -> 6,8,7
       11 -> 10,5,12
     problem:
      strict:
       ++(.(x,y),z) -> .(x,++(y,z))
      weak:
       rev(.(x,y)) -> ++(rev(y),.(x,nil()))
       rev(nil()) -> nil()
       car(.(x,y)) -> x
       cdr(.(x,y)) -> y
       null(nil()) -> true()
       null(.(x,y)) -> false()
       ++(nil(),y) -> y
     Open
 

Tool IRC1

Execution TimeUnknown
Answer
MAYBE
InputSK90 2.39

stdout:

MAYBE

Tool IRC2

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           TIMEOUT
Input Problem:    innermost runtime-complexity with respect to
  Rules:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}

Proof Output:    
  Computation stopped due to timeout after 60.0 seconds

Tool RC1

Execution TimeUnknown
Answer
MAYBE
InputSK90 2.39

stdout:

MAYBE

Tool RC2

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

'Fastest (timeout of 60.0 seconds)'
-----------------------------------
Answer:           TIMEOUT
Input Problem:    runtime-complexity with respect to
  Rules:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}

Proof Output:    
  Computation stopped due to timeout after 60.0 seconds

Tool pair1rc

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: none

Certificate: TIMEOUT

Application of 'pair1 (timeout of 60.0 seconds)':
-------------------------------------------------
  Computation stopped due to timeout after 60.0 seconds

Arrrr..

Tool pair2rc

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: none

Certificate: TIMEOUT

Application of 'pair2 (timeout of 60.0 seconds)':
-------------------------------------------------
  Computation stopped due to timeout after 60.0 seconds

Arrrr..

Tool pair3irc

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: innermost

Certificate: TIMEOUT

Application of 'pair3 (timeout of 60.0 seconds)':
-------------------------------------------------
  Computation stopped due to timeout after 60.0 seconds

Arrrr..

Tool pair3rc

Execution TimeUnknown
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: none

Certificate: TIMEOUT

Application of 'pair3 (timeout of 60.0 seconds)':
-------------------------------------------------
  Computation stopped due to timeout after 60.0 seconds

Arrrr..

Tool rc

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

stdout:

YES(?,O(n^1))

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: none

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

Application of 'rc (timeout of 60.0 seconds)':
----------------------------------------------
  'dp' proved the goal fastest:
  
  We have computed the following dependency pairs
  
  Strict Dependency Pairs:
    {  rev^#(nil()) -> c_1()
     , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
     , car^#(.(x, y)) -> c_3(x)
     , cdr^#(.(x, y)) -> c_4(y)
     , null^#(nil()) -> c_5()
     , null^#(.(x, y)) -> c_6()
     , ++^#(nil(), y) -> c_7(y)
     , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
  
  We consider the following Problem:
  
    Strict DPs:
      {  rev^#(nil()) -> c_1()
       , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
       , car^#(.(x, y)) -> c_3(x)
       , cdr^#(.(x, y)) -> c_4(y)
       , null^#(nil()) -> c_5()
       , null^#(.(x, y)) -> c_6()
       , ++^#(nil(), y) -> c_7(y)
       , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
    Strict Trs:
      {  rev(nil()) -> nil()
       , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
       , car(.(x, y)) -> x
       , cdr(.(x, y)) -> y
       , null(nil()) -> true()
       , null(.(x, y)) -> false()
       , ++(nil(), y) -> y
       , ++(.(x, y), z) -> .(x, ++(y, z))}
    StartTerms: basic terms
    Strategy: none
  
  Certificate: YES(?,O(n^1))
  
  Application of 'usablerules':
  -----------------------------
    We replace strict/weak-rules by the corresponding usable rules:
    
      Strict Usable Rules:
        {  rev(nil()) -> nil()
         , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
         , ++(nil(), y) -> y
         , ++(.(x, y), z) -> .(x, ++(y, z))}
    
    We consider the following Problem:
    
      Strict DPs:
        {  rev^#(nil()) -> c_1()
         , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
         , car^#(.(x, y)) -> c_3(x)
         , cdr^#(.(x, y)) -> c_4(y)
         , null^#(nil()) -> c_5()
         , null^#(.(x, y)) -> c_6()
         , ++^#(nil(), y) -> c_7(y)
         , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
      Strict Trs:
        {  rev(nil()) -> nil()
         , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
         , ++(nil(), y) -> y
         , ++(.(x, y), z) -> .(x, ++(y, z))}
      StartTerms: basic terms
      Strategy: none
    
    Certificate: YES(?,O(n^1))
    
    Application of 'Fastest':
    -------------------------
      'removetails >>> ... >>> ... >>> ...' proved the goal fastest:
      
      The processor is inapplicable since the strict component of the
      input problem is not empty
      
      We abort the transformation and continue with the subprocessor on the problem
      
      Strict DPs:
        {  rev^#(nil()) -> c_1()
         , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
         , car^#(.(x, y)) -> c_3(x)
         , cdr^#(.(x, y)) -> c_4(y)
         , null^#(nil()) -> c_5()
         , null^#(.(x, y)) -> c_6()
         , ++^#(nil(), y) -> c_7(y)
         , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
      Strict Trs:
        {  rev(nil()) -> nil()
         , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
         , ++(nil(), y) -> y
         , ++(.(x, y), z) -> .(x, ++(y, z))}
      StartTerms: basic terms
      Strategy: none
      
      1) The weightgap principle applies, where following rules are oriented strictly:
         
         Dependency Pairs:
           {  rev^#(nil()) -> c_1()
            , car^#(.(x, y)) -> c_3(x)
            , cdr^#(.(x, y)) -> c_4(y)
            , null^#(nil()) -> c_5()
            , null^#(.(x, y)) -> c_6()
            , ++^#(nil(), y) -> c_7(y)}
         
         Interpretation:
         ---------------
           The following argument positions are usable:
             Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1}, Uargs(car) = {},
             Uargs(cdr) = {}, Uargs(null) = {}, Uargs(rev^#) = {},
             Uargs(c_2) = {1}, Uargs(++^#) = {1}, Uargs(car^#) = {},
             Uargs(c_3) = {}, Uargs(cdr^#) = {}, Uargs(c_4) = {},
             Uargs(null^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {2}
           We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
           Interpretation Functions:
            rev(x1) = [1 0] x1 + [0]
                      [0 0]      [0]
            nil() = [0]
                    [0]
            .(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                        [0 0]      [0 0]      [0]
            ++(x1, x2) = [1 0] x1 + [1 0] x2 + [3]
                         [0 0]      [0 0]      [3]
            car(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
            cdr(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
            null(x1) = [0 0] x1 + [0]
                       [0 0]      [0]
            true() = [0]
                     [0]
            false() = [0]
                      [0]
            rev^#(x1) = [2 3] x1 + [3]
                        [0 0]      [3]
            c_1() = [0]
                    [1]
            c_2(x1) = [1 0] x1 + [3]
                      [0 1]      [3]
            ++^#(x1, x2) = [2 0] x1 + [0 0] x2 + [3]
                           [0 0]      [0 0]      [0]
            car^#(x1) = [3 3] x1 + [3]
                        [3 3]      [3]
            c_3(x1) = [1 0] x1 + [0]
                      [1 0]      [1]
            cdr^#(x1) = [3 3] x1 + [3]
                        [0 0]      [3]
            c_4(x1) = [1 0] x1 + [0]
                      [0 0]      [1]
            null^#(x1) = [3 3] x1 + [3]
                         [0 0]      [3]
            c_5() = [0]
                    [1]
            c_6() = [0]
                    [1]
            c_7(x1) = [0 0] x1 + [0]
                      [0 0]      [0]
            c_8(x1, x2) = [0 0] x1 + [1 0] x2 + [3]
                          [0 0]      [0 1]      [0]
         
         The strictly oriented rules are moved into the weak component.
         
         We consider the following Problem:
         
           Strict DPs:
             {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
              , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
           Strict Trs:
             {  rev(nil()) -> nil()
              , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
              , ++(nil(), y) -> y
              , ++(.(x, y), z) -> .(x, ++(y, z))}
           Weak DPs:
             {  rev^#(nil()) -> c_1()
              , car^#(.(x, y)) -> c_3(x)
              , cdr^#(.(x, y)) -> c_4(y)
              , null^#(nil()) -> c_5()
              , null^#(.(x, y)) -> c_6()
              , ++^#(nil(), y) -> c_7(y)}
           StartTerms: basic terms
           Strategy: none
         
         Certificate: YES(?,O(n^1))
         
         Application of 'removetails >>> ... >>> ... >>> ...':
         -----------------------------------------------------
           The processor is inapplicable since the strict component of the
           input problem is not empty
           
           We abort the transformation and continue with the subprocessor on the problem
           
           Strict DPs:
             {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
              , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
           Strict Trs:
             {  rev(nil()) -> nil()
              , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
              , ++(nil(), y) -> y
              , ++(.(x, y), z) -> .(x, ++(y, z))}
           Weak DPs:
             {  rev^#(nil()) -> c_1()
              , car^#(.(x, y)) -> c_3(x)
              , cdr^#(.(x, y)) -> c_4(y)
              , null^#(nil()) -> c_5()
              , null^#(.(x, y)) -> c_6()
              , ++^#(nil(), y) -> c_7(y)}
           StartTerms: basic terms
           Strategy: none
           
           1) The weightgap principle applies, where following rules are oriented strictly:
              
              TRS Component: {rev(nil()) -> nil()}
              
              Interpretation:
              ---------------
                The following argument positions are usable:
                  Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1}, Uargs(car) = {},
                  Uargs(cdr) = {}, Uargs(null) = {}, Uargs(rev^#) = {},
                  Uargs(c_2) = {1}, Uargs(++^#) = {1}, Uargs(car^#) = {},
                  Uargs(c_3) = {}, Uargs(cdr^#) = {}, Uargs(c_4) = {},
                  Uargs(null^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {2}
                We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                Interpretation Functions:
                 rev(x1) = [2 0] x1 + [0]
                           [2 0]      [0]
                 nil() = [2]
                         [0]
                 .(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                             [0 0]      [0 0]      [0]
                 ++(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                              [0 0]      [0 0]      [0]
                 car(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                 cdr(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                 null(x1) = [0 0] x1 + [0]
                            [0 0]      [0]
                 true() = [0]
                          [0]
                 false() = [0]
                           [0]
                 rev^#(x1) = [2 0] x1 + [1]
                             [2 0]      [0]
                 c_1() = [1]
                         [0]
                 c_2(x1) = [1 0] x1 + [3]
                           [0 1]      [2]
                 ++^#(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                                [0 0]      [0 0]      [0]
                 car^#(x1) = [0 0] x1 + [3]
                             [0 0]      [3]
                 c_3(x1) = [0 0] x1 + [1]
                           [0 0]      [1]
                 cdr^#(x1) = [0 0] x1 + [3]
                             [3 3]      [3]
                 c_4(x1) = [0 0] x1 + [1]
                           [1 0]      [1]
                 null^#(x1) = [0 0] x1 + [3]
                              [0 0]      [3]
                 c_5() = [1]
                         [1]
                 c_6() = [1]
                         [1]
                 c_7(x1) = [0 0] x1 + [0]
                           [0 0]      [0]
                 c_8(x1, x2) = [1 0] x1 + [1 0] x2 + [3]
                               [0 0]      [0 1]      [3]
              
              The strictly oriented rules are moved into the weak component.
              
              We consider the following Problem:
              
                Strict DPs:
                  {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                   , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                Strict Trs:
                  {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                   , ++(nil(), y) -> y
                   , ++(.(x, y), z) -> .(x, ++(y, z))}
                Weak DPs:
                  {  rev^#(nil()) -> c_1()
                   , car^#(.(x, y)) -> c_3(x)
                   , cdr^#(.(x, y)) -> c_4(y)
                   , null^#(nil()) -> c_5()
                   , null^#(.(x, y)) -> c_6()
                   , ++^#(nil(), y) -> c_7(y)}
                Weak Trs: {rev(nil()) -> nil()}
                StartTerms: basic terms
                Strategy: none
              
              Certificate: YES(?,O(n^1))
              
              Application of 'removetails >>> ... >>> ... >>> ...':
              -----------------------------------------------------
                The processor is inapplicable since the strict component of the
                input problem is not empty
                
                We abort the transformation and continue with the subprocessor on the problem
                
                Strict DPs:
                  {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                   , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                Strict Trs:
                  {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                   , ++(nil(), y) -> y
                   , ++(.(x, y), z) -> .(x, ++(y, z))}
                Weak DPs:
                  {  rev^#(nil()) -> c_1()
                   , car^#(.(x, y)) -> c_3(x)
                   , cdr^#(.(x, y)) -> c_4(y)
                   , null^#(nil()) -> c_5()
                   , null^#(.(x, y)) -> c_6()
                   , ++^#(nil(), y) -> c_7(y)}
                Weak Trs: {rev(nil()) -> nil()}
                StartTerms: basic terms
                Strategy: none
                
                1) The weightgap principle applies, where following rules are oriented strictly:
                   
                   TRS Component: {++(nil(), y) -> y}
                   
                   Interpretation:
                   ---------------
                     The following argument positions are usable:
                       Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1}, Uargs(car) = {},
                       Uargs(cdr) = {}, Uargs(null) = {}, Uargs(rev^#) = {},
                       Uargs(c_2) = {1}, Uargs(++^#) = {1}, Uargs(car^#) = {},
                       Uargs(c_3) = {}, Uargs(cdr^#) = {}, Uargs(c_4) = {},
                       Uargs(null^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {2}
                     We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                     Interpretation Functions:
                      rev(x1) = [2 0] x1 + [0]
                                [2 0]      [0]
                      nil() = [2]
                              [0]
                      .(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                                  [0 0]      [0 0]      [2]
                      ++(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                                   [0 2]      [0 2]      [0]
                      car(x1) = [0 0] x1 + [0]
                                [0 0]      [0]
                      cdr(x1) = [0 0] x1 + [0]
                                [0 0]      [0]
                      null(x1) = [0 0] x1 + [0]
                                 [0 0]      [0]
                      true() = [0]
                               [0]
                      false() = [0]
                                [0]
                      rev^#(x1) = [2 0] x1 + [1]
                                  [0 0]      [0]
                      c_1() = [1]
                              [0]
                      c_2(x1) = [1 0] x1 + [3]
                                [0 1]      [2]
                      ++^#(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                                     [0 0]      [0 0]      [0]
                      car^#(x1) = [3 3] x1 + [3]
                                  [0 0]      [3]
                      c_3(x1) = [1 0] x1 + [1]
                                [0 0]      [1]
                      cdr^#(x1) = [3 3] x1 + [3]
                                  [3 3]      [3]
                      c_4(x1) = [1 0] x1 + [1]
                                [1 0]      [1]
                      null^#(x1) = [0 0] x1 + [3]
                                   [0 0]      [3]
                      c_5() = [1]
                              [1]
                      c_6() = [1]
                              [1]
                      c_7(x1) = [0 0] x1 + [0]
                                [0 0]      [0]
                      c_8(x1, x2) = [1 0] x1 + [1 0] x2 + [3]
                                    [0 0]      [0 1]      [0]
                   
                   The strictly oriented rules are moved into the weak component.
                   
                   We consider the following Problem:
                   
                     Strict DPs:
                       {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                        , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                     Strict Trs:
                       {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                        , ++(.(x, y), z) -> .(x, ++(y, z))}
                     Weak DPs:
                       {  rev^#(nil()) -> c_1()
                        , car^#(.(x, y)) -> c_3(x)
                        , cdr^#(.(x, y)) -> c_4(y)
                        , null^#(nil()) -> c_5()
                        , null^#(.(x, y)) -> c_6()
                        , ++^#(nil(), y) -> c_7(y)}
                     Weak Trs:
                       {  ++(nil(), y) -> y
                        , rev(nil()) -> nil()}
                     StartTerms: basic terms
                     Strategy: none
                   
                   Certificate: YES(?,O(n^1))
                   
                   Application of 'removetails >>> ... >>> ... >>> ...':
                   -----------------------------------------------------
                     The processor is inapplicable since the strict component of the
                     input problem is not empty
                     
                     We abort the transformation and continue with the subprocessor on the problem
                     
                     Strict DPs:
                       {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                        , ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                     Strict Trs:
                       {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                        , ++(.(x, y), z) -> .(x, ++(y, z))}
                     Weak DPs:
                       {  rev^#(nil()) -> c_1()
                        , car^#(.(x, y)) -> c_3(x)
                        , cdr^#(.(x, y)) -> c_4(y)
                        , null^#(nil()) -> c_5()
                        , null^#(.(x, y)) -> c_6()
                        , ++^#(nil(), y) -> c_7(y)}
                     Weak Trs:
                       {  ++(nil(), y) -> y
                        , rev(nil()) -> nil()}
                     StartTerms: basic terms
                     Strategy: none
                     
                     1) The weightgap principle applies, where following rules are oriented strictly:
                        
                        Dependency Pairs:
                          {rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))}
                        
                        Interpretation:
                        ---------------
                          The following argument positions are usable:
                            Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1}, Uargs(car) = {},
                            Uargs(cdr) = {}, Uargs(null) = {}, Uargs(rev^#) = {},
                            Uargs(c_2) = {1}, Uargs(++^#) = {1}, Uargs(car^#) = {},
                            Uargs(c_3) = {}, Uargs(cdr^#) = {}, Uargs(c_4) = {},
                            Uargs(null^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {2}
                          We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                          Interpretation Functions:
                           rev(x1) = [1 0] x1 + [0]
                                     [0 0]      [0]
                           nil() = [0]
                                   [0]
                           .(x1, x2) = [1 2] x1 + [1 0] x2 + [0]
                                       [0 0]      [0 0]      [0]
                           ++(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                                        [0 0]      [0 2]      [0]
                           car(x1) = [0 0] x1 + [0]
                                     [0 0]      [0]
                           cdr(x1) = [0 0] x1 + [0]
                                     [0 0]      [0]
                           null(x1) = [0 0] x1 + [0]
                                      [0 0]      [0]
                           true() = [0]
                                    [0]
                           false() = [0]
                                     [0]
                           rev^#(x1) = [2 0] x1 + [1]
                                       [2 0]      [0]
                           c_1() = [1]
                                   [0]
                           c_2(x1) = [1 0] x1 + [0]
                                     [0 1]      [0]
                           ++^#(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                                          [0 0]      [0 0]      [0]
                           car^#(x1) = [0 0] x1 + [3]
                                       [3 3]      [3]
                           c_3(x1) = [0 0] x1 + [1]
                                     [1 0]      [1]
                           cdr^#(x1) = [3 3] x1 + [3]
                                       [3 3]      [3]
                           c_4(x1) = [1 0] x1 + [1]
                                     [1 0]      [1]
                           null^#(x1) = [0 0] x1 + [3]
                                        [0 0]      [3]
                           c_5() = [1]
                                   [1]
                           c_6() = [1]
                                   [1]
                           c_7(x1) = [0 0] x1 + [0]
                                     [0 0]      [0]
                           c_8(x1, x2) = [0 0] x1 + [1 0] x2 + [3]
                                         [0 0]      [0 1]      [3]
                        
                        The strictly oriented rules are moved into the weak component.
                        
                        We consider the following Problem:
                        
                          Strict DPs: {++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                          Strict Trs:
                            {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                             , ++(.(x, y), z) -> .(x, ++(y, z))}
                          Weak DPs:
                            {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                             , rev^#(nil()) -> c_1()
                             , car^#(.(x, y)) -> c_3(x)
                             , cdr^#(.(x, y)) -> c_4(y)
                             , null^#(nil()) -> c_5()
                             , null^#(.(x, y)) -> c_6()
                             , ++^#(nil(), y) -> c_7(y)}
                          Weak Trs:
                            {  ++(nil(), y) -> y
                             , rev(nil()) -> nil()}
                          StartTerms: basic terms
                          Strategy: none
                        
                        Certificate: YES(?,O(n^1))
                        
                        Application of 'removetails >>> ... >>> ... >>> ...':
                        -----------------------------------------------------
                          The processor is inapplicable since the strict component of the
                          input problem is not empty
                          
                          We abort the transformation and continue with the subprocessor on the problem
                          
                          Strict DPs: {++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                          Strict Trs:
                            {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                             , ++(.(x, y), z) -> .(x, ++(y, z))}
                          Weak DPs:
                            {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                             , rev^#(nil()) -> c_1()
                             , car^#(.(x, y)) -> c_3(x)
                             , cdr^#(.(x, y)) -> c_4(y)
                             , null^#(nil()) -> c_5()
                             , null^#(.(x, y)) -> c_6()
                             , ++^#(nil(), y) -> c_7(y)}
                          Weak Trs:
                            {  ++(nil(), y) -> y
                             , rev(nil()) -> nil()}
                          StartTerms: basic terms
                          Strategy: none
                          
                          1) The weightgap principle applies, where following rules are oriented strictly:
                             
                             TRS Component: {++(.(x, y), z) -> .(x, ++(y, z))}
                             
                             Interpretation:
                             ---------------
                               The following argument positions are usable:
                                 Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1}, Uargs(car) = {},
                                 Uargs(cdr) = {}, Uargs(null) = {}, Uargs(rev^#) = {},
                                 Uargs(c_2) = {1}, Uargs(++^#) = {1}, Uargs(car^#) = {},
                                 Uargs(c_3) = {}, Uargs(cdr^#) = {}, Uargs(c_4) = {},
                                 Uargs(null^#) = {}, Uargs(c_7) = {}, Uargs(c_8) = {2}
                               We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                               Interpretation Functions:
                                rev(x1) = [0 0] x1 + [0]
                                          [0 0]      [0]
                                nil() = [0]
                                        [0]
                                .(x1, x2) = [0 0] x1 + [1 0] x2 + [2]
                                            [0 0]      [0 0]      [0]
                                ++(x1, x2) = [2 0] x1 + [2 0] x2 + [0]
                                             [0 0]      [0 2]      [0]
                                car(x1) = [0 0] x1 + [0]
                                          [0 0]      [0]
                                cdr(x1) = [0 0] x1 + [0]
                                          [0 0]      [0]
                                null(x1) = [0 0] x1 + [0]
                                           [0 0]      [0]
                                true() = [0]
                                         [0]
                                false() = [0]
                                          [0]
                                rev^#(x1) = [0 0] x1 + [0]
                                            [0 0]      [0]
                                c_1() = [0]
                                        [0]
                                c_2(x1) = [1 0] x1 + [0]
                                          [0 1]      [0]
                                ++^#(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                                               [0 0]      [0 0]      [0]
                                car^#(x1) = [0 0] x1 + [3]
                                            [0 0]      [3]
                                c_3(x1) = [0 0] x1 + [1]
                                          [0 0]      [1]
                                cdr^#(x1) = [3 3] x1 + [3]
                                            [0 0]      [3]
                                c_4(x1) = [1 0] x1 + [1]
                                          [0 0]      [1]
                                null^#(x1) = [0 0] x1 + [3]
                                             [0 0]      [3]
                                c_5() = [1]
                                        [1]
                                c_6() = [1]
                                        [1]
                                c_7(x1) = [0 0] x1 + [0]
                                          [0 0]      [0]
                                c_8(x1, x2) = [0 0] x1 + [1 0] x2 + [1]
                                              [0 0]      [0 1]      [3]
                             
                             The strictly oriented rules are moved into the weak component.
                             
                             We consider the following Problem:
                             
                               Strict DPs: {++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                               Strict Trs: {rev(.(x, y)) -> ++(rev(y), .(x, nil()))}
                               Weak DPs:
                                 {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                  , rev^#(nil()) -> c_1()
                                  , car^#(.(x, y)) -> c_3(x)
                                  , cdr^#(.(x, y)) -> c_4(y)
                                  , null^#(nil()) -> c_5()
                                  , null^#(.(x, y)) -> c_6()
                                  , ++^#(nil(), y) -> c_7(y)}
                               Weak Trs:
                                 {  ++(.(x, y), z) -> .(x, ++(y, z))
                                  , ++(nil(), y) -> y
                                  , rev(nil()) -> nil()}
                               StartTerms: basic terms
                               Strategy: none
                             
                             Certificate: YES(?,O(n^1))
                             
                             Application of 'removetails >>> ... >>> ... >>> ...':
                             -----------------------------------------------------
                               The processor is inapplicable since the strict component of the
                               input problem is not empty
                               
                               We abort the transformation and continue with the subprocessor on the problem
                               
                               Strict DPs: {++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                               Strict Trs: {rev(.(x, y)) -> ++(rev(y), .(x, nil()))}
                               Weak DPs:
                                 {  rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                  , rev^#(nil()) -> c_1()
                                  , car^#(.(x, y)) -> c_3(x)
                                  , cdr^#(.(x, y)) -> c_4(y)
                                  , null^#(nil()) -> c_5()
                                  , null^#(.(x, y)) -> c_6()
                                  , ++^#(nil(), y) -> c_7(y)}
                               Weak Trs:
                                 {  ++(.(x, y), z) -> .(x, ++(y, z))
                                  , ++(nil(), y) -> y
                                  , rev(nil()) -> nil()}
                               StartTerms: basic terms
                               Strategy: none
                               
                               1) The weightgap principle applies, where following rules are oriented strictly:
                                  
                                  Dependency Pairs: {++^#(.(x, y), z) -> c_8(x, ++^#(y, z))}
                                  
                                  Interpretation:
                                  ---------------
                                    The following argument positions are usable:
                                      Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1},
                                      Uargs(car) = {}, Uargs(cdr) = {}, Uargs(null) = {},
                                      Uargs(rev^#) = {}, Uargs(c_2) = {1}, Uargs(++^#) = {1},
                                      Uargs(car^#) = {}, Uargs(c_3) = {}, Uargs(cdr^#) = {},
                                      Uargs(c_4) = {}, Uargs(null^#) = {}, Uargs(c_7) = {},
                                      Uargs(c_8) = {2}
                                    We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                                    Interpretation Functions:
                                     rev(x1) = [0 0] x1 + [0]
                                               [0 0]      [0]
                                     nil() = [0]
                                             [0]
                                     .(x1, x2) = [0 0] x1 + [1 0] x2 + [1]
                                                 [0 0]      [0 0]      [0]
                                     ++(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                                                  [0 0]      [0 2]      [0]
                                     car(x1) = [0 0] x1 + [0]
                                               [0 0]      [0]
                                     cdr(x1) = [0 0] x1 + [0]
                                               [0 0]      [0]
                                     null(x1) = [0 0] x1 + [0]
                                                [0 0]      [0]
                                     true() = [0]
                                              [0]
                                     false() = [0]
                                               [0]
                                     rev^#(x1) = [0 0] x1 + [0]
                                                 [0 0]      [0]
                                     c_1() = [0]
                                             [0]
                                     c_2(x1) = [1 0] x1 + [0]
                                               [0 1]      [0]
                                     ++^#(x1, x2) = [2 0] x1 + [0 0] x2 + [0]
                                                    [0 0]      [0 0]      [0]
                                     car^#(x1) = [0 0] x1 + [3]
                                                 [3 3]      [3]
                                     c_3(x1) = [0 0] x1 + [1]
                                               [0 0]      [0]
                                     cdr^#(x1) = [3 3] x1 + [3]
                                                 [0 0]      [3]
                                     c_4(x1) = [1 0] x1 + [0]
                                               [0 0]      [1]
                                     null^#(x1) = [0 0] x1 + [3]
                                                  [0 0]      [3]
                                     c_5() = [1]
                                             [1]
                                     c_6() = [1]
                                             [1]
                                     c_7(x1) = [0 0] x1 + [0]
                                               [0 0]      [0]
                                     c_8(x1, x2) = [0 0] x1 + [1 0] x2 + [1]
                                                   [0 0]      [0 1]      [0]
                                  
                                  The strictly oriented rules are moved into the weak component.
                                  
                                  We consider the following Problem:
                                  
                                    Strict Trs: {rev(.(x, y)) -> ++(rev(y), .(x, nil()))}
                                    Weak DPs:
                                      {  ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                       , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                       , rev^#(nil()) -> c_1()
                                       , car^#(.(x, y)) -> c_3(x)
                                       , cdr^#(.(x, y)) -> c_4(y)
                                       , null^#(nil()) -> c_5()
                                       , null^#(.(x, y)) -> c_6()
                                       , ++^#(nil(), y) -> c_7(y)}
                                    Weak Trs:
                                      {  ++(.(x, y), z) -> .(x, ++(y, z))
                                       , ++(nil(), y) -> y
                                       , rev(nil()) -> nil()}
                                    StartTerms: basic terms
                                    Strategy: none
                                  
                                  Certificate: YES(?,O(n^1))
                                  
                                  Application of 'removetails >>> ... >>> ... >>> ...':
                                  -----------------------------------------------------
                                    The processor is inapplicable since the strict component of the
                                    input problem is not empty
                                    
                                    We abort the transformation and continue with the subprocessor on the problem
                                    
                                    Strict Trs: {rev(.(x, y)) -> ++(rev(y), .(x, nil()))}
                                    Weak DPs:
                                      {  ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                       , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                       , rev^#(nil()) -> c_1()
                                       , car^#(.(x, y)) -> c_3(x)
                                       , cdr^#(.(x, y)) -> c_4(y)
                                       , null^#(nil()) -> c_5()
                                       , null^#(.(x, y)) -> c_6()
                                       , ++^#(nil(), y) -> c_7(y)}
                                    Weak Trs:
                                      {  ++(.(x, y), z) -> .(x, ++(y, z))
                                       , ++(nil(), y) -> y
                                       , rev(nil()) -> nil()}
                                    StartTerms: basic terms
                                    Strategy: none
                                    
                                    1) The weightgap principle applies, where following rules are oriented strictly:
                                       
                                       TRS Component: {rev(.(x, y)) -> ++(rev(y), .(x, nil()))}
                                       
                                       Interpretation:
                                       ---------------
                                         The following argument positions are usable:
                                           Uargs(rev) = {}, Uargs(.) = {2}, Uargs(++) = {1},
                                           Uargs(car) = {}, Uargs(cdr) = {}, Uargs(null) = {},
                                           Uargs(rev^#) = {}, Uargs(c_2) = {1}, Uargs(++^#) = {1},
                                           Uargs(car^#) = {}, Uargs(c_3) = {}, Uargs(cdr^#) = {},
                                           Uargs(c_4) = {}, Uargs(null^#) = {}, Uargs(c_7) = {},
                                           Uargs(c_8) = {2}
                                         We have the following constructor-restricted (at most 1 in the main diagonals) matrix interpretation:
                                         Interpretation Functions:
                                          rev(x1) = [3 0] x1 + [2]
                                                    [2 0]      [2]
                                          nil() = [1]
                                                  [2]
                                          .(x1, x2) = [1 2] x1 + [1 0] x2 + [1]
                                                      [0 0]      [0 0]      [2]
                                          ++(x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                                                       [0 1]      [0 1]      [0]
                                          car(x1) = [0 0] x1 + [0]
                                                    [0 0]      [0]
                                          cdr(x1) = [0 0] x1 + [0]
                                                    [0 0]      [0]
                                          null(x1) = [0 0] x1 + [0]
                                                     [0 0]      [0]
                                          true() = [0]
                                                   [0]
                                          false() = [0]
                                                    [0]
                                          rev^#(x1) = [3 1] x1 + [0]
                                                      [2 3]      [0]
                                          c_1() = [1]
                                                  [0]
                                          c_2(x1) = [1 0] x1 + [1]
                                                    [0 1]      [2]
                                          ++^#(x1, x2) = [1 0] x1 + [0 0] x2 + [0]
                                                         [0 0]      [0 0]      [0]
                                          car^#(x1) = [3 3] x1 + [3]
                                                      [0 0]      [3]
                                          c_3(x1) = [1 0] x1 + [0]
                                                    [0 0]      [1]
                                          cdr^#(x1) = [0 0] x1 + [3]
                                                      [0 0]      [3]
                                          c_4(x1) = [0 0] x1 + [1]
                                                    [0 0]      [1]
                                          null^#(x1) = [0 0] x1 + [3]
                                                       [0 0]      [3]
                                          c_5() = [1]
                                                  [1]
                                          c_6() = [1]
                                                  [1]
                                          c_7(x1) = [0 0] x1 + [1]
                                                    [0 0]      [0]
                                          c_8(x1, x2) = [1 0] x1 + [1 0] x2 + [1]
                                                        [0 0]      [0 1]      [0]
                                       
                                       The strictly oriented rules are moved into the weak component.
                                       
                                       We consider the following Problem:
                                       
                                         Weak DPs:
                                           {  ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                            , rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                            , rev^#(nil()) -> c_1()
                                            , car^#(.(x, y)) -> c_3(x)
                                            , cdr^#(.(x, y)) -> c_4(y)
                                            , null^#(nil()) -> c_5()
                                            , null^#(.(x, y)) -> c_6()
                                            , ++^#(nil(), y) -> c_7(y)}
                                         Weak Trs:
                                           {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                            , ++(.(x, y), z) -> .(x, ++(y, z))
                                            , ++(nil(), y) -> y
                                            , rev(nil()) -> nil()}
                                         StartTerms: basic terms
                                         Strategy: none
                                       
                                       Certificate: YES(O(1),O(1))
                                       
                                       Application of 'removetails >>> ... >>> ... >>> ...':
                                       -----------------------------------------------------
                                         We consider the the dependency-graph
                                         
                                           1: ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                                --> ++^#(nil(), y) -> c_7(y): 8
                                                --> ++^#(.(x, y), z) -> c_8(x, ++^#(y, z)): 1
                                           
                                           2: rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                                --> ++^#(nil(), y) -> c_7(y): 8
                                                --> ++^#(.(x, y), z) -> c_8(x, ++^#(y, z)): 1
                                           
                                           3: rev^#(nil()) -> c_1()
                                           
                                           4: car^#(.(x, y)) -> c_3(x)
                                           
                                           5: cdr^#(.(x, y)) -> c_4(y)
                                           
                                           6: null^#(nil()) -> c_5()
                                           
                                           7: null^#(.(x, y)) -> c_6()
                                           
                                           8: ++^#(nil(), y) -> c_7(y)
                                           
                                         
                                         together with the congruence-graph
                                         
                                           ->{2}                                                       Weak SCC
                                              |
                                              |->{1}                                                   Weak SCC
                                              |   |
                                              |   `->{8}                                               Weak SCC
                                              |
                                              `->{8}                                                   Weak SCC
                                           
                                           ->{3}                                                       Weak SCC
                                           
                                           ->{4}                                                       Weak SCC
                                           
                                           ->{5}                                                       Weak SCC
                                           
                                           ->{6}                                                       Weak SCC
                                           
                                           ->{7}                                                       Weak SCC
                                           
                                           
                                           Here rules are as follows:
                                           
                                             {  1: ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                              , 2: rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                              , 3: rev^#(nil()) -> c_1()
                                              , 4: car^#(.(x, y)) -> c_3(x)
                                              , 5: cdr^#(.(x, y)) -> c_4(y)
                                              , 6: null^#(nil()) -> c_5()
                                              , 7: null^#(.(x, y)) -> c_6()
                                              , 8: ++^#(nil(), y) -> c_7(y)}
                                         
                                         The following rules are either leafs or part of trailing weak paths, and thus they can be removed:
                                         
                                           {  7: null^#(.(x, y)) -> c_6()
                                            , 6: null^#(nil()) -> c_5()
                                            , 5: cdr^#(.(x, y)) -> c_4(y)
                                            , 4: car^#(.(x, y)) -> c_3(x)
                                            , 3: rev^#(nil()) -> c_1()
                                            , 2: rev^#(.(x, y)) -> c_2(++^#(rev(y), .(x, nil())))
                                            , 1: ++^#(.(x, y), z) -> c_8(x, ++^#(y, z))
                                            , 8: ++^#(nil(), y) -> c_7(y)}
                                         
                                         We consider the following Problem:
                                         
                                           Weak Trs:
                                             {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                              , ++(.(x, y), z) -> .(x, ++(y, z))
                                              , ++(nil(), y) -> y
                                              , rev(nil()) -> nil()}
                                           StartTerms: basic terms
                                           Strategy: none
                                         
                                         Certificate: YES(O(1),O(1))
                                         
                                         Application of 'simpDPRHS >>> ...':
                                         -----------------------------------
                                           No rule was simplified
                                           
                                           We apply the transformation 'usablerules' on the resulting sub-problems:
                                           Sub-problem 1:
                                           --------------
                                             We consider the problem
                                             
                                             Weak Trs:
                                               {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                , ++(.(x, y), z) -> .(x, ++(y, z))
                                                , ++(nil(), y) -> y
                                                , rev(nil()) -> nil()}
                                             StartTerms: basic terms
                                             Strategy: none
                                             
                                             The input problem is not a DP-problem.
                                           
                                           We abort the transformation and continue with the subprocessor on the problem
                                           
                                           Weak Trs:
                                             {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                              , ++(.(x, y), z) -> .(x, ++(y, z))
                                              , ++(nil(), y) -> y
                                              , rev(nil()) -> nil()}
                                           StartTerms: basic terms
                                           Strategy: none
                                           
                                           1) We fail transforming the problem using 'weightgap of dimension Nat 2, maximal degree 1, cbits 4'
                                              
                                                All strict components are empty, nothing to further orient
                                              
                                              We try instead 'weightgap of dimension Nat 3, maximal degree 3, cbits 4 <> ...' on the problem
                                              
                                              Weak Trs:
                                                {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                 , ++(.(x, y), z) -> .(x, ++(y, z))
                                                 , ++(nil(), y) -> y
                                                 , rev(nil()) -> nil()}
                                              StartTerms: basic terms
                                              Strategy: none
                                              
                                                We fail transforming the problem using 'weightgap of dimension Nat 3, maximal degree 3, cbits 4'
                                                
                                                  All strict components are empty, nothing to further orient
                                                
                                                We try instead 'weightgap of dimension Nat 4, maximal degree 3, cbits 4' on the problem
                                                
                                                Weak Trs:
                                                  {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                   , ++(.(x, y), z) -> .(x, ++(y, z))
                                                   , ++(nil(), y) -> y
                                                   , rev(nil()) -> nil()}
                                                StartTerms: basic terms
                                                Strategy: none
                                                
                                                  All strict components are empty, nothing to further orient
                                              
                                              We abort the transformation and continue with the subprocessor on the problem
                                              
                                              Weak Trs:
                                                {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                 , ++(.(x, y), z) -> .(x, ++(y, z))
                                                 , ++(nil(), y) -> y
                                                 , rev(nil()) -> nil()}
                                              StartTerms: basic terms
                                              Strategy: none
                                              
                                              1) No dependency-pair could be removed
                                                 
                                                 We apply the transformation 'weightgap of dimension Nat 2, maximal degree 1, cbits 4 <> ...' on the resulting sub-problems:
                                                 Sub-problem 1:
                                                 --------------
                                                   We consider the problem
                                                   
                                                   Weak Trs:
                                                     {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                      , ++(.(x, y), z) -> .(x, ++(y, z))
                                                      , ++(nil(), y) -> y
                                                      , rev(nil()) -> nil()}
                                                   StartTerms: basic terms
                                                   Strategy: none
                                                   
                                                   We fail transforming the problem using 'weightgap of dimension Nat 2, maximal degree 1, cbits 4'
                                                   
                                                     All strict components are empty, nothing to further orient
                                                   
                                                   We try instead 'weightgap of dimension Nat 3, maximal degree 3, cbits 4 <> ...' on the problem
                                                   
                                                   Weak Trs:
                                                     {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                      , ++(.(x, y), z) -> .(x, ++(y, z))
                                                      , ++(nil(), y) -> y
                                                      , rev(nil()) -> nil()}
                                                   StartTerms: basic terms
                                                   Strategy: none
                                                   
                                                     We fail transforming the problem using 'weightgap of dimension Nat 3, maximal degree 3, cbits 4'
                                                     
                                                       All strict components are empty, nothing to further orient
                                                     
                                                     We try instead 'weightgap of dimension Nat 4, maximal degree 3, cbits 4' on the problem
                                                     
                                                     Weak Trs:
                                                       {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                        , ++(.(x, y), z) -> .(x, ++(y, z))
                                                        , ++(nil(), y) -> y
                                                        , rev(nil()) -> nil()}
                                                     StartTerms: basic terms
                                                     Strategy: none
                                                     
                                                       All strict components are empty, nothing to further orient
                                                 
                                                 We abort the transformation and continue with the subprocessor on the problem
                                                 
                                                 Weak Trs:
                                                   {  rev(.(x, y)) -> ++(rev(y), .(x, nil()))
                                                    , ++(.(x, y), z) -> .(x, ++(y, z))
                                                    , ++(nil(), y) -> y
                                                    , rev(nil()) -> nil()}
                                                 StartTerms: basic terms
                                                 Strategy: none
                                                 
                                                 1) 'Sequentially' proved the goal fastest:
                                                    
                                                    'empty' succeeded:
                                                    
                                                    Empty rules are trivially bounded
                                                 
                                              
                                           
                                    
                               
                          
                     
                
           
      

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

Tool tup3irc

Execution Time60.061115ms
Answer
TIMEOUT
InputSK90 2.39

stdout:

TIMEOUT

We consider the following Problem:

  Strict Trs:
    {  rev(nil()) -> nil()
     , rev(.(x, y)) -> ++(rev(y), .(x, nil()))
     , car(.(x, y)) -> x
     , cdr(.(x, y)) -> y
     , null(nil()) -> true()
     , null(.(x, y)) -> false()
     , ++(nil(), y) -> y
     , ++(.(x, y), z) -> .(x, ++(y, z))}
  StartTerms: basic terms
  Strategy: innermost

Certificate: TIMEOUT

Application of 'tup3 (timeout of 60.0 seconds)':
------------------------------------------------
  Computation stopped due to timeout after 60.0 seconds

Arrrr..