Spaces
Explore
Communities
Statistics
Reports
Cluster
Status
Help
TRS Stand 20472 pair #381713481
details
property
value
status
complete
benchmark
thiemann04.xml
ran by
Akihisa Yamada
cpu timeout
1200 seconds
wallclock timeout
300 seconds
memory limit
137438953472 bytes
execution host
n078.star.cs.uiowa.edu
space
AProVE_07
run statistics
property
value
solver
Wanda
configuration
FirstOrder
runtime (wallclock)
5.36330699921 seconds
cpu usage
5.359769121
max memory
1.0072064E8
stage attributes
key
value
output-size
2982
starexec-result
MAYBE
output
/export/starexec/sandbox/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o edge : [o * o * o] --> o empty : [] --> o eq : [o * o] --> o false : [] --> o from : [o] --> o if1 : [o * o * o * o * o * o * o * o] --> o if2 : [o * o * o * o * o * o * o] --> o if3 : [o * o * o * o * o * o] --> o if4 : [o * o * o * o * o] --> o isEmpty : [o] --> o or : [o * o] --> o reach : [o * o * o * o] --> o rest : [o] --> o s : [o] --> o to : [o] --> o true : [] --> o union : [o * o] --> o eq(0, 0) => true eq(0, s(X)) => false eq(s(X), 0) => false eq(s(X), s(Y)) => eq(X, Y) or(true, X) => true or(false, X) => X union(empty, X) => X union(edge(X, Y, Z), U) => edge(X, Y, union(Z, U)) isEmpty(empty) => true isEmpty(edge(X, Y, Z)) => false from(edge(X, Y, Z)) => X to(edge(X, Y, Z)) => Y rest(edge(X, Y, Z)) => Z rest(empty) => empty reach(X, Y, Z, U) => if1(eq(X, Y), isEmpty(Z), eq(X, from(Z)), eq(Y, to(Z)), X, Y, Z, U) if1(true, X, Y, Z, U, V, W, Q) => true if1(false, X, Y, Z, U, V, W, Q) => if2(X, Y, Z, U, V, W, Q) if2(true, X, Y, Z, U, V, W) => false if2(false, X, Y, Z, U, V, W) => if3(X, Y, Z, U, V, W) if3(false, X, Y, Z, U, V) => reach(Y, Z, rest(U), edge(from(U), to(U), V)) if3(true, X, Y, Z, U, V) => if4(X, Y, Z, U, V) if4(true, X, Y, Z, U) => true if4(false, X, Y, Z, U) => or(reach(X, Y, rest(Z), U), reach(to(Z), Y, union(rest(Z), U), empty)) 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 : [] --> tj edge : [tj * tj * qj] --> qj empty : [] --> qj eq : [tj * tj] --> tj false : [] --> tj from : [qj] --> tj if1 : [tj * tj * tj * tj * tj * tj * qj * qj] --> tj if2 : [tj * tj * tj * tj * tj * qj * qj] --> tj if3 : [tj * tj * tj * tj * qj * qj] --> tj if4 : [tj * tj * tj * qj * qj] --> tj isEmpty : [qj] --> tj or : [tj * tj] --> tj reach : [tj * tj * qj * qj] --> tj rest : [qj] --> qj s : [tj] --> tj to : [qj] --> tj true : [] --> tj union : [qj * qj] --> qj +++ Citations +++ [FuhGieParSchSwi11] C. Fuhs, J. Giesl, M. Parting, P. Schneider-Kamp, and S. Swiderski. Proving Termination by Dependency Pairs and Inductive Theorem Proving. In volume 47(2) of Journal of Automated Reasoning. 133--160, 2011. [Gra95] B. Gramlich. Abstract Relations Between Restricted Termination and Confluence Properties of Rewrite Systems. In volume 24(1-2) of Fundamentae Informaticae. 3--23, 1995.
popout
output may be truncated. 'popout' for the full output.
job log
popout
actions
all output
return to TRS Stand 20472