/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRSRRRProof [EQUIVALENT, 153 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 0 ms] (4) QTRS (5) RisEmptyProof [EQUIVALENT, 0 ms] (6) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f(x, nil) -> g(nil, x) f(x, g(y, z)) -> g(f(x, y), z) ++(x, nil) -> x ++(x, g(y, z)) -> g(++(x, y), z) null(nil) -> true null(g(x, y)) -> false mem(nil, y) -> false mem(g(x, y), z) -> or(=(y, z), mem(x, z)) mem(x, max(x)) -> not(null(x)) max(g(g(nil, x), y)) -> max'(x, y) max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: f/2(YES,YES) nil/0) g/2(YES,YES) ++/2(YES,YES) null/1(YES) true/0) false/0) mem/2(YES,YES) or/2(YES,YES) =/2(YES,YES) max/1)YES( not/1(YES) max'/2(YES,YES) u/0) Quasi precedence: f_2 > nil f_2 > [g_2, max'_2] > false f_2 > [g_2, max'_2] > or_2 ++_2 > [g_2, max'_2] > false ++_2 > [g_2, max'_2] > or_2 [mem_2, =_2] > [null_1, true] > false [mem_2, =_2] > or_2 [mem_2, =_2] > not_1 u > [g_2, max'_2] > false u > [g_2, max'_2] > or_2 Status: f_2: multiset status nil: multiset status g_2: multiset status ++_2: [1,2] null_1: multiset status true: multiset status false: multiset status mem_2: multiset status or_2: [1,2] =_2: multiset status not_1: multiset status max'_2: multiset status u: multiset status With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: f(x, nil) -> g(nil, x) f(x, g(y, z)) -> g(f(x, y), z) ++(x, nil) -> x ++(x, g(y, z)) -> g(++(x, y), z) null(nil) -> true null(g(x, y)) -> false mem(nil, y) -> false mem(g(x, y), z) -> or(=(y, z), mem(x, z)) mem(x, max(x)) -> not(null(x)) max(g(g(nil, x), y)) -> max'(x, y) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Knuth-Bendix order [KBO] with precedence:max_1 > max'_2 > u > g_2 and weight map: u=1 max_1=2 g_2=0 max'_2=0 The variable weight is 1With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: max(g(g(g(x, y), z), u)) -> max'(max(g(g(x, y), z)), u) ---------------------------------------- (4) Obligation: Q restricted rewrite system: R is empty. Q is empty. ---------------------------------------- (5) RisEmptyProof (EQUIVALENT) The TRS R is empty. Hence, termination is trivially proven. ---------------------------------------- (6) YES