Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
TRS Stand 20472 pair #381717035
details
property
value
status
complete
benchmark
Ex26_Luc03b_L.xml
ran by
Akihisa Yamada
cpu timeout
1200 seconds
wallclock timeout
300 seconds
memory limit
137438953472 bytes
execution host
n056.star.cs.uiowa.edu
space
Transformed_CSR_04
run statistics
property
value
solver
Wanda
configuration
FirstOrder
runtime (wallclock)
0.0259821414948 seconds
cpu usage
0.022376017
max memory
1421312.0
stage attributes
key
value
output-size
2308
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 add : [o * o] --> o cons : [o] --> o dbl : [o] --> o first : [o * o] --> o nil : [] --> o recip : [o] --> o s : [] --> o sqr : [o] --> o terms : [o] --> o terms(X) => cons(recip(sqr(X))) sqr(0) => 0 sqr(s) => s dbl(0) => 0 dbl(s) => s add(0, X) => X add(s, X) => s first(0, X) => nil first(s, cons(X)) => cons(X) We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): terms(X) >? cons(recip(sqr(X))) sqr(0) >? 0 sqr(s) >? s dbl(0) >? 0 dbl(s) >? s add(0, X) >? X add(s, X) >? s first(0, X) >? nil first(s, cons(X)) >? cons(X) We orient these requirements with a polynomial interpretation in the natural numbers. The following interpretation satisfies the requirements: 0 = 0 add = \y0y1.3 + y1 + 3y0 cons = \y0.y0 dbl = \y0.3 + 3y0 first = \y0y1.3 + 3y0 + 3y1 nil = 0 recip = \y0.y0 s = 0 sqr = \y0.2 + 3y0 terms = \y0.3 + 3y0 Using this interpretation, the requirements translate to: [[terms(_x0)]] = 3 + 3x0 > 2 + 3x0 = [[cons(recip(sqr(_x0)))]] [[sqr(0)]] = 2 > 0 = [[0]] [[sqr(s)]] = 2 > 0 = [[s]] [[dbl(0)]] = 3 > 0 = [[0]] [[dbl(s)]] = 3 > 0 = [[s]] [[add(0, _x0)]] = 3 + x0 > x0 = [[_x0]] [[add(s, _x0)]] = 3 + x0 > 0 = [[s]] [[first(0, _x0)]] = 3 + 3x0 > 0 = [[nil]] [[first(s, cons(_x0))]] = 3 + 3x0 > x0 = [[cons(_x0)]] We can thus remove the following rules: terms(X) => cons(recip(sqr(X))) sqr(0) => 0 sqr(s) => s dbl(0) => 0 dbl(s) => s add(0, X) => X add(s, X) => s first(0, X) => nil first(s, cons(X)) => cons(X) All rules were succesfully removed. Thus, termination of the original system has been reduced to termination of the beta-rule, which is well-known to hold. +++ Citations +++ [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012.
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to TRS Stand 20472