Term Rewriting System R:
[x, y]
f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Innermost Termination of R to be shown.

`   R`
`     ↳Dependency Pair Analysis`

R contains the following Dependency Pairs:

F(s(x)) -> F(x)
G(s(x), s(y)) -> IF(f(x), s(x), s(y))
G(s(x), s(y)) -> F(x)
G(x, c(y)) -> G(x, g(s(c(y)), y))
G(x, c(y)) -> G(s(c(y)), y)

Furthermore, R contains two SCCs.

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳Forward Instantiation Transformation`
`       →DP Problem 2`
`         ↳Nar`

Dependency Pair:

F(s(x)) -> F(x)

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

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

F(s(s(x''))) -> F(s(x''))

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`           →DP Problem 3`
`             ↳Forward Instantiation Transformation`
`       →DP Problem 2`
`         ↳Nar`

Dependency Pair:

F(s(s(x''))) -> F(s(x''))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

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

F(s(s(s(x'''')))) -> F(s(s(x'''')))

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`           →DP Problem 3`
`             ↳FwdInst`
`             ...`
`               →DP Problem 4`
`                 ↳Polynomial Ordering`
`       →DP Problem 2`
`         ↳Nar`

Dependency Pair:

F(s(s(s(x'''')))) -> F(s(s(x'''')))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

The following dependency pair can be strictly oriented:

F(s(s(s(x'''')))) -> F(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(s(x1)) =  1 + x1 POL(F(x1)) =  1 + x1

resulting in one new DP problem.

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`           →DP Problem 3`
`             ↳FwdInst`
`             ...`
`               →DP Problem 5`
`                 ↳Dependency Graph`
`       →DP Problem 2`
`         ↳Nar`

Dependency Pair:

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

Using the Dependency Graph resulted in no new DP problems.

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Narrowing Transformation`

Dependency Pairs:

G(x, c(y)) -> G(s(c(y)), y)
G(x, c(y)) -> G(x, g(s(c(y)), y))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(y)) -> G(x, g(s(c(y)), y))
two new Dependency Pairs are created:

G(x, c(s(y''))) -> G(x, if(f(c(s(y''))), s(c(s(y''))), s(y'')))
G(x, c(c(y''))) -> G(x, g(s(c(c(y''))), g(s(c(y'')), y'')))

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Narrowing Transformation`

Dependency Pairs:

G(x, c(c(y''))) -> G(x, g(s(c(c(y''))), g(s(c(y'')), y'')))
G(x, c(s(y''))) -> G(x, if(f(c(s(y''))), s(c(s(y''))), s(y'')))
G(x, c(y)) -> G(s(c(y)), y)

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(s(y''))) -> G(x, if(f(c(s(y''))), s(c(s(y''))), s(y'')))
no new Dependency Pairs are created.
The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 7`
`                 ↳Narrowing Transformation`

Dependency Pairs:

G(x, c(y)) -> G(s(c(y)), y)
G(x, c(c(y''))) -> G(x, g(s(c(c(y''))), g(s(c(y'')), y'')))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(c(y''))) -> G(x, g(s(c(c(y''))), g(s(c(y'')), y'')))
two new Dependency Pairs are created:

