0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPSizeChangeProof (⇔)
↳7 TRUE
↳8 QDP
↳9 QDPSizeChangeProof (⇔)
↳10 TRUE
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 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(.(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)))
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)))
Order:Homeomorphic Embedding Order
AFS:
.(x1, x2) = .(x2)
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules [AAECC05,FROCOS05].
none
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)))
Order:Homeomorphic Embedding Order
AFS:
.(x1, x2) = .(x2)
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules [AAECC05,FROCOS05].
none
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)))
Order:Combined order from the following AFS and order.
min(x1, x2) = x1
nil = nil
.(x1, x2) = .(x1)
if(x1, x2, x3) = if
<=(x1, x2) = <=(x1, x2)
del(x1, x2) = x1
=(x1, x2) = =(x1, x2)
Recursive path order with status [RPO].
Quasi-Precedence:
nil > [.1, if]
<=2 > [.1, if]
=2 > [.1, if]
nil: multiset
.1: multiset
if: multiset
<=2: multiset
=2: multiset
AFS:
min(x1, x2) = x1
nil = nil
.(x1, x2) = .(x1)
if(x1, x2, x3) = if
<=(x1, x2) = <=(x1, x2)
del(x1, x2) = x1
=(x1, x2) = =(x1, x2)
From the DPs we obtained the following set of size-change graphs:
We oriented the following set of usable rules [AAECC05,FROCOS05].
min(x, nil) → x
min(x, .(y, z)) → if(<=(x, y), min(x, z), min(y, z))
del(x, .(y, z)) → if(=(x, y), z, .(y, del(x, z)))