TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60000 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (75ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor BackwardInstantiation (5ms).
 |    | – Problem 5 was processed with processor ForwardInstantiation (5ms).
 |    |    | – Problem 6 was processed with processor BackwardInstantiation (5ms).
 |    |    |    | – Problem 7 was processed with processor ForwardInstantiation (12ms).
 |    |    |    |    | – Problem 8 was processed with processor BackwardInstantiation (9ms).
 |    |    |    |    |    | – Problem 9 was processed with processor Propagation (8ms).
 |    |    |    |    |    |    | – Problem 10 remains open; application of the following processors failed [].
 | – Problem 4 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if#(false, false, y, xs, ys, x) → sumList#(ys, x)
if#(false, true, y, xs, ys, x) → sumList#(xs, y)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, cons, nil, isZero


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

sumList#(xs, y) → head#(xs)sumList#(xs, y) → p#(head(xs))
sum#(xs) → sumList#(xs, 0)sumList#(xs, y) → inc#(y)
sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))sumList#(xs, y) → tail#(xs)
inc#(s(x)) → inc#(x)if#(false, true, y, xs, ys, x) → sumList#(xs, y)
if#(false, false, y, xs, ys, x) → sumList#(ys, x)p#(s(s(x))) → p#(s(x))
sumList#(xs, y) → isZero#(head(xs))sumList#(xs, y) → isEmpty#(xs)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


The following SCCs where found

inc#(s(x)) → inc#(x)

p#(s(s(x))) → p#(s(x))

sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if#(false, true, y, xs, ys, x) → sumList#(xs, y)
if#(false, false, y, xs, ys, x) → sumList#(ys, x)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

p#(s(s(x))) → p#(s(x))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

p#(s(s(x))) → p#(s(x))

Problem 3: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if#(false, true, y, xs, ys, x) → sumList#(xs, y)
if#(false, false, y, xs, ys, x) → sumList#(ys, x)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) on dependency pair chains it holds that: Thus, sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) is replaced by instances determined through the above matching. These instances are:
sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y))

Problem 5: ForwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, false, y, xs, ys, x) → sumList#(ys, x)if#(false, true, y, xs, ys, x) → sumList#(xs, y)
sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, cons, nil, isZero

Strategy


Instantiation

For all potential successors l → r of the rule if#(false, true, y, xs, ys, x) → sumList#(xs, y) on dependency pair chains it holds that: Thus, if#(false, true, y, xs, ys, x) → sumList#(xs, y) is replaced by instances determined through the above matching. These instances are:
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, true, y, xs, ys, x) → sumList#(xs, y)

Instantiation

For all potential successors l → r of the rule if#(false, false, y, xs, ys, x) → sumList#(ys, x) on dependency pair chains it holds that: Thus, if#(false, false, y, xs, ys, x) → sumList#(ys, x) is replaced by instances determined through the above matching. These instances are:
if#(false, false, y, xs, ys, x) → sumList#(ys, x)

Problem 6: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, false, y, xs, ys, x) → sumList#(ys, x)
if#(false, true, y, xs, ys, x) → sumList#(xs, y)sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))
sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x)) on dependency pair chains it holds that: Thus, sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x)) is replaced by instances determined through the above matching. These instances are:
sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x))sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))

Instantiation

For all potential predecessors l → r of the rule sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y)) on dependency pair chains it holds that: Thus, sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y)) is replaced by instances determined through the above matching. These instances are:
sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))

Problem 7: ForwardInstantiation



Dependency Pair Problem

Dependency Pairs

sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x))sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, true, y, xs, ys, x) → sumList#(xs, y)
if#(false, false, y, xs, ys, x) → sumList#(ys, x)sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, cons, nil, isZero

Strategy


Instantiation

For all potential successors l → r of the rule if#(false, true, y, xs, xs, y) → sumList#(xs, y) on dependency pair chains it holds that: Thus, if#(false, true, y, xs, xs, y) → sumList#(xs, y) is replaced by instances determined through the above matching. These instances are:
if#(false, true, y, xs, xs, y) → sumList#(xs, y)

Instantiation

