Problem SK90 2.19

interpretations

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

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

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

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

This order satisfies following ordering constraints

      [sqr(0())] = 2                        
                 >                          
                 = [0()]                    
                                            
     [sqr(s(x))] = 16 + 13*x + 3*x^2        
                 > 13 + 7*x + 3*x^2         
                 = [s(+(sqr(x), double(x)))]
                                            
     [sqr(s(x))] = 16 + 13*x + 3*x^2        
                 > 15 + 7*x + 3*x^2         
                 = [+(sqr(x), s(double(x)))]
                                            
     [+(x, 0())] = 3 + x                    
                 > x                        
                 = [x]                      
                                            
    [+(x, s(y))] = 7 + x + 2*y              
                 > 5 + x + 2*y              
                 = [s(+(x, y))]             
                                            
   [double(0())] = 3                        
                 >                          
                 = [0()]                    
                                            
  [double(s(x))] = 9 + 3*x                  
                 > 7 + 3*x                  
                 = [s(s(double(x)))]        
                                            

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

lmpo

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

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

Strict Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , sqr(s(x)) -> s(+(sqr(x), double(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(sqr) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {1},
 safe(double) = {}

and precedence

 sqr > +, sqr > double .

Following symbols are considered recursive:

 {sqr, +, 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:
   { sqr(0();) -> 0()
   , sqr(s(; x);) -> +(s(; double(x;)); sqr(x;))
   , double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(0(); x) -> x
   , +(s(; y); x) -> s(; +(y; x))
   , sqr(s(; x);) -> s(; +(double(x;); sqr(x;))) }
 Weak Trs  : 

Hurray, we answered YES(?,ELEMENTARY)

mpo

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

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

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

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

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

Hurray, we answered YES(?,PRIMREC)

popstar

Execution Time (secs)
0.172
Answer
YES(?,POLY)
InputSK90 2.19
YES(?,POLY)

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

Strict Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , sqr(s(x)) -> s(+(sqr(x), double(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(sqr) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {1},
 safe(double) = {}

and precedence

 sqr > +, sqr > double .

Following symbols are considered recursive:

 {sqr, +, 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:
   { sqr(0();) -> 0()
   , sqr(s(; x);) -> +(s(; double(x;)); sqr(x;))
   , double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(0(); x) -> x
   , +(s(; y); x) -> s(; +(y; x))
   , sqr(s(; x);) -> s(; +(double(x;); sqr(x;))) }
 Weak Trs  : 

Hurray, we answered YES(?,POLY)

popstar-ps

Execution Time (secs)
0.246
Answer
YES(?,POLY)
InputSK90 2.19
YES(?,POLY)

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

Strict Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , sqr(s(x)) -> s(+(sqr(x), double(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(sqr) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {1},
 safe(double) = {}

and precedence

 sqr > +, sqr > double .

Following symbols are considered recursive:

 {sqr, +, 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:
   { sqr(0();) -> 0()
   , sqr(s(; x);) -> +(s(; double(x;)); sqr(x;))
   , double(0();) -> 0()
   , double(s(; x);) -> s(; s(; double(x;)))
   , +(0(); x) -> x
   , +(s(; y); x) -> s(; +(y; x))
   , sqr(s(; x);) -> s(; +(double(x;); sqr(x;))) }
 Weak Trs  : 

Hurray, we answered YES(?,POLY)