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
↳17 QDP
↳18 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
MSORT(.(x, y)) → MIN(x, y)
MSORT(.(x, y)) → MSORT(del(min(x, y), .(x, y)))
MSORT(.(x, y)) → DEL(min(x, y), .(x, y))
MIN(x, .(y, z)) → MIN(x, z)
MIN(x, .(y, z)) → MIN(y, z)
DEL(x, .(y, z)) → DEL(x, z)
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
DEL(x, .(y, z)) → DEL(x, z)
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DEL(x, .(y, z)) → DEL(x, z)
[.2, msort1] > del > [nil, min2, if, <=, =]
.2: [1,2]
msort1: [1]
nil: []
min2: [1,2]
del: []
if: []
<=: []
=: []
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
MIN(x, .(y, z)) → MIN(y, z)
MIN(x, .(y, z)) → MIN(x, z)
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MIN(x, .(y, z)) → MIN(y, z)
MIN(x, .(y, z)) → MIN(x, z)
MIN2 > [nil, min1, if, <=, =]
[.2, msort1] > del > [nil, min1, if, <=, =]
MIN2: [2,1]
.2: [1,2]
msort1: [1]
nil: []
min1: [1]
del: []
if: []
<=: []
=: []
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
MSORT(.(x, y)) → MSORT(del(min(x, y), .(x, y)))
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MSORT(.(x, y)) → MSORT(del(min(x, y), .(x, y)))
[.2, msort1] > MSORT1 > [del, min1, nil, if, <=, =]
MSORT1: [1]
.2: [2,1]
del: []
min1: [1]
msort1: [1]
nil: []
if: []
<=: []
=: []
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil) → nil
msort(.(x, y)) → .(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, nil) → nil
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))
msort(nil)
msort(.(x0, x1))
min(x0, nil)
min(x0, .(x1, x2))
del(x0, nil)
del(x0, .(x1, x2))