Problem Transformed CSR 04 Ex6 Luc98 GM

interpretations

Execution Time (secs)
-
Answer
YES(?,O(n^3))
InputTransformed CSR 04 Ex6 Luc98 GM
YES(?,O(n^3))

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^3)).

Strict Trs:
  { a__first(X1, X2) -> first(X1, X2)
  , a__first(0(), X) -> nil()
  , a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
  , mark(0()) -> 0()
  , mark(nil()) -> nil()
  , mark(s(X)) -> s(mark(X))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))
  , mark(from(X)) -> a__from(mark(X))
  , a__from(X) -> cons(mark(X), from(s(X)))
  , a__from(X) -> from(X) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,O(n^3))

The following argument positions are usable:
  Uargs(a__first) = {1, 2}, Uargs(s) = {1}, Uargs(cons) = {1},
  Uargs(mark) = {}, Uargs(first) = {}, Uargs(a__from) = {1},
  Uargs(from) = {}

TcT has computed following constructor-based matrix interpretation
satisfying not(EDA).

                       [1 0 2]      [1 0 2]      [3]
  [a__first](x1, x2) = [0 1 0] x1 + [0 1 0] x2 + [0]
                       [0 0 1]      [0 3 1]      [3]
                                                    
                       [0]
                 [0] = [0]
                       [1]
                          
                       [0]
               [nil] = [0]
                       [1]
                          
                       [1 0 0]      [3]
             [s](x1) = [0 0 0] x1 + [0]
                       [0 0 1]      [2]
                                       
                       [1 0 1]      [0]
      [cons](x1, x2) = [0 0 0] x1 + [0]
                       [0 0 1]      [1]
                                       
                       [1 0 1]      [0]
          [mark](x1) = [0 0 0] x1 + [0]
                       [0 0 1]      [0]
                                       
                       [1 0 2]      [1 0 2]      [2]
     [first](x1, x2) = [0 1 0] x1 + [0 1 0] x2 + [0]
                       [0 0 1]      [0 0 1]      [3]
                                                    
                       [1 0 3]      [3]
       [a__from](x1) = [0 2 0] x1 + [0]
                       [0 0 1]      [3]
                                       
                       [1 0 3]      [2]
          [from](x1) = [0 1 0] x1 + [0]
                       [0 0 1]      [3]

