0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
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))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GREATERS(x, .(y, z)) → GREATERS(x, z)
GREATERS2 > nil
.2 > nil
qsort > nil
lowers > nil
<= > nil
GREATERS2: [1,2]
.2: [2,1]
qsort: []
nil: []
lowers: []
<=: []
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))
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))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LOWERS(x, .(y, z)) → LOWERS(x, z)
LOWERS2 > nil
.2 > nil
qsort > nil
lowers > nil
<= > nil
LOWERS2: [1,2]
.2: [2,1]
qsort: []
nil: []
lowers: []
<=: []
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))