(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) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(check(x1)) = x1
POL(cons(x1, x2)) = 1 + x1 + x2
POL(nil) = 0
POL(rest(x1)) = x1
POL(sent(x1)) = x1
POL(top(x1)) = x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
rest(cons(x, y)) → sent(y)
(2) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
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.
(3) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(check(x1)) = 2·x1
POL(cons(x1, x2)) = 2 + x1 + 2·x2
POL(nil) = 0
POL(rest(x1)) = x1
POL(sent(x1)) = 2·x1
POL(top(x1)) = 2·x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
check(cons(x, y)) → cons(check(x), y)
check(cons(x, y)) → cons(x, check(y))
check(cons(x, y)) → cons(x, y)
(4) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
Q is empty.
(5) DependencyPairsProof (EQUIVALENT transformation)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
(6) 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)
The TRS R consists of the following rules:
top(sent(x)) → top(check(rest(x)))
rest(nil) → sent(nil)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(7) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes.
(8) Complex Obligation (AND)
(9) 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)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(10) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(11) Obligation:
Q DP problem:
The TRS P consists of the following rules:
CHECK(rest(x)) → CHECK(x)
CHECK(sent(x)) → CHECK(x)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(12) QDPSizeChangeProof (EQUIVALENT transformation)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.
From the DPs we obtained the following set of size-change graphs:
- CHECK(rest(x)) → CHECK(x)
The graph contains the following edges 1 > 1
- CHECK(sent(x)) → CHECK(x)
The graph contains the following edges 1 > 1
(13) TRUE
(14) 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)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(15) UsableRulesProof (EQUIVALENT transformation)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
(16) 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:
rest(nil) → sent(nil)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(17) RFCMatchBoundsDPProof (EQUIVALENT transformation)
Finiteness of the DP problem can be shown by a matchbound of 2.
As the DP problem is minimal we only have to initialize the certificate graph by the rules of P:
TOP(sent(x)) → TOP(check(rest(x)))
To find matches we regarded all rules of R and P:
rest(nil) → sent(nil)
check(sent(x)) → sent(check(x))
check(rest(x)) → rest(check(x))
TOP(sent(x)) → TOP(check(rest(x)))
The certificate found is represented by the following graph.
The certificate consists of the following enumerated nodes:
2680146, 2680147, 2680149, 2680148, 2680150, 2680151, 2680152, 2680154, 2680153, 2680155
Node 2680146 is start node and node 2680147 is final node.
Those nodes are connect through the following edges:
- 2680146 to 2680148 labelled TOP_1(0)
- 2680146 to 2680153 labelled TOP_1(1)
- 2680147 to 2680147 labelled #_1(0)
- 2680149 to 2680147 labelled rest_1(0)
- 2680149 to 2680151 labelled sent_1(1)
- 2680148 to 2680149 labelled check_1(0)
- 2680148 to 2680150 labelled rest_1(1)
- 2680148 to 2680152 labelled sent_1(1)
- 2680150 to 2680147 labelled check_1(1)
- 2680150 to 2680150 labelled sent_1(1), rest_1(1)
- 2680151 to 2680147 labelled nil(1)
- 2680152 to 2680151 labelled check_1(1)
- 2680154 to 2680152 labelled rest_1(1)
- 2680153 to 2680154 labelled check_1(1)
- 2680153 to 2680155 labelled rest_1(2)
- 2680155 to 2680152 labelled check_1(2)
(18) TRUE