(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:
784183, 784184, 784185, 784186, 784187, 784188, 784189, 784191, 784190, 784192
Node 784183 is start node and node 784184 is final node.
Those nodes are connect through the following edges:
- 784183 to 784185 labelled TOP_1(0)
- 784183 to 784190 labelled TOP_1(1)
- 784184 to 784184 labelled #_1(0)
- 784185 to 784186 labelled check_1(0)
- 784185 to 784188 labelled rest_1(1)
- 784185 to 784189 labelled sent_1(1)
- 784186 to 784184 labelled rest_1(0)
- 784186 to 784187 labelled sent_1(1)
- 784187 to 784184 labelled nil(1)
- 784188 to 784184 labelled check_1(1)
- 784188 to 784188 labelled sent_1(1), rest_1(1)
- 784189 to 784187 labelled check_1(1)
- 784191 to 784189 labelled rest_1(1)
- 784190 to 784191 labelled check_1(1)
- 784190 to 784192 labelled rest_1(2)
- 784192 to 784189 labelled check_1(2)
(18) TRUE