(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:
9162748, 9162749, 9162751, 9162750, 9162752, 9162753, 9162754, 9162755, 9162756, 9162757
Node 9162748 is start node and node 9162749 is final node.
Those nodes are connect through the following edges:
- 9162748 to 9162750 labelled TOP_1(0)
- 9162748 to 9162755 labelled TOP_1(1)
- 9162749 to 9162749 labelled #_1(0)
- 9162751 to 9162749 labelled rest_1(0)
- 9162751 to 9162753 labelled sent_1(1)
- 9162750 to 9162751 labelled check_1(0)
- 9162750 to 9162752 labelled rest_1(1)
- 9162750 to 9162754 labelled sent_1(1)
- 9162752 to 9162749 labelled check_1(1)
- 9162752 to 9162752 labelled sent_1(1), rest_1(1)
- 9162753 to 9162749 labelled nil(1)
- 9162754 to 9162753 labelled check_1(1)
- 9162755 to 9162756 labelled check_1(1)
- 9162755 to 9162757 labelled rest_1(2)
- 9162756 to 9162754 labelled rest_1(1)
- 9162757 to 9162754 labelled check_1(2)
(18) TRUE