6.80/2.59 YES 6.80/2.60 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.80/2.60 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.80/2.60 6.80/2.60 6.80/2.60 Termination of the given RelTRS could be proven: 6.80/2.60 6.80/2.60 (0) RelTRS 6.80/2.60 (1) RelTRS Reverse [SOUND, 0 ms] 6.80/2.60 (2) RelTRS 6.80/2.60 (3) RelTRSRRRProof [EQUIVALENT, 21 ms] 6.80/2.60 (4) RelTRS 6.80/2.60 (5) RelTRSRRRProof [EQUIVALENT, 5 ms] 6.80/2.60 (6) RelTRS 6.80/2.60 (7) RelTRSRRRProof [EQUIVALENT, 0 ms] 6.80/2.60 (8) RelTRS 6.80/2.60 (9) RIsEmptyProof [EQUIVALENT, 0 ms] 6.80/2.60 (10) YES 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (0) 6.80/2.60 Obligation: 6.80/2.60 Relative term rewrite system: 6.80/2.60 The relative TRS consists of the following R rules: 6.80/2.60 6.80/2.60 g(s(x)) -> f(x) 6.80/2.60 f(0) -> s(0) 6.80/2.60 f(s(x)) -> s(s(g(x))) 6.80/2.60 g(0) -> 0 6.80/2.60 6.80/2.60 The relative TRS consists of the following S rules: 6.80/2.60 6.80/2.60 rand(x) -> x 6.80/2.60 rand(x) -> rand(s(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (1) RelTRS Reverse (SOUND) 6.80/2.60 We have reversed the following relative TRS [REVERSE]: 6.80/2.60 The set of rules R is 6.80/2.60 g(s(x)) -> f(x) 6.80/2.60 f(0) -> s(0) 6.80/2.60 f(s(x)) -> s(s(g(x))) 6.80/2.60 g(0) -> 0 6.80/2.60 6.80/2.60 The set of rules S is 6.80/2.60 rand(x) -> x 6.80/2.60 rand(x) -> rand(s(x)) 6.80/2.60 6.80/2.60 We have obtained the following relative TRS: 6.80/2.60 The set of rules R is 6.80/2.60 s(g(x)) -> f(x) 6.80/2.60 0'(f(x)) -> 0'(s(x)) 6.80/2.60 s(f(x)) -> g(s(s(x))) 6.80/2.60 0'(g(x)) -> 0'(x) 6.80/2.60 6.80/2.60 The set of rules S is 6.80/2.60 rand(x) -> x 6.80/2.60 rand(x) -> s(rand(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (2) 6.80/2.60 Obligation: 6.80/2.60 Relative term rewrite system: 6.80/2.60 The relative TRS consists of the following R rules: 6.80/2.60 6.80/2.60 s(g(x)) -> f(x) 6.80/2.60 0'(f(x)) -> 0'(s(x)) 6.80/2.60 s(f(x)) -> g(s(s(x))) 6.80/2.60 0'(g(x)) -> 0'(x) 6.80/2.60 6.80/2.60 The relative TRS consists of the following S rules: 6.80/2.60 6.80/2.60 rand(x) -> x 6.80/2.60 rand(x) -> s(rand(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (3) RelTRSRRRProof (EQUIVALENT) 6.80/2.60 We used the following monotonic ordering for rule removal: 6.80/2.60 Polynomial interpretation [POLO]: 6.80/2.60 6.80/2.60 POL(0'(x_1)) = x_1 6.80/2.60 POL(f(x_1)) = x_1 6.80/2.60 POL(g(x_1)) = x_1 6.80/2.60 POL(rand(x_1)) = 1 + x_1 6.80/2.60 POL(s(x_1)) = x_1 6.80/2.60 With this ordering the following rules can be removed [MATRO] because they are oriented strictly: 6.80/2.60 Rules from R: 6.80/2.60 none 6.80/2.60 Rules from S: 6.80/2.60 6.80/2.60 rand(x) -> x 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (4) 6.80/2.60 Obligation: 6.80/2.60 Relative term rewrite system: 6.80/2.60 The relative TRS consists of the following R rules: 6.80/2.60 6.80/2.60 s(g(x)) -> f(x) 6.80/2.60 0'(f(x)) -> 0'(s(x)) 6.80/2.60 s(f(x)) -> g(s(s(x))) 6.80/2.60 0'(g(x)) -> 0'(x) 6.80/2.60 6.80/2.60 The relative TRS consists of the following S rules: 6.80/2.60 6.80/2.60 rand(x) -> s(rand(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (5) RelTRSRRRProof (EQUIVALENT) 6.80/2.60 We used the following monotonic ordering for rule removal: 6.80/2.60 Polynomial interpretation [POLO]: 6.80/2.60 6.80/2.60 POL(0'(x_1)) = x_1 6.80/2.60 POL(f(x_1)) = 1 + x_1 6.80/2.60 POL(g(x_1)) = 1 + x_1 6.80/2.60 POL(rand(x_1)) = x_1 6.80/2.60 POL(s(x_1)) = x_1 6.80/2.60 With this ordering the following rules can be removed [MATRO] because they are oriented strictly: 6.80/2.60 Rules from R: 6.80/2.60 6.80/2.60 0'(f(x)) -> 0'(s(x)) 6.80/2.60 0'(g(x)) -> 0'(x) 6.80/2.60 Rules from S: 6.80/2.60 none 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (6) 6.80/2.60 Obligation: 6.80/2.60 Relative term rewrite system: 6.80/2.60 The relative TRS consists of the following R rules: 6.80/2.60 6.80/2.60 s(g(x)) -> f(x) 6.80/2.60 s(f(x)) -> g(s(s(x))) 6.80/2.60 6.80/2.60 The relative TRS consists of the following S rules: 6.80/2.60 6.80/2.60 rand(x) -> s(rand(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (7) RelTRSRRRProof (EQUIVALENT) 6.80/2.60 We used the following monotonic ordering for rule removal: 6.80/2.60 Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : 6.80/2.60 6.80/2.60 <<< 6.80/2.60 POL(s(x_1)) = [[0], [0]] + [[1, 2], [0, 1]] * x_1 6.80/2.60 >>> 6.80/2.60 6.80/2.60 <<< 6.80/2.60 POL(g(x_1)) = [[0], [2]] + [[1, 0], [0, 1]] * x_1 6.80/2.60 >>> 6.80/2.60 6.80/2.60 <<< 6.80/2.60 POL(f(x_1)) = [[0], [2]] + [[1, 2], [0, 1]] * x_1 6.80/2.60 >>> 6.80/2.60 6.80/2.60 <<< 6.80/2.60 POL(rand(x_1)) = [[0], [0]] + [[1, 0], [0, 0]] * x_1 6.80/2.60 >>> 6.80/2.60 6.80/2.60 With this ordering the following rules can be removed [MATRO] because they are oriented strictly: 6.80/2.60 Rules from R: 6.80/2.60 6.80/2.60 s(g(x)) -> f(x) 6.80/2.60 s(f(x)) -> g(s(s(x))) 6.80/2.60 Rules from S: 6.80/2.60 none 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (8) 6.80/2.60 Obligation: 6.80/2.60 Relative term rewrite system: 6.80/2.60 R is empty. 6.80/2.60 The relative TRS consists of the following S rules: 6.80/2.60 6.80/2.60 rand(x) -> s(rand(x)) 6.80/2.60 6.80/2.60 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (9) RIsEmptyProof (EQUIVALENT) 6.80/2.60 The TRS R is empty. Hence, termination is trivially proven. 6.80/2.60 ---------------------------------------- 6.80/2.60 6.80/2.60 (10) 6.80/2.60 YES 6.80/2.62 EOF