(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
merge(nil, y) → y
merge(x, nil) → x
merge(.(x, y), .(u, v)) → if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
if(true, x, y) → x
if(false, x, y) → x
Q is empty.
(1) Overlay + Local Confluence (EQUIVALENT transformation)
The TRS is overlay and locally confluent. By [NOC] we can switch to innermost.
(2) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
merge(nil, y) → y
merge(x, nil) → x
merge(.(x, y), .(u, v)) → if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
if(true, x, y) → x
if(false, x, y) → x
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
(3) DependencyPairsProof (EQUIVALENT transformation)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
(4) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGE(.(x, y), .(u, v)) → IF(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
MERGE(.(x, y), .(u, v)) → MERGE(y, .(u, v))
MERGE(.(x, y), .(u, v)) → MERGE(.(x, y), v)
++1(.(x, y), z) → ++1(y, z)
The TRS R consists of the following rules:
merge(nil, y) → y
merge(x, nil) → x
merge(.(x, y), .(u, v)) → if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
if(true, x, y) → x
if(false, x, y) → x
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
We have to consider all minimal (P,Q,R)-chains.
(5) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node.
(6) Complex Obligation (AND)
(7) Obligation:
Q DP problem:
The TRS P consists of the following rules:
++1(.(x, y), z) → ++1(y, z)
The TRS R consists of the following rules:
merge(nil, y) → y
merge(x, nil) → x
merge(.(x, y), .(u, v)) → if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
if(true, x, y) → x
if(false, x, y) → x
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
We have to consider all minimal (P,Q,R)-chains.
(8) UsableRulesProof (EQUIVALENT transformation)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
(9) Obligation:
Q DP problem:
The TRS P consists of the following rules:
++1(.(x, y), z) → ++1(y, z)
R is empty.
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
We have to consider all minimal (P,Q,R)-chains.
(10) QReductionProof (EQUIVALENT transformation)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
(11) Obligation:
Q DP problem:
The TRS P consists of the following rules:
++1(.(x, y), z) → ++1(y, z)
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:
- ++1(.(x, y), z) → ++1(y, z)
The graph contains the following edges 1 > 1, 2 >= 2
(13) TRUE
(14) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGE(.(x, y), .(u, v)) → MERGE(.(x, y), v)
MERGE(.(x, y), .(u, v)) → MERGE(y, .(u, v))
The TRS R consists of the following rules:
merge(nil, y) → y
merge(x, nil) → x
merge(.(x, y), .(u, v)) → if(<(x, u), .(x, merge(y, .(u, v))), .(u, merge(.(x, y), v)))
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
if(true, x, y) → x
if(false, x, y) → x
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
We have to consider all minimal (P,Q,R)-chains.
(15) UsableRulesProof (EQUIVALENT transformation)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
(16) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGE(.(x, y), .(u, v)) → MERGE(.(x, y), v)
MERGE(.(x, y), .(u, v)) → MERGE(y, .(u, v))
R is empty.
The set Q consists of the following terms:
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
We have to consider all minimal (P,Q,R)-chains.
(17) QReductionProof (EQUIVALENT transformation)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].
merge(nil, x0)
merge(x0, nil)
merge(.(x0, x1), .(x2, x3))
++(nil, x0)
++(.(x0, x1), x2)
if(true, x0, x1)
if(false, x0, x1)
(18) Obligation:
Q DP problem:
The TRS P consists of the following rules:
MERGE(.(x, y), .(u, v)) → MERGE(.(x, y), v)
MERGE(.(x, y), .(u, v)) → MERGE(y, .(u, v))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(19) 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:
- MERGE(.(x, y), .(u, v)) → MERGE(.(x, y), v)
The graph contains the following edges 1 >= 1, 2 > 2
- MERGE(.(x, y), .(u, v)) → MERGE(y, .(u, v))
The graph contains the following edges 1 > 1, 2 >= 2
(20) TRUE