This order satisfies following ordering constraints

            [a__first(X1, X2)] = [1 0 2]      [1 0 2]      [3] 
                                 [0 1 0] X1 + [0 1 0] X2 + [0] 
                                 [0 0 1]      [0 3 1]      [3] 
                               > [1 0 2]      [1 0 2]      [2] 
                                 [0 1 0] X1 + [0 1 0] X2 + [0] 
                                 [0 0 1]      [0 0 1]      [3] 
                               = [first(X1, X2)]               
                                                               
            [a__first(0(), X)] = [1 0 2]     [5]               
                                 [0 1 0] X + [0]               
                                 [0 3 1]     [4]               
                               > [0]                           
                                 [0]                           
                                 [1]                           
                               = [nil()]                       
                                                               
  [a__first(s(X), cons(Y, Z))] = [1 0 2]     [1 0 3]     [12]  
                                 [0 0 0] X + [0 0 0] Y + [0]   
                                 [0 0 1]     [0 0 1]     [6]   
                               > [1 0 2]     [0]               
                                 [0 0 0] Y + [0]               
                                 [0 0 1]     [1]               
                               = [cons(mark(Y), first(X, Z))]  
                                                               
                   [mark(0())] = [1]                           
                                 [0]                           
                                 [1]                           
                               > [0]                           
                                 [0]                           
                                 [1]                           
                               = [0()]                         
                                                               
                 [mark(nil())] = [1]                           
                                 [0]                           
                                 [1]                           
                               > [0]                           
                                 [0]                           
                                 [1]                           
                               = [nil()]                       
                                                               
                  [mark(s(X))] = [1 0 1]     [5]               
                                 [0 0 0] X + [0]               
                                 [0 0 1]     [2]               
                               > [1 0 1]     [3]               
                                 [0 0 0] X + [0]               
                                 [0 0 1]     [2]               
                               = [s(mark(X))]                  
                                                               
          [mark(cons(X1, X2))] = [1 0 2]      [1]              
                                 [0 0 0] X1 + [0]              
                                 [0 0 1]      [1]              
                               > [1 0 2]      [0]              
                                 [0 0 0] X1 + [0]              
                                 [0 0 1]      [1]              
                               = [cons(mark(X1), X2)]          
                                                               
         [mark(first(X1, X2))] = [1 0 3]      [1 0 3]      [5] 
                                 [0 0 0] X1 + [0 0 0] X2 + [0] 
                                 [0 0 1]      [0 0 1]      [3] 
                               > [1 0 3]      [1 0 3]      [3] 
                                 [0 0 0] X1 + [0 0 0] X2 + [0] 
                                 [0 0 1]      [0 0 1]      [3] 
                               = [a__first(mark(X1), mark(X2))]
                                                               
               [mark(from(X))] = [1 0 4]     [5]               
                                 [0 0 0] X + [0]               
                                 [0 0 1]     [3]               
                               > [1 0 4]     [3]               
                                 [0 0 0] X + [0]               
                                 [0 0 1]     [3]               
                               = [a__from(mark(X))]            
                                                               
                  [a__from(X)] = [1 0 3]     [3]               
                                 [0 2 0] X + [0]               
                                 [0 0 1]     [3]               
                               > [1 0 2]     [0]               
                                 [0 0 0] X + [0]               
                                 [0 0 1]     [1]               
                               = [cons(mark(X), from(s(X)))]   
                                                               
                  [a__from(X)] = [1 0 3]     [3]               
                                 [0 2 0] X + [0]               
                                 [0 0 1]     [3]               
                               > [1 0 3]     [2]               
                                 [0 1 0] X + [0]               
                                 [0 0 1]     [3]               
                               = [from(X)]                     
                                                               

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

lmpo

Execution Time (secs)
-
Answer
MAYBE
InputTransformed CSR 04 Ex6 Luc98 GM
MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__first(0(), X) -> nil()
  , a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
  , a__from(X) -> cons(mark(X), from(s(X)))
  , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))
  , mark(from(X)) -> a__from(mark(X))
  , mark(0()) -> 0()
  , mark(nil()) -> nil()
  , mark(s(X)) -> s(mark(X))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , a__first(X1, X2) -> first(X1, X2)
  , a__from(X) -> from(X) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..

mpo

Execution Time (secs)
-
Answer
MAYBE
InputTransformed CSR 04 Ex6 Luc98 GM
MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__first(0(), X) -> nil()
  , a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
  , a__from(X) -> cons(mark(X), from(s(X)))
  , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))
  , mark(from(X)) -> a__from(mark(X))
  , mark(0()) -> 0()
  , mark(nil()) -> nil()
  , mark(s(X)) -> s(mark(X))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , a__first(X1, X2) -> first(X1, X2)
  , a__from(X) -> from(X) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..

popstar

Execution Time (secs)
0.323
Answer
MAYBE
InputTransformed CSR 04 Ex6 Luc98 GM
MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__first(0(), X) -> nil()
  , a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
  , a__from(X) -> cons(mark(X), from(s(X)))
  , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))
  , mark(from(X)) -> a__from(mark(X))
  , mark(0()) -> 0()
  , mark(nil()) -> nil()
  , mark(s(X)) -> s(mark(X))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , a__first(X1, X2) -> first(X1, X2)
  , a__from(X) -> from(X) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..

popstar-ps

Execution Time (secs)
0.309
Answer
MAYBE
InputTransformed CSR 04 Ex6 Luc98 GM
MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__first(0(), X) -> nil()
  , a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
  , a__from(X) -> cons(mark(X), from(s(X)))
  , mark(first(X1, X2)) -> a__first(mark(X1), mark(X2))
  , mark(from(X)) -> a__from(mark(X))
  , mark(0()) -> 0()
  , mark(nil()) -> nil()
  , mark(s(X)) -> s(mark(X))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , a__first(X1, X2) -> first(X1, X2)
  , a__from(X) -> from(X) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..