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`
`                 ↳Polynomial 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 w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(-'(x1, x2)) =  1 + x1 POL(s(x1)) =  1 + x1

resulting in one new DP problem.

`   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`
`                 ↳Polynomial 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 w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(*'(x1, x2)) =  1 + x2 POL(s(x1)) =  1 + x1

resulting in one new DP problem.

`   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`
`                 ↳Polynomial 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 w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(ODD(x1)) =  1 + x1 POL(s(x1)) =  1 + x1

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 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`
`                 ↳Polynomial 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 w.r.t. to the implicit AFS that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(HALF(x1)) =  1 + x1 POL(s(x1)) =  1 + x1

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 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`
`                 ↳Polynomial 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(x', s(s(s(x'0'))), z'') -> F(x', s(s(x'0')), *(x', 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'''))

Additionally, the following usable rules for innermost w.r.t. to the implicit AFS can be oriented:

half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(0) =  0 POL(*(x1, x2)) =  0 POL(s(x1)) =  1 + x1 POL(half(x1)) =  x1 POL(+(x1, x2)) =  0 POL(F(x1, x2, x3)) =  1 + x2

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 26`
`                 ↳Dependency Graph`

Dependency Pairs:

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)

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:17 minutes