G(x, c(c(s(y')))) -> G(x, g(s(c(c(s(y')))), if(f(c(s(y'))), s(c(s(y'))), s(y'))))
G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 8`
`                 ↳Narrowing Transformation`

Dependency Pairs:

G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))
G(x, c(c(s(y')))) -> G(x, g(s(c(c(s(y')))), if(f(c(s(y'))), s(c(s(y'))), s(y'))))
G(x, c(y)) -> G(s(c(y)), y)

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(c(s(y')))) -> G(x, g(s(c(c(s(y')))), if(f(c(s(y'))), s(c(s(y'))), s(y'))))
no new Dependency Pairs are created.
The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 9`
`                 ↳Forward Instantiation Transformation`

Dependency Pairs:

G(x, c(y)) -> G(s(c(y)), y)
G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(y)) -> G(s(c(y)), y)
two new Dependency Pairs are created:

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

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 10`
`                 ↳Forward Instantiation Transformation`

Dependency Pairs:

G(x, c(c(c(c(y'''))))) -> G(s(c(c(c(c(y'''))))), c(c(c(y'''))))
G(x, c(c(y''))) -> G(s(c(c(y''))), c(y''))
G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(c(y''))) -> G(s(c(c(y''))), c(y''))
three new Dependency Pairs are created:

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

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 11`
`                 ↳Polynomial Ordering`

Dependency Pairs:

G(x, c(c(c(c(c(y''''')))))) -> G(s(c(c(c(c(c(y''''')))))), c(c(c(c(y''''')))))
G(x, c(c(c(y'''')))) -> G(s(c(c(c(y'''')))), c(c(y'''')))
G(x, c(c(c(c(y''''))))) -> G(s(c(c(c(c(y''''))))), c(c(c(y''''))))
G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))
G(x, c(c(c(c(y'''))))) -> G(s(c(c(c(c(y'''))))), c(c(c(y'''))))

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

The following dependency pair can be strictly oriented:

G(x, c(c(c(y')))) -> G(x, g(s(c(c(c(y')))), g(s(c(c(y'))), g(s(c(y')), y'))))

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

g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))
if(true, x, y) -> x
if(false, x, y) -> y

Used ordering: Polynomial ordering with Polynomial interpretation:
 POL(if(x1, x2, x3)) =  x2 + x3 POL(c(x1)) =  1 POL(0) =  0 POL(g(x1, x2)) =  0 POL(false) =  0 POL(G(x1, x2)) =  x2 POL(1) =  0 POL(true) =  0 POL(s(x1)) =  0 POL(f(x1)) =  0

resulting in one new DP problem.

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 12`
`                 ↳Instantiation Transformation`

Dependency Pairs:

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

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

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

G(x, c(c(c(c(y'''))))) -> G(s(c(c(c(c(y'''))))), c(c(c(y'''))))
two new Dependency Pairs are created:

G(s(c(c(c(c(c(y''''')))))), c(c(c(c(y'''''))))) -> G(s(c(c(c(c(y'''''))))), c(c(c(y'''''))))
G(s(c(c(c(c(c(y'''')))))), c(c(c(c(y''''))))) -> G(s(c(c(c(c(y''''))))), c(c(c(y''''))))

The transformation is resulting in one new DP problem:

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 13`
`                 ↳Polynomial Ordering`

Dependency Pairs:

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

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

The following dependency pairs can be strictly oriented:

G(s(c(c(c(c(c(y'''')))))), c(c(c(c(y''''))))) -> G(s(c(c(c(c(y''''))))), c(c(c(y''''))))
G(s(c(c(c(c(c(y''''')))))), c(c(c(c(y'''''))))) -> G(s(c(c(c(c(y'''''))))), c(c(c(y'''''))))
G(x, c(c(c(y'''')))) -> G(s(c(c(c(y'''')))), c(c(y'''')))
G(x, c(c(c(c(y''''))))) -> G(s(c(c(c(c(y''''))))), c(c(c(y''''))))
G(x, c(c(c(c(c(y''''')))))) -> G(s(c(c(c(c(c(y''''')))))), c(c(c(c(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(c(x1)) =  1 + x1 POL(G(x1, x2)) =  1 + x2 POL(s(x1)) =  0

resulting in one new DP problem.

`   R`
`     ↳DPs`
`       →DP Problem 1`
`         ↳FwdInst`
`       →DP Problem 2`
`         ↳Nar`
`           →DP Problem 6`
`             ↳Nar`
`             ...`
`               →DP Problem 14`
`                 ↳Dependency Graph`

Dependency Pair:

Rules:

f(0) -> true
f(1) -> false
f(s(x)) -> f(x)
if(true, x, y) -> x
if(false, x, y) -> y
g(s(x), s(y)) -> if(f(x), s(x), s(y))
g(x, c(y)) -> g(x, g(s(c(y)), y))

Strategy:

innermost

Using the Dependency Graph resulted in no new DP problems.

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