Problem SK90 2.13

interpretations

Execution Time (secs)
-
Answer
YES(?,O(n^2))
InputSK90 2.13
YES(?,O(n^2))

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

Strict Trs:
  { double(x) -> +(x, x)
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , +(s(x), y) -> s(+(x, y)) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,O(n^2))

The following argument positions are usable:
  Uargs(double) = {}, Uargs(s) = {1}, Uargs(+) = {}
TcT has computed following constructor-restricted polynomial
interpretation.
[double](x1) = 1 + 2*x1 + 2*x1^2
                                
       [0]() = 3                
                                
     [s](x1) = 2 + x1           
                                
 [+](x1, x2) = 2*x1 + 2*x2^2    
                                

This order satisfies following ordering constraints

     [double(x)] = 1 + 2*x + 2*x^2      
                 > 2*x + 2*x^2          
                 = [+(x, x)]            
                                        
   [double(0())] = 25                   
                 > 3                    
                 = [0()]                
                                        
  [double(s(x))] = 13 + 10*x + 2*x^2    
                 > 5 + 2*x + 2*x^2      
                 = [s(s(double(x)))]    
                                        
     [+(x, 0())] = 2*x + 18             
                 > x                    
                 = [x]                  
                                        
    [+(x, s(y))] = 2*x + 8 + 8*y + 2*y^2
                 > 2 + 2*x + 2*y^2      
                 = [s(+(x, y))]         
                                        
    [+(s(x), y)] = 4 + 2*x + 2*y^2      
                 > 2 + 2*x + 2*y^2      
                 = [s(+(x, y))]         
                                        

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

lmpo

Execution Time (secs)
-
Answer
YES(?,ELEMENTARY)
InputSK90 2.13
YES(?,ELEMENTARY)

We are left with following problem, upon which TcT provides the
certificate YES(?,ELEMENTARY).

Strict Trs:
  { double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , +(s(x), y) -> s(+(x, y))
  , double(x) -> +(x, x) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,ELEMENTARY)

The input was oriented with the instance of 'Lightweight Multiset
Path Order' as induced by the safe mapping

 safe(double) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {}

and precedence

 double > + .

Following symbols are considered recursive:

 {double, +}

The recursion depth is 2.

For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:

 Strict DPs: 
 Weak DPs  : 
 Strict Trs:
   { double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(x,  0();) -> x
   , +(x,  s(; y);) -> s(; +(x,  y;))
   , +(s(; x),  y;) -> s(; +(x,  y;))
   , double(x;) -> +(x,  x;) }
 Weak Trs  : 

Hurray, we answered YES(?,ELEMENTARY)

mpo

Execution Time (secs)
-
Answer
YES(?,PRIMREC)
InputSK90 2.13
YES(?,PRIMREC)

We are left with following problem, upon which TcT provides the
certificate YES(?,PRIMREC).

Strict Trs:
  { double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , +(s(x), y) -> s(+(x, y))
  , double(x) -> +(x, x) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,PRIMREC)

The input was oriented with the instance of'multiset path orders'
as induced by the precedence

 double > s, double > +, + > s .

Hurray, we answered YES(?,PRIMREC)

popstar

Execution Time (secs)
0.174
Answer
YES(?,POLY)
InputSK90 2.13
YES(?,POLY)

We are left with following problem, upon which TcT provides the
certificate YES(?,POLY).

Strict Trs:
  { double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , +(s(x), y) -> s(+(x, y))
  , double(x) -> +(x, x) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,POLY)

The input was oriented with the instance of 'Polynomial Path Order'
as induced by the safe mapping

 safe(double) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {}

and precedence

 double > + .

Following symbols are considered recursive:

 {double, +}

The recursion depth is 2.

For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:

 Strict DPs: 
 Weak DPs  : 
 Strict Trs:
   { double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(x,  0();) -> x
   , +(x,  s(; y);) -> s(; +(x,  y;))
   , +(s(; x),  y;) -> s(; +(x,  y;))
   , double(x;) -> +(x,  x;) }
 Weak Trs  : 

Hurray, we answered YES(?,POLY)

popstar-ps

Execution Time (secs)
0.240
Answer
YES(?,POLY)
InputSK90 2.13
YES(?,POLY)

We are left with following problem, upon which TcT provides the
certificate YES(?,POLY).

Strict Trs:
  { double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , +(s(x), y) -> s(+(x, y))
  , double(x) -> +(x, x) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,POLY)

The input was oriented with the instance of 'Polynomial Path Order
(PS)' as induced by the safe mapping

 safe(double) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {}

and precedence

 double > + .

Following symbols are considered recursive:

 {double, +}

The recursion depth is 2.

For your convenience, here are the oriented rules in predicative
notation, possibly applying argument filtering:

 Strict DPs: 
 Weak DPs  : 
 Strict Trs:
   { double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(x,  0();) -> x
   , +(x,  s(; y);) -> s(; +(x,  y;))
   , +(s(; x),  y;) -> s(; +(x,  y;))
   , double(x;) -> +(x,  x;) }
 Weak Trs  : 

Hurray, we answered YES(?,POLY)