(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TOP(sent(x)) → TOP(check(rest(x)))
TOP(sent(x)) → CHECK(rest(x))
TOP(sent(x)) → REST(x)
CHECK(sent(x)) → CHECK(x)
CHECK(rest(x)) → REST(check(x))
CHECK(rest(x)) → CHECK(x)
CHECK(cons(x, y)) → CHECK(x)
CHECK(cons(x, y)) → CHECK(y)

The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CHECK(rest(x)) → CHECK(x)
CHECK(sent(x)) → CHECK(x)
CHECK(cons(x, y)) → CHECK(x)
CHECK(cons(x, y)) → CHECK(y)

The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CHECK(cons(x, y)) → CHECK(x)
CHECK(cons(x, y)) → CHECK(y)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CHECK(x1)  =  x1
rest(x1)  =  x1
sent(x1)  =  x1
cons(x1, x2)  =  cons(x1, x2)
top(x1)  =  top(x1)
check(x1)  =  x1
nil  =  nil

Recursive path order with status [RPO].
Precedence:
cons2 > top1
nil > top1

Status:
cons2: [2,1]
top1: multiset
nil: multiset

The following usable rules [FROCOS05] were oriented:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CHECK(rest(x)) → CHECK(x)
CHECK(sent(x)) → CHECK(x)

The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CHECK(rest(x)) → CHECK(x)
CHECK(sent(x)) → CHECK(x)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CHECK(x1)  =  x1
rest(x1)  =  rest(x1)
sent(x1)  =  sent(x1)
top(x1)  =  top
check(x1)  =  check(x1)
nil  =  nil
cons(x1, x2)  =  cons(x2)

Recursive path order with status [RPO].
Precedence:
top > check1 > rest1 > sent1
top > check1 > cons1 > sent1
nil > sent1

Status:
rest1: multiset
sent1: multiset
top: []
check1: [1]
nil: multiset
cons1: multiset

The following usable rules [FROCOS05] were oriented:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

(9) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(11) TRUE

(12) Obligation:

Q DP problem:
The TRS P consists of the following rules:

TOP(sent(x)) → TOP(check(rest(x)))

The TRS R consists of the following rules:

top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
rest(cons(x, y)) → sent(y)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.