314.71/291.45 WORST_CASE(Omega(n^1), ?) 314.71/291.46 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 314.71/291.46 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 314.71/291.46 314.71/291.46 314.71/291.46 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 314.71/291.46 314.71/291.46 (0) CpxTRS 314.71/291.46 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 314.71/291.46 (2) CpxTRS 314.71/291.46 (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 314.71/291.46 (4) typed CpxTrs 314.71/291.46 (5) OrderProof [LOWER BOUND(ID), 0 ms] 314.71/291.46 (6) typed CpxTrs 314.71/291.46 (7) RewriteLemmaProof [LOWER BOUND(ID), 267 ms] 314.71/291.46 (8) BEST 314.71/291.46 (9) proven lower bound 314.71/291.46 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 314.71/291.46 (11) BOUNDS(n^1, INF) 314.71/291.46 (12) typed CpxTrs 314.71/291.46 (13) RewriteLemmaProof [LOWER BOUND(ID), 1336 ms] 314.71/291.46 (14) typed CpxTrs 314.71/291.46 (15) RewriteLemmaProof [LOWER BOUND(ID), 2075 ms] 314.71/291.46 (16) typed CpxTrs 314.71/291.46 (17) RewriteLemmaProof [LOWER BOUND(ID), 2519 ms] 314.71/291.46 (18) BOUNDS(1, INF) 314.71/291.46 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (0) 314.71/291.46 Obligation: 314.71/291.46 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 314.71/291.46 314.71/291.46 314.71/291.46 The TRS R consists of the following rules: 314.71/291.46 314.71/291.46 minus(x, 0) -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0) -> s(0) 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0) -> 0 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 S is empty. 314.71/291.46 Rewrite Strategy: FULL 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 314.71/291.46 Renamed function symbols to avoid clashes with predefined symbol. 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (2) 314.71/291.46 Obligation: 314.71/291.46 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 314.71/291.46 314.71/291.46 314.71/291.46 The TRS R consists of the following rules: 314.71/291.46 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 S is empty. 314.71/291.46 Rewrite Strategy: FULL 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 314.71/291.46 Infered types. 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (4) 314.71/291.46 Obligation: 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (5) OrderProof (LOWER BOUND(ID)) 314.71/291.46 Heuristically decided to analyse the following defined symbols: 314.71/291.46 minus, f, g 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 minus < f 314.71/291.46 minus < g 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (6) 314.71/291.46 Obligation: 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 314.71/291.46 Generator Equations: 314.71/291.46 gen_0':s2_0(0) <=> 0' 314.71/291.46 gen_0':s2_0(+(x, 1)) <=> s(gen_0':s2_0(x)) 314.71/291.46 314.71/291.46 314.71/291.46 The following defined symbols remain to be analysed: 314.71/291.46 minus, f, g 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 minus < f 314.71/291.46 minus < g 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (7) RewriteLemmaProof (LOWER BOUND(ID)) 314.71/291.46 Proved the following rewrite lemma: 314.71/291.46 minus(gen_0':s2_0(n4_0), gen_0':s2_0(n4_0)) -> gen_0':s2_0(0), rt in Omega(1 + n4_0) 314.71/291.46 314.71/291.46 Induction Base: 314.71/291.46 minus(gen_0':s2_0(0), gen_0':s2_0(0)) ->_R^Omega(1) 314.71/291.46 gen_0':s2_0(0) 314.71/291.46 314.71/291.46 Induction Step: 314.71/291.46 minus(gen_0':s2_0(+(n4_0, 1)), gen_0':s2_0(+(n4_0, 1))) ->_R^Omega(1) 314.71/291.46 minus(gen_0':s2_0(n4_0), gen_0':s2_0(n4_0)) ->_IH 314.71/291.46 gen_0':s2_0(0) 314.71/291.46 314.71/291.46 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (8) 314.71/291.46 Complex Obligation (BEST) 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (9) 314.71/291.46 Obligation: 314.71/291.46 Proved the lower bound n^1 for the following obligation: 314.71/291.46 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 314.71/291.46 Generator Equations: 314.71/291.46 gen_0':s2_0(0) <=> 0' 314.71/291.46 gen_0':s2_0(+(x, 1)) <=> s(gen_0':s2_0(x)) 314.71/291.46 314.71/291.46 314.71/291.46 The following defined symbols remain to be analysed: 314.71/291.46 minus, f, g 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 minus < f 314.71/291.46 minus < g 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (10) LowerBoundPropagationProof (FINISHED) 314.71/291.46 Propagated lower bound. 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (11) 314.71/291.46 BOUNDS(n^1, INF) 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (12) 314.71/291.46 Obligation: 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 314.71/291.46 Lemmas: 314.71/291.46 minus(gen_0':s2_0(n4_0), gen_0':s2_0(n4_0)) -> gen_0':s2_0(0), rt in Omega(1 + n4_0) 314.71/291.46 314.71/291.46 314.71/291.46 Generator Equations: 314.71/291.46 gen_0':s2_0(0) <=> 0' 314.71/291.46 gen_0':s2_0(+(x, 1)) <=> s(gen_0':s2_0(x)) 314.71/291.46 314.71/291.46 314.71/291.46 The following defined symbols remain to be analysed: 314.71/291.46 g, f 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (13) RewriteLemmaProof (LOWER BOUND(ID)) 314.71/291.46 Proved the following rewrite lemma: 314.71/291.46 g(gen_0':s2_0(+(1, n216_0))) -> *3_0, rt in Omega(n216_0) 314.71/291.46 314.71/291.46 Induction Base: 314.71/291.46 g(gen_0':s2_0(+(1, 0))) 314.71/291.46 314.71/291.46 Induction Step: 314.71/291.46 g(gen_0':s2_0(+(1, +(n216_0, 1)))) ->_R^Omega(1) 314.71/291.46 minus(s(gen_0':s2_0(+(1, n216_0))), f(g(gen_0':s2_0(+(1, n216_0))))) ->_IH 314.71/291.46 minus(s(gen_0':s2_0(+(1, n216_0))), f(*3_0)) 314.71/291.46 314.71/291.46 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (14) 314.71/291.46 Obligation: 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 314.71/291.46 Lemmas: 314.71/291.46 minus(gen_0':s2_0(n4_0), gen_0':s2_0(n4_0)) -> gen_0':s2_0(0), rt in Omega(1 + n4_0) 314.71/291.46 g(gen_0':s2_0(+(1, n216_0))) -> *3_0, rt in Omega(n216_0) 314.71/291.46 314.71/291.46 314.71/291.46 Generator Equations: 314.71/291.46 gen_0':s2_0(0) <=> 0' 314.71/291.46 gen_0':s2_0(+(x, 1)) <=> s(gen_0':s2_0(x)) 314.71/291.46 314.71/291.46 314.71/291.46 The following defined symbols remain to be analysed: 314.71/291.46 f 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (15) RewriteLemmaProof (LOWER BOUND(ID)) 314.71/291.46 Proved the following rewrite lemma: 314.71/291.46 f(gen_0':s2_0(+(1, n3745_0))) -> *3_0, rt in Omega(n3745_0) 314.71/291.46 314.71/291.46 Induction Base: 314.71/291.46 f(gen_0':s2_0(+(1, 0))) 314.71/291.46 314.71/291.46 Induction Step: 314.71/291.46 f(gen_0':s2_0(+(1, +(n3745_0, 1)))) ->_R^Omega(1) 314.71/291.46 minus(s(gen_0':s2_0(+(1, n3745_0))), g(f(gen_0':s2_0(+(1, n3745_0))))) ->_IH 314.71/291.46 minus(s(gen_0':s2_0(+(1, n3745_0))), g(*3_0)) 314.71/291.46 314.71/291.46 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (16) 314.71/291.46 Obligation: 314.71/291.46 TRS: 314.71/291.46 Rules: 314.71/291.46 minus(x, 0') -> x 314.71/291.46 minus(s(x), s(y)) -> minus(x, y) 314.71/291.46 f(0') -> s(0') 314.71/291.46 f(s(x)) -> minus(s(x), g(f(x))) 314.71/291.46 g(0') -> 0' 314.71/291.46 g(s(x)) -> minus(s(x), f(g(x))) 314.71/291.46 314.71/291.46 Types: 314.71/291.46 minus :: 0':s -> 0':s -> 0':s 314.71/291.46 0' :: 0':s 314.71/291.46 s :: 0':s -> 0':s 314.71/291.46 f :: 0':s -> 0':s 314.71/291.46 g :: 0':s -> 0':s 314.71/291.46 hole_0':s1_0 :: 0':s 314.71/291.46 gen_0':s2_0 :: Nat -> 0':s 314.71/291.46 314.71/291.46 314.71/291.46 Lemmas: 314.71/291.46 minus(gen_0':s2_0(n4_0), gen_0':s2_0(n4_0)) -> gen_0':s2_0(0), rt in Omega(1 + n4_0) 314.71/291.46 g(gen_0':s2_0(+(1, n216_0))) -> *3_0, rt in Omega(n216_0) 314.71/291.46 f(gen_0':s2_0(+(1, n3745_0))) -> *3_0, rt in Omega(n3745_0) 314.71/291.46 314.71/291.46 314.71/291.46 Generator Equations: 314.71/291.46 gen_0':s2_0(0) <=> 0' 314.71/291.46 gen_0':s2_0(+(x, 1)) <=> s(gen_0':s2_0(x)) 314.71/291.46 314.71/291.46 314.71/291.46 The following defined symbols remain to be analysed: 314.71/291.46 g 314.71/291.46 314.71/291.46 They will be analysed ascendingly in the following order: 314.71/291.46 f = g 314.71/291.46 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (17) RewriteLemmaProof (LOWER BOUND(ID)) 314.71/291.46 Proved the following rewrite lemma: 314.71/291.46 g(gen_0':s2_0(+(1, n63581_0))) -> *3_0, rt in Omega(n63581_0) 314.71/291.46 314.71/291.46 Induction Base: 314.71/291.46 g(gen_0':s2_0(+(1, 0))) 314.71/291.46 314.71/291.46 Induction Step: 314.71/291.46 g(gen_0':s2_0(+(1, +(n63581_0, 1)))) ->_R^Omega(1) 314.71/291.46 minus(s(gen_0':s2_0(+(1, n63581_0))), f(g(gen_0':s2_0(+(1, n63581_0))))) ->_IH 314.71/291.46 minus(s(gen_0':s2_0(+(1, n63581_0))), f(*3_0)) 314.71/291.46 314.71/291.46 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 314.71/291.46 ---------------------------------------- 314.71/291.46 314.71/291.46 (18) 314.71/291.46 BOUNDS(1, INF) 314.71/291.50 EOF