YES
0 QTRS
↳1 Overlay + Local Confluence (⇔, 0 ms)
↳2 QTRS
↳3 DependencyPairsProof (⇔, 0 ms)
↳4 QDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 QDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 QDP
↳10 QReductionProof (⇔, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 QReductionProof (⇔, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
QSORT(.(x, y)) → QSORT(lowers(x, y))
QSORT(.(x, y)) → LOWERS(x, y)
QSORT(.(x, y)) → QSORT(greaters(x, y))
QSORT(.(x, y)) → GREATERS(x, y)
LOWERS(x, .(y, z)) → LOWERS(x, z)
GREATERS(x, .(y, z)) → GREATERS(x, z)
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
GREATERS(x, .(y, z)) → GREATERS(x, z)
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
GREATERS(x, .(y, z)) → GREATERS(x, z)
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
GREATERS(x, .(y, z)) → GREATERS(x, z)
From the DPs we obtained the following set of size-change graphs:
LOWERS(x, .(y, z)) → LOWERS(x, z)
qsort(nil) → nil
qsort(.(x, y)) → ++(qsort(lowers(x, y)), .(x, qsort(greaters(x, y))))
lowers(x, nil) → nil
lowers(x, .(y, z)) → if(<=(y, x), .(y, lowers(x, z)), lowers(x, z))
greaters(x, nil) → nil
greaters(x, .(y, z)) → if(<=(y, x), greaters(x, z), .(y, greaters(x, z)))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
LOWERS(x, .(y, z)) → LOWERS(x, z)
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
qsort(nil)
qsort(.(x0, x1))
lowers(x0, nil)
lowers(x0, .(x1, x2))
greaters(x0, nil)
greaters(x0, .(x1, x2))
LOWERS(x, .(y, z)) → LOWERS(x, z)
From the DPs we obtained the following set of size-change graphs: