3.35/1.59 YES 3.35/1.60 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.35/1.60 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.35/1.60 3.35/1.60 3.35/1.60 Termination of the given CSR could be proven: 3.35/1.60 3.35/1.60 (0) CSR 3.35/1.60 (1) CSRRRRProof [EQUIVALENT, 56 ms] 3.35/1.60 (2) CSR 3.35/1.60 (3) CSRRRRProof [EQUIVALENT, 0 ms] 3.35/1.60 (4) CSR 3.35/1.60 (5) CSRRRRProof [EQUIVALENT, 0 ms] 3.35/1.60 (6) CSR 3.35/1.60 (7) CSRRRRProof [EQUIVALENT, 0 ms] 3.35/1.60 (8) CSR 3.35/1.60 (9) CSRRRRProof [EQUIVALENT, 0 ms] 3.35/1.60 (10) CSR 3.35/1.60 (11) RisEmptyProof [EQUIVALENT, 0 ms] 3.35/1.60 (12) YES 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (0) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(f_1(f_0(g_1(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_1(x)))) -> f_0(x) 3.35/1.60 g_0(f_1(f_0(g_1(x)))) -> g_1(x) 3.35/1.60 *top*_0(f_0(f_1(f_0(g_0(x))))) -> *top*_0(f_0(x)) 3.35/1.60 f_0(f_0(f_1(f_0(g_0(x))))) -> f_1(f_0(x)) 3.35/1.60 g_0(f_0(f_1(f_0(g_0(x))))) -> g_0(f_0(x)) 3.35/1.60 f_1(f_0(g_0(x))) -> x 3.35/1.60 *top*_0(f_1(f_0(g_0(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_0(x)))) -> f_1(x) 3.35/1.60 g_0(f_1(f_0(g_0(x)))) -> g_0(x) 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (1) CSRRRRProof (EQUIVALENT) 3.35/1.60 The following CSR is given: Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(f_1(f_0(g_1(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_1(x)))) -> f_0(x) 3.35/1.60 g_0(f_1(f_0(g_1(x)))) -> g_1(x) 3.35/1.60 *top*_0(f_0(f_1(f_0(g_0(x))))) -> *top*_0(f_0(x)) 3.35/1.60 f_0(f_0(f_1(f_0(g_0(x))))) -> f_1(f_0(x)) 3.35/1.60 g_0(f_0(f_1(f_0(g_0(x))))) -> g_0(f_0(x)) 3.35/1.60 f_1(f_0(g_0(x))) -> x 3.35/1.60 *top*_0(f_1(f_0(g_0(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_0(x)))) -> f_1(x) 3.35/1.60 g_0(f_1(f_0(g_0(x)))) -> g_0(x) 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 Used ordering: 3.35/1.60 Polynomial interpretation [POLO]: 3.35/1.60 3.35/1.60 POL(*top*_0(x_1)) = x_1 3.35/1.60 POL(b_0) = 0 3.35/1.60 POL(f_0(x_1)) = x_1 3.35/1.60 POL(f_1(x_1)) = x_1 3.35/1.60 POL(g_0(x_1)) = 1 + x_1 3.35/1.60 POL(g_1(x_1)) = x_1 3.35/1.60 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.35/1.60 3.35/1.60 g_0(f_1(f_0(g_1(x)))) -> g_1(x) 3.35/1.60 *top*_0(f_0(f_1(f_0(g_0(x))))) -> *top*_0(f_0(x)) 3.35/1.60 f_0(f_0(f_1(f_0(g_0(x))))) -> f_1(f_0(x)) 3.35/1.60 g_0(f_0(f_1(f_0(g_0(x))))) -> g_0(f_0(x)) 3.35/1.60 f_1(f_0(g_0(x))) -> x 3.35/1.60 *top*_0(f_1(f_0(g_0(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_0(x)))) -> f_1(x) 3.35/1.60 g_0(f_1(f_0(g_0(x)))) -> g_0(x) 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (2) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(f_1(f_0(g_1(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_1(x)))) -> f_0(x) 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (3) CSRRRRProof (EQUIVALENT) 3.35/1.60 The following CSR is given: Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(f_1(f_0(g_1(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_1(x)))) -> f_0(x) 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 Used ordering: 3.35/1.60 Polynomial interpretation [POLO]: 3.35/1.60 3.35/1.60 POL(*top*_0(x_1)) = x_1 3.35/1.60 POL(b_0) = 0 3.35/1.60 POL(f_0(x_1)) = x_1 3.35/1.60 POL(f_1(x_1)) = x_1 3.35/1.60 POL(g_0(x_1)) = x_1 3.35/1.60 POL(g_1(x_1)) = 1 + x_1 3.35/1.60 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.35/1.60 3.35/1.60 *top*_0(f_1(f_0(g_1(x)))) -> *top*_0(x) 3.35/1.60 f_0(f_1(f_0(g_1(x)))) -> f_0(x) 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (4) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (5) CSRRRRProof (EQUIVALENT) 3.35/1.60 The following CSR is given: Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 *top*_0: {1} 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 Used ordering: 3.35/1.60 Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(*top*_0(x_1)) = [[0], [1]] + [[1, 1], [0, 0]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(g_1(x_1)) = [[0], [1]] + [[1, 0], [1, 1]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(b_0) = [[0], [1]] 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(f_0(x_1)) = [[0], [0]] + [[1, 0], [1, 0]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(f_1(x_1)) = [[0], [0]] + [[1, 1], [1, 1]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(g_0(x_1)) = [[0], [1]] + [[1, 0], [0, 0]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.35/1.60 3.35/1.60 *top*_0(g_1(b_0)) -> *top*_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (6) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (7) CSRRRRProof (EQUIVALENT) 3.35/1.60 The following CSR is given: Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 g_0: {1} 3.35/1.60 b_0: empty set 3.35/1.60 Used ordering: 3.35/1.60 Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(f_0(x_1)) = [[0], [0]] + [[1, 0], [1, 0]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(g_1(x_1)) = [[0], [1]] + [[1, 0], [1, 1]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(b_0) = [[0], [1]] 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(f_1(x_1)) = [[0], [0]] + [[1, 1], [1, 1]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 <<< 3.35/1.60 POL(g_0(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 3.35/1.60 >>> 3.35/1.60 3.35/1.60 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.35/1.60 3.35/1.60 g_0(g_1(b_0)) -> g_0(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (8) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 b_0: empty set 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (9) CSRRRRProof (EQUIVALENT) 3.35/1.60 The following CSR is given: Context-sensitive rewrite system: 3.35/1.60 The TRS R consists of the following rules: 3.35/1.60 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 The replacement map contains the following entries: 3.35/1.60 3.35/1.60 f_1: empty set 3.35/1.60 f_0: {1} 3.35/1.60 g_1: empty set 3.35/1.60 b_0: empty set 3.35/1.60 Used ordering: 3.35/1.60 Polynomial interpretation [POLO]: 3.35/1.60 3.35/1.60 POL(b_0) = 1 3.35/1.60 POL(f_0(x_1)) = 2 + x_1 3.35/1.60 POL(f_1(x_1)) = 0 3.35/1.60 POL(g_1(x_1)) = 2 + 2*x_1 3.35/1.60 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.35/1.60 3.35/1.60 f_0(g_1(b_0)) -> f_1(f_0(g_1(b_0))) 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (10) 3.35/1.60 Obligation: 3.35/1.60 Context-sensitive rewrite system: 3.35/1.60 R is empty. 3.35/1.60 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (11) RisEmptyProof (EQUIVALENT) 3.35/1.60 The CSR R is empty. Hence, termination is trivially proven. 3.35/1.60 ---------------------------------------- 3.35/1.60 3.35/1.60 (12) 3.35/1.60 YES 3.63/1.63 EOF