Term Rewriting System R:
[x, y, z]
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))

Innermost Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

-'(s(x), s(y)) -> -'(x, y)
*'(x, s(y)) -> *'(x, y)
ODD(s(s(x))) -> ODD(x)
HALF(s(s(x))) -> HALF(x)
POW(x, y) -> F(x, y, s(0))
F(x, s(y), z) -> IF(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))
F(x, s(y), z) -> ODD(s(y))
F(x, s(y), z) -> F(x, y, *(x, z))
F(x, s(y), z) -> *'(x, z)
F(x, s(y), z) -> F(*(x, x), half(s(y)), z)
F(x, s(y), z) -> *'(x, x)
F(x, s(y), z) -> HALF(s(y))

Furthermore, R contains five SCCs.


   R
DPs
       →DP Problem 1
Forward Instantiation Transformation
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

-'(s(x), s(y)) -> -'(x, y)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

-'(s(x), s(y)) -> -'(x, y)
one new Dependency Pair is created:

-'(s(s(x'')), s(s(y''))) -> -'(s(x''), s(y''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
           →DP Problem 6
Forward Instantiation Transformation
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

-'(s(s(x'')), s(s(y''))) -> -'(s(x''), s(y''))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

-'(s(s(x'')), s(s(y''))) -> -'(s(x''), s(y''))
one new Dependency Pair is created:

-'(s(s(s(x''''))), s(s(s(y'''')))) -> -'(s(s(x'''')), s(s(y'''')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
           →DP Problem 6
FwdInst
             ...
               →DP Problem 7
Argument Filtering and Ordering
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

-'(s(s(s(x''''))), s(s(s(y'''')))) -> -'(s(s(x'''')), s(s(y'''')))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




The following dependency pair can be strictly oriented:

-'(s(s(s(x''''))), s(s(s(y'''')))) -> -'(s(s(x'''')), s(s(y'''')))


There are no usable rules for innermost that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
-'(x1, x2) -> -'(x1, x2)
s(x1) -> s(x1)


   R
DPs
       →DP Problem 1
FwdInst
           →DP Problem 6
FwdInst
             ...
               →DP Problem 8
Dependency Graph
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
Forward Instantiation Transformation
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

*'(x, s(y)) -> *'(x, y)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

*'(x, s(y)) -> *'(x, y)
one new Dependency Pair is created:

*'(x'', s(s(y''))) -> *'(x'', s(y''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
           →DP Problem 9
Forward Instantiation Transformation
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

*'(x'', s(s(y''))) -> *'(x'', s(y''))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

*'(x'', s(s(y''))) -> *'(x'', s(y''))
one new Dependency Pair is created:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
           →DP Problem 9
FwdInst
             ...
               →DP Problem 10
Argument Filtering and Ordering
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




The following dependency pair can be strictly oriented:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))


There are no usable rules for innermost that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
*'(x1, x2) -> *'(x1, x2)
s(x1) -> s(x1)


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
           →DP Problem 9
FwdInst
             ...
               →DP Problem 11
Dependency Graph
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
Forward Instantiation Transformation
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

ODD(s(s(x))) -> ODD(x)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

ODD(s(s(x))) -> ODD(x)
one new Dependency Pair is created:

ODD(s(s(s(s(x''))))) -> ODD(s(s(x'')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
           →DP Problem 12
Forward Instantiation Transformation
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

ODD(s(s(s(s(x''))))) -> ODD(s(s(x'')))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

ODD(s(s(s(s(x''))))) -> ODD(s(s(x'')))
one new Dependency Pair is created:

ODD(s(s(s(s(s(s(x''''))))))) -> ODD(s(s(s(s(x'''')))))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
           →DP Problem 12
FwdInst
             ...
               →DP Problem 13
Argument Filtering and Ordering
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:

ODD(s(s(s(s(s(s(x''''))))))) -> ODD(s(s(s(s(x'''')))))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




The following dependency pair can be strictly oriented:

ODD(s(s(s(s(s(s(x''''))))))) -> ODD(s(s(s(s(x'''')))))


There are no usable rules for innermost that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
ODD(x1) -> ODD(x1)
s(x1) -> s(x1)


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
           →DP Problem 12
FwdInst
             ...
               →DP Problem 14
Dependency Graph
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar


Dependency Pair:


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
Forward Instantiation Transformation
       →DP Problem 5
Nar


Dependency Pair:

HALF(s(s(x))) -> HALF(x)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

HALF(s(s(x))) -> HALF(x)
one new Dependency Pair is created:

HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
           →DP Problem 15
Forward Instantiation Transformation
       →DP Problem 5
Nar


Dependency Pair:

HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))
one new Dependency Pair is created:

HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
           →DP Problem 15
FwdInst
             ...
               →DP Problem 16
Argument Filtering and Ordering
       →DP Problem 5
Nar


Dependency Pair:

HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




The following dependency pair can be strictly oriented:

HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))


There are no usable rules for innermost that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
HALF(x1) -> HALF(x1)
s(x1) -> s(x1)


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
           →DP Problem 15
FwdInst
             ...
               →DP Problem 17
Dependency Graph
       →DP Problem 5
Nar


Dependency Pair:


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Narrowing Transformation


Dependency Pairs:

F(x, s(y), z) -> F(*(x, x), half(s(y)), z)
F(x, s(y), z) -> F(x, y, *(x, z))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

F(x, s(y), z) -> F(*(x, x), half(s(y)), z)
four new Dependency Pairs are created:

F(0, s(y), z) -> F(0, half(s(y)), z)
F(s(y''), s(y), z) -> F(+(*(s(y''), y''), s(y'')), half(s(y)), z)
F(x, s(0), z) -> F(*(x, x), 0, z)
F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Narrowing Transformation


Dependency Pairs:

F(s(y''), s(y), z) -> F(+(*(s(y''), y''), s(y'')), half(s(y)), z)
F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)
F(0, s(y), z) -> F(0, half(s(y)), z)
F(x, s(y), z) -> F(x, y, *(x, z))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

F(0, s(y), z) -> F(0, half(s(y)), z)
two new Dependency Pairs are created:

F(0, s(0), z) -> F(0, 0, z)
F(0, s(s(x')), z) -> F(0, s(half(x')), z)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 19
Narrowing Transformation


Dependency Pairs:

F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)
F(x, s(y), z) -> F(x, y, *(x, z))
F(s(y''), s(y), z) -> F(+(*(s(y''), y''), s(y'')), half(s(y)), z)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

F(s(y''), s(y), z) -> F(+(*(s(y''), y''), s(y'')), half(s(y)), z)
four new Dependency Pairs are created:

F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(s(y''), s(0), z) -> F(+(*(s(y''), y''), s(y'')), 0, z)
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 20
Forward Instantiation Transformation


Dependency Pairs:

F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)
F(x, s(y), z) -> F(x, y, *(x, z))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

F(x, s(y), z) -> F(x, y, *(x, z))
six new Dependency Pairs are created:

F(x'', s(s(y'')), z'') -> F(x'', s(y''), *(x'', z''))
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 21
Narrowing Transformation


Dependency Pairs:

F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x'', s(s(y'')), z'') -> F(x'', s(y''), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

F(x, s(s(x'')), z) -> F(*(x, x), s(half(x'')), z)
five new Dependency Pairs are created:

F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(x, s(s(0)), z) -> F(*(x, x), s(0), z)
F(x, s(s(s(0))), z) -> F(*(x, x), s(0), z)
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 22
Forward Instantiation Transformation


Dependency Pairs:

F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)
F(x, s(s(s(0))), z) -> F(*(x, x), s(0), z)
F(x, s(s(0)), z) -> F(*(x, x), s(0), z)
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x'', s(s(y'')), z'') -> F(x'', s(y''), *(x'', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

F(x'', s(s(y'')), z'') -> F(x'', s(y''), *(x'', z''))
12 new Dependency Pairs are created:

F(x'''', s(s(s(x'''''))), z''') -> F(x'''', s(s(x''''')), *(x'''', z'''))
F(s(x'''), s(s(y''')), z''') -> F(s(x'''), s(y'''), *(s(x'''), z'''))
F(s(s(y''''')), s(s(y''')), z''') -> F(s(s(y''''')), s(y'''), *(s(s(y''''')), z'''))
F(s(y''''), s(s(s(x''''))), z''') -> F(s(y''''), s(s(x'''')), *(s(y''''), z'''))
F(x'''', s(s(s(y''''))), z'''') -> F(x'''', s(s(y'''')), *(x'''', z''''))
F(x'''', s(s(s(s(x'''''')))), z'''') -> F(x'''', s(s(s(x''''''))), *(x'''', z''''))
F(x'''', s(s(s(s(x'0''')))), z'''') -> F(x'''', s(s(s(x'0'''))), *(x'''', z''''))
F(s(x'''''), s(s(s(y''''))), z'''') -> F(s(x'''''), s(s(y'''')), *(s(x'''''), z''''))
F(s(s(y''''''')), s(s(s(y''''))), z'''') -> F(s(s(y''''''')), s(s(y'''')), *(s(s(y''''''')), z''''))
F(s(y''''''), s(s(s(s(x''''')))), z'''') -> F(s(y''''''), s(s(s(x'''''))), *(s(y''''''), z''''))
F(x'''', s(s(s(s(x''''')))), z''') -> F(x'''', s(s(s(x'''''))), *(x'''', z'''))
F(x''', s(s(s(s(s(x'''''))))), z''') -> F(x''', s(s(s(s(x''''')))), *(x''', z'''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 23
Forward Instantiation Transformation


Dependency Pairs:

F(x''', s(s(s(s(s(x'''''))))), z''') -> F(x''', s(s(s(s(x''''')))), *(x''', z'''))
F(x'''', s(s(s(s(x''''')))), z''') -> F(x'''', s(s(s(x'''''))), *(x'''', z'''))
F(s(y''''''), s(s(s(s(x''''')))), z'''') -> F(s(y''''''), s(s(s(x'''''))), *(s(y''''''), z''''))
F(s(s(y''''''')), s(s(s(y''''))), z'''') -> F(s(s(y''''''')), s(s(y'''')), *(s(s(y''''''')), z''''))
F(s(x'''''), s(s(s(y''''))), z'''') -> F(s(x'''''), s(s(y'''')), *(s(x'''''), z''''))
F(x'''', s(s(s(s(x'0''')))), z'''') -> F(x'''', s(s(s(x'0'''))), *(x'''', z''''))
F(x'''', s(s(s(s(x'''''')))), z'''') -> F(x'''', s(s(s(x''''''))), *(x'''', z''''))
F(s(y''''), s(s(s(x''''))), z''') -> F(s(y''''), s(s(x'''')), *(s(y''''), z'''))
F(s(s(y''''')), s(s(y''')), z''') -> F(s(s(y''''')), s(y'''), *(s(s(y''''')), z'''))
F(s(x'''), s(s(y''')), z''') -> F(s(x'''), s(y'''), *(s(x'''), z'''))
F(x'''', s(s(s(y''''))), z'''') -> F(x'''', s(s(y'''')), *(x'''', z''''))
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x'''', s(s(s(x'''''))), z''') -> F(x'''', s(s(x''''')), *(x'''', z'''))
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)
F(x, s(s(s(0))), z) -> F(*(x, x), s(0), z)
F(x, s(s(0)), z) -> F(*(x, x), s(0), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

F(x, s(s(0)), z) -> F(*(x, x), s(0), z)
no new Dependency Pairs are created.
The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 24
Forward Instantiation Transformation


Dependency Pairs:

F(x'''', s(s(s(s(x''''')))), z''') -> F(x'''', s(s(s(x'''''))), *(x'''', z'''))
F(s(y''''''), s(s(s(s(x''''')))), z'''') -> F(s(y''''''), s(s(s(x'''''))), *(s(y''''''), z''''))
F(s(s(y''''''')), s(s(s(y''''))), z'''') -> F(s(s(y''''''')), s(s(y'''')), *(s(s(y''''''')), z''''))
F(s(x'''''), s(s(s(y''''))), z'''') -> F(s(x'''''), s(s(y'''')), *(s(x'''''), z''''))
F(x'''', s(s(s(s(x'0''')))), z'''') -> F(x'''', s(s(s(x'0'''))), *(x'''', z''''))
F(s(y''''), s(s(s(x''''))), z''') -> F(s(y''''), s(s(x'''')), *(s(y''''), z'''))
F(s(s(y''''')), s(s(y''')), z''') -> F(s(s(y''''')), s(y'''), *(s(s(y''''')), z'''))
F(s(x'''), s(s(y''')), z''') -> F(s(x'''), s(y'''), *(s(x'''), z'''))
F(x'''', s(s(s(s(x'''''')))), z'''') -> F(x'''', s(s(s(x''''''))), *(x'''', z''''))
F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)
F(x'''', s(s(s(y''''))), z'''') -> F(x'''', s(s(y'''')), *(x'''', z''''))
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x'''', s(s(s(x'''''))), z''') -> F(x'''', s(s(x''''')), *(x'''', z'''))
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)
F(x, s(s(s(0))), z) -> F(*(x, x), s(0), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x''', s(s(s(s(s(x'''''))))), z''') -> F(x''', s(s(s(s(x''''')))), *(x''', z'''))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

F(x, s(s(s(0))), z) -> F(*(x, x), s(0), z)
no new Dependency Pairs are created.
The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 25
Argument Filtering and Ordering


Dependency Pairs:

F(x''', s(s(s(s(s(x'''''))))), z''') -> F(x''', s(s(s(s(x''''')))), *(x''', z'''))
F(s(y''''''), s(s(s(s(x''''')))), z'''') -> F(s(y''''''), s(s(s(x'''''))), *(s(y''''''), z''''))
F(s(s(y''''''')), s(s(s(y''''))), z'''') -> F(s(s(y''''''')), s(s(y'''')), *(s(s(y''''''')), z''''))
F(s(x'''''), s(s(s(y''''))), z'''') -> F(s(x'''''), s(s(y'''')), *(s(x'''''), z''''))
F(x'''', s(s(s(s(x'0''')))), z'''') -> F(x'''', s(s(s(x'0'''))), *(x'''', z''''))
F(s(y''''), s(s(s(x''''))), z''') -> F(s(y''''), s(s(x'''')), *(s(y''''), z'''))
F(s(s(y''''')), s(s(y''')), z''') -> F(s(s(y''''')), s(y'''), *(s(s(y''''')), z'''))
F(s(x'''), s(s(y''')), z''') -> F(s(x'''), s(y'''), *(s(x'''), z'''))
F(x'''', s(s(s(s(x'''''')))), z'''') -> F(x'''', s(s(s(x''''''))), *(x'''', z''''))
F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)
F(x'''', s(s(s(y''''))), z'''') -> F(x'''', s(s(y'''')), *(x'''', z''''))
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x'''', s(s(s(x'''''))), z''') -> F(x'''', s(s(x''''')), *(x'''', z'''))
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x'''', s(s(s(s(x''''')))), z''') -> F(x'''', s(s(s(x'''''))), *(x'''', z'''))


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