For all potential successors l → r of the rule if#(false, false, y, xs, ys, x) → sumList#(ys, x) on dependency pair chains it holds that: Thus, if#(false, false, y, xs, ys, x) → sumList#(ys, x) is replaced by instances determined through the above matching. These instances are:
if#(false, false, x, ys, ys, x) → sumList#(ys, x)if#(false, false, y, xs, ys, x) → sumList#(ys, x)

Instantiation

For all potential successors l → r of the rule if#(false, true, y, xs, ys, x) → sumList#(xs, y) on dependency pair chains it holds that: Thus, if#(false, true, y, xs, ys, x) → sumList#(xs, y) is replaced by instances determined through the above matching. These instances are:
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, true, y, xs, ys, x) → sumList#(xs, y)

Problem 8: BackwardInstantiation



Dependency Pair Problem

Dependency Pairs

sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x))
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, true, y, xs, ys, x) → sumList#(xs, y)
if#(false, false, x, ys, ys, x) → sumList#(ys, x)if#(false, false, y, xs, ys, x) → sumList#(ys, x)
sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


Instantiation

For all potential predecessors l → r of the rule sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x)) on dependency pair chains it holds that: Thus, sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x)) is replaced by instances determined through the above matching. These instances are:
sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))

Instantiation

For all potential predecessors l → r of the rule sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) on dependency pair chains it holds that: Thus, sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) is replaced by instances determined through the above matching. These instances are:
sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y))

Instantiation

For all potential predecessors l → r of the rule sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x)) on dependency pair chains it holds that: Thus, sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x)) is replaced by instances determined through the above matching. These instances are:
sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x))sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))

Problem 9: Propagation



Dependency Pair Problem

Dependency Pairs

sumList#(_ys, _x) → if#(isEmpty(_ys), isZero(head(_ys)), _x, tail(_ys), cons(p(head(_ys)), tail(_ys)), inc(_x))sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, false, y, xs, ys, x) → sumList#(ys, x)
if#(false, false, x, ys, ys, x) → sumList#(ys, x)if#(false, true, y, xs, ys, x) → sumList#(xs, y)
sumList#(ys, x) → if#(isEmpty(ys), isZero(head(ys)), x, tail(ys), cons(p(head(ys)), tail(ys)), inc(x))sumList#(_xs, _y) → if#(isEmpty(_xs), isZero(head(_xs)), _y, tail(_xs), cons(p(head(_xs)), tail(_xs)), inc(_y))

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, cons, nil, isZero

Strategy


The dependency pairs if#(false, true, y, xs, xs, y) → sumList#(xs, y) and sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) are consolidated into the rule if#(false, true, y, xs, xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) .

This is possible as

The dependency pairs if#(false, true, y, xs, ys, x) → sumList#(xs, y) and sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) are consolidated into the rule if#(false, true, y, xs, ys, x) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y)) .

This is possible as


Summary

Removed Dependency PairsAdded Dependency Pairs
sumList#(xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if#(false, true, y, xs, ys, x) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))
if#(false, true, y, xs, xs, y) → sumList#(xs, y)if#(false, true, y, xs, xs, y) → if#(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))
if#(false, true, y, xs, ys, x) → sumList#(xs, y) 

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

inc#(s(x)) → inc#(x)

Rewrite Rules

isEmpty(cons(x, xs)) → falseisEmpty(nil) → true
isZero(0) → trueisZero(s(x)) → false
head(cons(x, xs)) → xtail(cons(x, xs)) → xs
tail(nil) → nilp(s(s(x))) → s(p(s(x)))
p(s(0)) → 0p(0) → 0
inc(s(x)) → s(inc(x))inc(0) → s(0)
sumList(xs, y) → if(isEmpty(xs), isZero(head(xs)), y, tail(xs), cons(p(head(xs)), tail(xs)), inc(y))if(true, b, y, xs, ys, x) → y
if(false, true, y, xs, ys, x) → sumList(xs, y)if(false, false, y, xs, ys, x) → sumList(ys, x)
sum(xs) → sumList(xs, 0)

Original Signature

Termination of terms over the following signature is verified: sumList, sum, true, tail, isEmpty, 0, s, inc, if, p, false, head, isZero, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

inc#(s(x)) → inc#(x)