YES

The TRS could be proven terminating. The proof took 524 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (15ms).
 | – Problem 2 was processed with processor SubtermCriterion (3ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4iUR (340ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

msort#(.(x, y))min#(x, y)min#(x, .(y, z))min#(y, z)
msort#(.(x, y))msort#(del(min(x, y), .(x, y)))msort#(.(x, y))del#(min(x, y), .(x, y))
del#(x, .(y, z))del#(x, z)min#(x, .(y, z))min#(x, z)

Rewrite Rules

msort(nil)nilmsort(.(x, y)).(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil)xmin(x, .(y, z))if(<=(x, y), min(x, z), min(y, z))
del(x, nil)nildel(x, .(y, z))if(=(x, y), z, .(y, del(x, z)))

Original Signature

Termination of terms over the following signature is verified: min, msort, if, <=, del, ., =, nil

Strategy


The following SCCs where found

msort#(.(x, y)) → msort#(del(min(x, y), .(x, y)))

del#(x, .(y, z)) → del#(x, z)

min#(x, .(y, z)) → min#(y, z)min#(x, .(y, z)) → min#(x, z)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

min#(x, .(y, z))min#(y, z)min#(x, .(y, z))min#(x, z)

Rewrite Rules

msort(nil)nilmsort(.(x, y)).(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil)xmin(x, .(y, z))if(<=(x, y), min(x, z), min(y, z))
del(x, nil)nildel(x, .(y, z))if(=(x, y), z, .(y, del(x, z)))

Original Signature

Termination of terms over the following signature is verified: min, msort, if, <=, del, ., =, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

min#(x, .(y, z))min#(y, z)min#(x, .(y, z))min#(x, z)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

del#(x, .(y, z))del#(x, z)

Rewrite Rules

msort(nil)nilmsort(.(x, y)).(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil)xmin(x, .(y, z))if(<=(x, y), min(x, z), min(y, z))
del(x, nil)nildel(x, .(y, z))if(=(x, y), z, .(y, del(x, z)))

Original Signature

Termination of terms over the following signature is verified: min, msort, if, <=, del, ., =, nil

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

del#(x, .(y, z))del#(x, z)

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

msort#(.(x, y))msort#(del(min(x, y), .(x, y)))

Rewrite Rules

msort(nil)nilmsort(.(x, y)).(min(x, y), msort(del(min(x, y), .(x, y))))
min(x, nil)xmin(x, .(y, z))if(<=(x, y), min(x, z), min(y, z))
del(x, nil)nildel(x, .(y, z))if(=(x, y), z, .(y, del(x, z)))

Original Signature

Termination of terms over the following signature is verified: min, msort, if, <=, del, ., =, nil

Strategy


Polynomial Interpretation

Improved Usable rules

del(x, nil)nildel(x, .(y, z))if(=(x, y), z, .(y, del(x, z)))

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

msort#(.(x, y))msort#(del(min(x, y), .(x, y)))