/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given RelTRS could be proven: (0) RelTRS (1) RelTRS Reverse [EQUIVALENT, 0 ms] (2) RelTRS (3) RelTRSRRRProof [EQUIVALENT, 52 ms] (4) RelTRS (5) RelTRSRRRProof [EQUIVALENT, 2869 ms] (6) RelTRS (7) RelTRSRRRProof [EQUIVALENT, 0 ms] (8) RelTRS (9) RelTRSRRRProof [EQUIVALENT, 370 ms] (10) RelTRS (11) RelTRSRRRProof [EQUIVALENT, 269 ms] (12) RelTRS (13) RelTRSRRRProof [EQUIVALENT, 870 ms] (14) RelTRS (15) RIsEmptyProof [EQUIVALENT, 0 ms] (16) YES ---------------------------------------- (0) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: d(d(n(n(x1)))) -> d(d(x1)) d(d(o(o(x1)))) -> d(d(x1)) o(o(u(u(x1)))) -> u(u(x1)) The relative TRS consists of the following S rules: t(t(u(u(x1)))) -> t(t(c(c(d(d(x1)))))) d(d(f(f(x1)))) -> f(f(d(d(x1)))) d(d(g(g(x1)))) -> u(u(g(g(x1)))) f(f(u(u(x1)))) -> u(u(f(f(x1)))) n(n(u(u(x1)))) -> u(u(x1)) f(f(x1)) -> f(f(n(n(x1)))) t(t(x1)) -> t(t(c(c(n(n(x1)))))) c(c(n(n(x1)))) -> n(n(c(c(x1)))) c(c(o(o(x1)))) -> o(o(c(c(x1)))) c(c(o(o(x1)))) -> o(o(x1)) c(c(f(f(x1)))) -> f(f(c(c(x1)))) c(c(u(u(x1)))) -> u(u(c(c(x1)))) c(c(d(d(x1)))) -> d(d(c(c(x1)))) ---------------------------------------- (1) RelTRS Reverse (EQUIVALENT) We have reversed the following relative TRS [REVERSE]: The set of rules R is d(d(n(n(x1)))) -> d(d(x1)) d(d(o(o(x1)))) -> d(d(x1)) o(o(u(u(x1)))) -> u(u(x1)) The set of rules S is t(t(u(u(x1)))) -> t(t(c(c(d(d(x1)))))) d(d(f(f(x1)))) -> f(f(d(d(x1)))) d(d(g(g(x1)))) -> u(u(g(g(x1)))) f(f(u(u(x1)))) -> u(u(f(f(x1)))) n(n(u(u(x1)))) -> u(u(x1)) f(f(x1)) -> f(f(n(n(x1)))) t(t(x1)) -> t(t(c(c(n(n(x1)))))) c(c(n(n(x1)))) -> n(n(c(c(x1)))) c(c(o(o(x1)))) -> o(o(c(c(x1)))) c(c(o(o(x1)))) -> o(o(x1)) c(c(f(f(x1)))) -> f(f(c(c(x1)))) c(c(u(u(x1)))) -> u(u(c(c(x1)))) c(c(d(d(x1)))) -> d(d(c(c(x1)))) We have obtained the following relative TRS: The set of rules R is n(n(d(d(x1)))) -> d(d(x1)) o(o(d(d(x1)))) -> d(d(x1)) u(u(o(o(x1)))) -> u(u(x1)) The set of rules S is u(u(t(t(x1)))) -> d(d(c(c(t(t(x1)))))) f(f(d(d(x1)))) -> d(d(f(f(x1)))) g(g(d(d(x1)))) -> g(g(u(u(x1)))) u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (2) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) o(o(d(d(x1)))) -> d(d(x1)) u(u(o(o(x1)))) -> u(u(x1)) The relative TRS consists of the following S rules: u(u(t(t(x1)))) -> d(d(c(c(t(t(x1)))))) f(f(d(d(x1)))) -> d(d(f(f(x1)))) g(g(d(d(x1)))) -> g(g(u(u(x1)))) u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (3) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Polynomial interpretation [POLO]: POL(c(x_1)) = x_1 POL(d(x_1)) = 1 + x_1 POL(f(x_1)) = x_1 POL(g(x_1)) = x_1 POL(n(x_1)) = x_1 POL(o(x_1)) = 1 + x_1 POL(t(x_1)) = x_1 POL(u(x_1)) = 1 + x_1 With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: o(o(d(d(x1)))) -> d(d(x1)) u(u(o(o(x1)))) -> u(u(x1)) Rules from S: none ---------------------------------------- (4) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) The relative TRS consists of the following S rules: u(u(t(t(x1)))) -> d(d(c(c(t(t(x1)))))) f(f(d(d(x1)))) -> d(d(f(f(x1)))) g(g(d(d(x1)))) -> g(g(u(u(x1)))) u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (5) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : <<< POL(n(x_1)) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(d(x_1)) = [[0], [1]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(u(x_1)) = [[1], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(t(x_1)) = [[0], [1]] + [[2, 0], [0, 1]] * x_1 >>> <<< POL(c(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(f(x_1)) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(g(x_1)) = [[0], [0]] + [[2, 1], [0, 2]] * x_1 >>> <<< POL(o(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: none Rules from S: u(u(t(t(x1)))) -> d(d(c(c(t(t(x1)))))) ---------------------------------------- (6) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) The relative TRS consists of the following S rules: f(f(d(d(x1)))) -> d(d(f(f(x1)))) g(g(d(d(x1)))) -> g(g(u(u(x1)))) u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (7) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Polynomial interpretation [POLO]: POL(c(x_1)) = x_1 POL(d(x_1)) = 1 + x_1 POL(f(x_1)) = x_1 POL(g(x_1)) = x_1 POL(n(x_1)) = x_1 POL(o(x_1)) = x_1 POL(t(x_1)) = x_1 POL(u(x_1)) = x_1 With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: none Rules from S: g(g(d(d(x1)))) -> g(g(u(u(x1)))) ---------------------------------------- (8) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) The relative TRS consists of the following S rules: f(f(d(d(x1)))) -> d(d(f(f(x1)))) u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (9) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : <<< POL(n(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(d(x_1)) = [[2], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(f(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(u(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(t(x_1)) = [[0], [0]] + [[1, 0], [0, 2]] * x_1 >>> <<< POL(c(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(o(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: none Rules from S: f(f(d(d(x1)))) -> d(d(f(f(x1)))) ---------------------------------------- (10) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) The relative TRS consists of the following S rules: u(u(f(f(x1)))) -> f(f(u(u(x1)))) u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (11) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : <<< POL(n(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(d(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(u(x_1)) = [[0], [2]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(f(x_1)) = [[1], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(t(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(c(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(o(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 >>> With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: none Rules from S: u(u(f(f(x1)))) -> f(f(u(u(x1)))) ---------------------------------------- (12) Obligation: Relative term rewrite system: The relative TRS consists of the following R rules: n(n(d(d(x1)))) -> d(d(x1)) The relative TRS consists of the following S rules: u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (13) RelTRSRRRProof (EQUIVALENT) We used the following monotonic ordering for rule removal: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : <<< POL(n(x_1)) = [[0], [0]] + [[1, 2], [0, 2]] * x_1 >>> <<< POL(d(x_1)) = [[0], [1]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(u(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(f(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(t(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> <<< POL(c(x_1)) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(o(x_1)) = [[0], [0]] + [[2, 0], [0, 0]] * x_1 >>> With this ordering the following rules can be removed [MATRO] because they are oriented strictly: Rules from R: n(n(d(d(x1)))) -> d(d(x1)) Rules from S: none ---------------------------------------- (14) Obligation: Relative term rewrite system: R is empty. The relative TRS consists of the following S rules: u(u(n(n(x1)))) -> u(u(x1)) f(f(x1)) -> n(n(f(f(x1)))) t(t(x1)) -> n(n(c(c(t(t(x1)))))) n(n(c(c(x1)))) -> c(c(n(n(x1)))) o(o(c(c(x1)))) -> c(c(o(o(x1)))) o(o(c(c(x1)))) -> o(o(x1)) f(f(c(c(x1)))) -> c(c(f(f(x1)))) u(u(c(c(x1)))) -> c(c(u(u(x1)))) d(d(c(c(x1)))) -> c(c(d(d(x1)))) ---------------------------------------- (15) RIsEmptyProof (EQUIVALENT) The TRS R is empty. Hence, termination is trivially proven. ---------------------------------------- (16) YES