Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
TRS Stand 20472 pair #381710419
details
property
value
status
complete
benchmark
selsort.xml
ran by
Akihisa Yamada
cpu timeout
1200 seconds
wallclock timeout
300 seconds
memory limit
137438953472 bytes
execution host
n092.star.cs.uiowa.edu
space
Rubio_04
run statistics
property
value
solver
Wanda
configuration
FirstOrder
runtime (wallclock)
0.390221118927 seconds
cpu usage
0.372786541
max memory
1.5167488E7
stage attributes
key
value
output-size
15893
starexec-result
YES
output
/export/starexec/sandbox/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o cons : [o * o] --> o eq : [o * o] --> o false : [] --> o ifmin : [o * o] --> o ifrepl : [o * o * o * o] --> o ifselsort : [o * o] --> o le : [o * o] --> o min : [o] --> o nil : [] --> o replace : [o * o * o] --> o s : [o] --> o selsort : [o] --> o true : [] --> o eq(0, 0) => true eq(0, s(X)) => false eq(s(X), 0) => false eq(s(X), s(Y)) => eq(X, Y) le(0, X) => true le(s(X), 0) => false le(s(X), s(Y)) => le(X, Y) min(cons(0, nil)) => 0 min(cons(s(X), nil)) => s(X) min(cons(X, cons(Y, Z))) => ifmin(le(X, Y), cons(X, cons(Y, Z))) ifmin(true, cons(X, cons(Y, Z))) => min(cons(X, Z)) ifmin(false, cons(X, cons(Y, Z))) => min(cons(Y, Z)) replace(X, Y, nil) => nil replace(X, Y, cons(Z, U)) => ifrepl(eq(X, Z), X, Y, cons(Z, U)) ifrepl(true, X, Y, cons(Z, U)) => cons(Y, U) ifrepl(false, X, Y, cons(Z, U)) => cons(Z, replace(X, Y, U)) selsort(nil) => nil selsort(cons(X, Y)) => ifselsort(eq(X, min(cons(X, Y))), cons(X, Y)) ifselsort(true, cons(X, Y)) => cons(X, selsort(Y)) ifselsort(false, cons(X, Y)) => cons(min(cons(X, Y)), selsort(replace(min(cons(X, Y)), X, Y))) As the system is orthogonal, it is terminating if it is innermost terminating by [Gra95]. Then, by [FuhGieParSchSwi11], it suffices to prove (innermost) termination of the typed system, with sort annotations chosen to respect the rules, as follows: 0 : [] --> uh cons : [uh * zh] --> zh eq : [uh * uh] --> sg false : [] --> sg ifmin : [sg * zh] --> uh ifrepl : [sg * uh * uh * zh] --> zh ifselsort : [sg * zh] --> zh le : [uh * uh] --> sg min : [zh] --> uh nil : [] --> zh replace : [uh * uh * zh] --> zh s : [uh] --> uh selsort : [zh] --> zh true : [] --> sg We use the dependency pair framework as described in [Kop12, Ch. 6/7], with static dependency pairs (see [KusIsoSakBla09] and the adaptation for AFSMs in [Kop12, Ch. 7.8]). We thus obtain the following dependency pair problem (P_0, R_0, minimal, formative): Dependency Pairs P_0: 0] eq#(s(X), s(Y)) =#> eq#(X, Y) 1] le#(s(X), s(Y)) =#> le#(X, Y) 2] min#(cons(X, cons(Y, Z))) =#> ifmin#(le(X, Y), cons(X, cons(Y, Z))) 3] min#(cons(X, cons(Y, Z))) =#> le#(X, Y) 4] ifmin#(true, cons(X, cons(Y, Z))) =#> min#(cons(X, Z)) 5] ifmin#(false, cons(X, cons(Y, Z))) =#> min#(cons(Y, Z)) 6] replace#(X, Y, cons(Z, U)) =#> ifrepl#(eq(X, Z), X, Y, cons(Z, U)) 7] replace#(X, Y, cons(Z, U)) =#> eq#(X, Z) 8] ifrepl#(false, X, Y, cons(Z, U)) =#> replace#(X, Y, U) 9] selsort#(cons(X, Y)) =#> ifselsort#(eq(X, min(cons(X, Y))), cons(X, Y)) 10] selsort#(cons(X, Y)) =#> eq#(X, min(cons(X, Y))) 11] selsort#(cons(X, Y)) =#> min#(cons(X, Y)) 12] ifselsort#(true, cons(X, Y)) =#> selsort#(Y) 13] ifselsort#(false, cons(X, Y)) =#> min#(cons(X, Y)) 14] ifselsort#(false, cons(X, Y)) =#> selsort#(replace(min(cons(X, Y)), X, Y)) 15] ifselsort#(false, cons(X, Y)) =#> replace#(min(cons(X, Y)), X, Y) 16] ifselsort#(false, cons(X, Y)) =#> min#(cons(X, Y)) Rules R_0: eq(0, 0) => true eq(0, s(X)) => false eq(s(X), 0) => false eq(s(X), s(Y)) => eq(X, Y) le(0, X) => true le(s(X), 0) => false le(s(X), s(Y)) => le(X, Y) min(cons(0, nil)) => 0 min(cons(s(X), nil)) => s(X) min(cons(X, cons(Y, Z))) => ifmin(le(X, Y), cons(X, cons(Y, Z)))
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to TRS Stand 20472