The following dependency pairs can be strictly oriented:

F(x''', s(s(s(s(s(x'''''))))), z''') -> F(x''', s(s(s(s(x''''')))), *(x''', z'''))
F(s(y''''''), s(s(s(s(x''''')))), z'''') -> F(s(y''''''), s(s(s(x'''''))), *(s(y''''''), z''''))
F(s(s(y''''''')), s(s(s(y''''))), z'''') -> F(s(s(y''''''')), s(s(y'''')), *(s(s(y''''''')), z''''))
F(s(x'''''), s(s(s(y''''))), z'''') -> F(s(x'''''), s(s(y'''')), *(s(x'''''), z''''))
F(x'''', s(s(s(s(x'0''')))), z'''') -> F(x'''', s(s(s(x'0'''))), *(x'''', z''''))
F(s(y''''), s(s(s(x''''))), z''') -> F(s(y''''), s(s(x'''')), *(s(y''''), z'''))
F(s(s(y''''')), s(s(y''')), z''') -> F(s(s(y''''')), s(y'''), *(s(s(y''''')), z'''))
F(s(x'''), s(s(y''')), z''') -> F(s(x'''), s(y'''), *(s(x'''), z'''))
F(x'''', s(s(s(s(x'''''')))), z'''') -> F(x'''', s(s(s(x''''''))), *(x'''', z''''))
F(0, s(s(x'')), z) -> F(0, s(half(x'')), z)
F(x'''', s(s(s(y''''))), z'''') -> F(x'''', s(s(y'''')), *(x'''', z''''))
F(s(y'), s(s(x'')), z) -> F(+(*(s(y'), y'), s(y')), s(half(x'')), z)
F(s(y''''), s(s(s(x'''))), z'') -> F(s(y''''), s(s(x''')), *(s(y''''), z''))
F(s(s(y''''')), s(s(y'')), z'') -> F(s(s(y''''')), s(y''), *(s(s(y''''')), z''))
F(s(x'''), s(s(y'')), z'') -> F(s(x'''), s(y''), *(s(x'''), z''))
F(x'''', s(s(s(x'''''))), z''') -> F(x'''', s(s(x''''')), *(x'''', z'''))
F(s(y''), s(s(x')), z) -> F(+(*(s(y''), y''), s(y'')), s(half(x')), z)
F(x, s(s(s(s(x''')))), z) -> F(*(x, x), s(s(half(x'''))), z)
F(s(s(y''')), s(y), z) -> F(+(+(*(s(s(y''')), y'''), s(s(y'''))), s(s(y'''))), half(s(y)), z)
F(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', z''))
F(s(0), s(y), z) -> F(+(0, s(0)), half(s(y)), z)
F(x'', s(s(s(x''''))), z'') -> F(x'', s(s(x'''')), *(x'', z''))
F(0, s(s(x')), z) -> F(0, s(half(x')), z)
F(x'''', s(s(s(s(x''''')))), z''') -> F(x'''', s(s(s(x'''''))), *(x'''', z'''))


The following usable rules for innermost can be oriented:

*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))


Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
F > half > {+, 0}
* > {+, 0}
s > half > {+, 0}

resulting in one new DP problem.
Used Argument Filtering System:
F(x1, x2, x3) -> F(x1, x2, x3)
s(x1) -> s(x1)
*(x1, x2) -> x1
half(x1) -> half(x1)
+(x1, x2) -> +


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
FwdInst
       →DP Problem 5
Nar
           →DP Problem 18
Nar
             ...
               →DP Problem 26
Dependency Graph


Dependency Pair:


Rules:


-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
if(true, x, y) -> x
if(false, x, y) -> y
if(true, x, y) -> true
if(false, x, y) -> false
odd(0) -> false
odd(s(0)) -> true
odd(s(s(x))) -> odd(x)
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
pow(x, y) -> f(x, y, s(0))
f(x, 0, z) -> z
f(x, s(y), z) -> if(odd(s(y)), f(x, y, *(x, z)), f(*(x, x), half(s(y)), z))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.

Innermost Termination of R successfully shown.
Duration:
0:18 minutes