Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
HRS union beta 16688 pair #381734520
details
property
value
status
complete
benchmark
AotoYamada_05__026.xml
ran by
Akihisa Yamada
cpu timeout
1200 seconds
wallclock timeout
300 seconds
memory limit
137438953472 bytes
execution host
n028.star.cs.uiowa.edu
space
Uncurried_Applicative_11
run statistics
property
value
solver
Wanda
configuration
HigherOrder
runtime (wallclock)
0.0988700389862 seconds
cpu usage
0.096247033
max memory
5685248.0
stage attributes
key
value
output-size
4897
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: comp : [c -> c * c -> c] --> c -> c cons : [a * b] --> b map : [a -> a * b] --> b nil : [] --> b twice : [c -> c] --> c -> c Rules: map(f, nil) => nil map(f, cons(x, y)) => cons(f x, map(f, y)) comp(f, g) x => f (g x) twice(f) => comp(f, f) 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]): map(F, nil) >? nil map(F, cons(X, Y)) >? cons(F X, map(F, Y)) comp(F, G) X >? F (G X) twice(F) >? comp(F, F) about to try horpo We use a recursive path ordering as defined in [Kop12, Chapter 5]. Argument functions: [[nil]] = _|_ We choose Lex = {} and Mul = {@_{o -> o}, comp, cons, map, twice}, and the following precedence: map > cons > twice > comp > @_{o -> o} Taking the argument function into account, and fixing the greater / greater equal choices, the constraints can be denoted as follows: map(F, _|_) >= _|_ map(F, cons(X, Y)) >= cons(@_{o -> o}(F, X), map(F, Y)) @_{o -> o}(comp(F, G), X) > @_{o -> o}(F, @_{o -> o}(G, X)) twice(F) >= comp(F, F) With these choices, we have: 1] map(F, _|_) >= _|_ by (Bot) 2] map(F, cons(X, Y)) >= cons(@_{o -> o}(F, X), map(F, Y)) because [3], by (Star) 3] map*(F, cons(X, Y)) >= cons(@_{o -> o}(F, X), map(F, Y)) because map > cons, [4] and [11], by (Copy) 4] map*(F, cons(X, Y)) >= @_{o -> o}(F, X) because map > @_{o -> o}, [5] and [7], by (Copy) 5] map*(F, cons(X, Y)) >= F because [6], by (Select) 6] F >= F by (Meta) 7] map*(F, cons(X, Y)) >= X because [8], by (Select) 8] cons(X, Y) >= X because [9], by (Star) 9] cons*(X, Y) >= X because [10], by (Select) 10] X >= X by (Meta) 11] map*(F, cons(X, Y)) >= map(F, Y) because map in Mul, [12] and [13], by (Stat) 12] F >= F by (Meta) 13] cons(X, Y) > Y because [14], by definition 14] cons*(X, Y) >= Y because [15], by (Select) 15] Y >= Y by (Meta) 16] @_{o -> o}(comp(F, G), X) > @_{o -> o}(F, @_{o -> o}(G, X)) because [17], by definition 17] @_{o -> o}*(comp(F, G), X) >= @_{o -> o}(F, @_{o -> o}(G, X)) because [18], by (Select) 18] comp(F, G) @_{o -> o}*(comp(F, G), X) >= @_{o -> o}(F, @_{o -> o}(G, X)) because [19] 19] comp*(F, G, @_{o -> o}*(comp(F, G), X)) >= @_{o -> o}(F, @_{o -> o}(G, X)) because comp > @_{o -> o}, [20] and [22], by (Copy) 20] comp*(F, G, @_{o -> o}*(comp(F, G), X)) >= F because [21], by (Select) 21] F >= F by (Meta) 22] comp*(F, G, @_{o -> o}*(comp(F, G), X)) >= @_{o -> o}(G, X) because comp > @_{o -> o}, [23] and [25], by (Copy) 23] comp*(F, G, @_{o -> o}*(comp(F, G), X)) >= G because [24], by (Select) 24] G >= G by (Meta) 25] comp*(F, G, @_{o -> o}*(comp(F, G), X)) >= X because [26], by (Select) 26] @_{o -> o}*(comp(F, G), X) >= X because [27], by (Select) 27] X >= X by (Meta) 28] twice(F) >= comp(F, F) because [29], by (Star) 29] twice*(F) >= comp(F, F) because twice > comp, [30] and [30], by (Copy) 30] twice*(F) >= F because [31], by (Select) 31] F >= F by (Meta) We can thus remove the following rules: comp(F, G) X => F (G 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]): map(F, nil) >? nil map(F, cons(X, Y)) >? cons(F X, map(F, Y)) twice(F) >? comp(F, F)
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to HRS union beta 16688