Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
HRS union beta 16688 pair #381734565
details
property
value
status
complete
benchmark
Applicative_05__BTreeMember.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
Uncurried_Applicative_11
run statistics
property
value
solver
Wanda
configuration
HigherOrder
runtime (wallclock)
0.0996079444885 seconds
cpu usage
0.09351786
max memory
5529600.0
stage attributes
key
value
output-size
5497
starexec-result
YES
output
/export/starexec/sandbox/solver/bin/starexec_run_HigherOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES We consider the system theBenchmark. Alphabet: 0 : [] --> a eq : [a * a] --> c false : [] --> c fork : [b * a * b] --> b if : [c * c * c] --> c lt : [a * a] --> c member : [a * b] --> c null : [] --> b s : [a] --> a true : [] --> c Rules: lt(s(x), s(y)) => lt(x, y) lt(0, s(x)) => true lt(x, 0) => false eq(x, x) => true eq(s(x), 0) => false eq(0, s(x)) => false member(x, null) => false member(x, fork(y, z, u)) => if(lt(x, z), member(x, y), if(eq(x, z), true, member(x, u))) This AFS is converted to an AFSM simply by replacing all free variables by meta-variables (with arity 0). We use rule removal, following [Kop12, Theorem 2.23]. This gives the following requirements (possibly using Theorems 2.25 and 2.26 in [Kop12]): lt(s(X), s(Y)) >? lt(X, Y) lt(0, s(X)) >? true lt(X, 0) >? false eq(X, X) >? true eq(s(X), 0) >? false eq(0, s(X)) >? false member(X, null) >? false member(X, fork(Y, Z, U)) >? if(lt(X, Z), member(X, Y), if(eq(X, Z), true, member(X, U))) about to try horpo We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[false]] = _|_ [[true]] = _|_ We choose Lex = {} and Mul = {0, eq, fork, if, lt, member, null, s}, and the following precedence: fork > null > s > eq = lt = member > 0 > if Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: lt(s(X), s(Y)) >= lt(X, Y) lt(0, s(X)) >= _|_ lt(X, 0) >= _|_ eq(X, X) > _|_ eq(s(X), 0) >= _|_ eq(0, s(X)) >= _|_ member(X, null) >= _|_ member(X, fork(Y, Z, U)) > if(lt(X, Z), member(X, Y), if(eq(X, Z), _|_, member(X, U))) With these choices, we have: 1] lt(s(X), s(Y)) >= lt(X, Y) because [2], by (Star) 2] lt*(s(X), s(Y)) >= lt(X, Y) because lt in Mul, [3] and [6], by (Stat) 3] s(X) >= X because [4], by (Star) 4] s*(X) >= X because [5], by (Select) 5] X >= X by (Meta) 6] s(Y) > Y because [7], by definition 7] s*(Y) >= Y because [8], by (Select) 8] Y >= Y by (Meta) 9] lt(0, s(X)) >= _|_ by (Bot) 10] lt(X, 0) >= _|_ by (Bot) 11] eq(X, X) > _|_ because [12], by definition 12] eq*(X, X) >= _|_ by (Bot) 13] eq(s(X), 0) >= _|_ by (Bot) 14] eq(0, s(X)) >= _|_ by (Bot) 15] member(X, null) >= _|_ by (Bot) 16] member(X, fork(Y, Z, U)) > if(lt(X, Z), member(X, Y), if(eq(X, Z), _|_, member(X, U))) because [17], by definition 17] member*(X, fork(Y, Z, U)) >= if(lt(X, Z), member(X, Y), if(eq(X, Z), _|_, member(X, U))) because member > if, [18], [23] and [27], by (Copy) 18] member*(X, fork(Y, Z, U)) >= lt(X, Z) because member = lt, member in Mul, [19] and [20], by (Stat) 19] X >= X by (Meta) 20] fork(Y, Z, U) > Z because [21], by definition 21] fork*(Y, Z, U) >= Z because [22], by (Select)
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to HRS union beta 16688