3.20/1.59 WORST_CASE(Omega(n^1), O(n^1)) 3.20/1.60 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.20/1.60 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.20/1.60 3.20/1.60 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 3.20/1.60 3.20/1.60 (0) CpxTRS 3.20/1.60 (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] 3.20/1.60 (2) CpxTRS 3.20/1.60 (3) CpxTrsMatchBoundsProof [FINISHED, 0 ms] 3.20/1.60 (4) BOUNDS(1, n^1) 3.20/1.60 (5) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 3.20/1.60 (6) TRS for Loop Detection 3.20/1.60 (7) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 3.20/1.60 (8) BEST 3.20/1.60 (9) proven lower bound 3.20/1.60 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 3.20/1.60 (11) BOUNDS(n^1, INF) 3.20/1.60 (12) TRS for Loop Detection 3.20/1.60 3.20/1.60 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (0) 3.20/1.60 Obligation: 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 3.20/1.60 3.20/1.60 3.20/1.60 The TRS R consists of the following rules: 3.20/1.60 3.20/1.60 active(c) -> mark(f(g(c))) 3.20/1.60 active(f(g(X))) -> mark(g(X)) 3.20/1.60 proper(c) -> ok(c) 3.20/1.60 proper(f(X)) -> f(proper(X)) 3.20/1.60 proper(g(X)) -> g(proper(X)) 3.20/1.60 f(ok(X)) -> ok(f(X)) 3.20/1.60 g(ok(X)) -> ok(g(X)) 3.20/1.60 top(mark(X)) -> top(proper(X)) 3.20/1.60 top(ok(X)) -> top(active(X)) 3.20/1.60 3.20/1.60 S is empty. 3.20/1.60 Rewrite Strategy: FULL 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (1) RelTrsToTrsProof (UPPER BOUND(ID)) 3.20/1.60 transformed relative TRS to TRS 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (2) 3.20/1.60 Obligation: 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 3.20/1.60 3.20/1.60 3.20/1.60 The TRS R consists of the following rules: 3.20/1.60 3.20/1.60 active(c) -> mark(f(g(c))) 3.20/1.60 active(f(g(X))) -> mark(g(X)) 3.20/1.60 proper(c) -> ok(c) 3.20/1.60 proper(f(X)) -> f(proper(X)) 3.20/1.60 proper(g(X)) -> g(proper(X)) 3.20/1.60 f(ok(X)) -> ok(f(X)) 3.20/1.60 g(ok(X)) -> ok(g(X)) 3.20/1.60 top(mark(X)) -> top(proper(X)) 3.20/1.60 top(ok(X)) -> top(active(X)) 3.20/1.60 3.20/1.60 S is empty. 3.20/1.60 Rewrite Strategy: FULL 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (3) CpxTrsMatchBoundsProof (FINISHED) 3.20/1.60 A linear upper bound on the runtime complexity of the TRS R could be shown with a Match Bound [MATCHBOUNDS1,MATCHBOUNDS2] of 6. 3.20/1.60 The certificate found is represented by the following graph. 3.20/1.60 3.20/1.60 "[21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58] 3.20/1.60 {(21,22,[active_1|0, proper_1|0, f_1|0, g_1|0, top_1|0]), (21,23,[mark_1|1]), (21,26,[ok_1|1]), (21,27,[ok_1|1]), (21,28,[ok_1|1]), (21,29,[top_1|1]), (21,30,[top_1|1]), (21,31,[top_1|2]), (21,32,[top_1|2]), (21,37,[top_1|3]), (21,45,[top_1|3]), (21,49,[top_1|4]), (21,50,[top_1|4]), (21,53,[top_1|5]), (21,55,[top_1|5]), (21,58,[top_1|6]), (22,22,[c|0, mark_1|0, ok_1|0]), (23,24,[f_1|1]), (24,25,[g_1|1]), (25,22,[c|1]), (26,22,[c|1]), (27,22,[f_1|1]), (27,27,[ok_1|1]), (28,22,[g_1|1]), (28,28,[ok_1|1]), (29,22,[proper_1|1]), (29,26,[ok_1|1]), (30,22,[active_1|1]), (30,23,[mark_1|1]), (31,26,[active_1|2]), (31,33,[mark_1|2]), (32,23,[proper_1|2]), (32,36,[f_1|2]), (32,43,[ok_1|3]), (33,34,[f_1|2]), (34,35,[g_1|2]), (35,22,[c|2]), (36,24,[proper_1|2]), (36,38,[g_1|2]), (36,41,[ok_1|3]), (37,33,[proper_1|3]), (37,39,[f_1|3]), (37,47,[ok_1|4]), (38,25,[proper_1|2]), (38,40,[ok_1|2]), (39,34,[proper_1|3]), (39,42,[g_1|3]), (39,46,[ok_1|4]), (40,22,[c|2]), (41,40,[g_1|3]), (42,35,[proper_1|3]), (42,44,[ok_1|3]), (43,41,[f_1|3]), (44,22,[c|3]), (45,43,[active_1|3]), (45,48,[mark_1|4]), (46,44,[g_1|4]), (47,46,[f_1|4]), (48,40,[g_1|4]), (49,47,[active_1|4]), (49,51,[mark_1|5]), (50,48,[proper_1|4]), (50,52,[g_1|5]), (50,46,[ok_1|4]), (51,44,[g_1|5]), (52,40,[proper_1|5]), (52,44,[ok_1|3]), (53,51,[proper_1|5]), (53,54,[g_1|6]), (53,57,[ok_1|5]), (54,44,[proper_1|6]), (54,56,[ok_1|4]), (55,46,[active_1|5]), (56,22,[c|4]), (57,56,[g_1|5]), (58,57,[active_1|6])}" 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (4) 3.20/1.60 BOUNDS(1, n^1) 3.20/1.60 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (5) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 3.20/1.60 Transformed a relative TRS into a decreasing-loop problem. 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (6) 3.20/1.60 Obligation: 3.20/1.60 Analyzing the following TRS for decreasing loops: 3.20/1.60 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 3.20/1.60 3.20/1.60 3.20/1.60 The TRS R consists of the following rules: 3.20/1.60 3.20/1.60 active(c) -> mark(f(g(c))) 3.20/1.60 active(f(g(X))) -> mark(g(X)) 3.20/1.60 proper(c) -> ok(c) 3.20/1.60 proper(f(X)) -> f(proper(X)) 3.20/1.60 proper(g(X)) -> g(proper(X)) 3.20/1.60 f(ok(X)) -> ok(f(X)) 3.20/1.60 g(ok(X)) -> ok(g(X)) 3.20/1.60 top(mark(X)) -> top(proper(X)) 3.20/1.60 top(ok(X)) -> top(active(X)) 3.20/1.60 3.20/1.60 S is empty. 3.20/1.60 Rewrite Strategy: FULL 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (7) DecreasingLoopProof (LOWER BOUND(ID)) 3.20/1.60 The following loop(s) give(s) rise to the lower bound Omega(n^1): 3.20/1.60 3.20/1.60 The rewrite sequence 3.20/1.60 3.20/1.60 g(ok(X)) ->^+ ok(g(X)) 3.20/1.60 3.20/1.60 gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. 3.20/1.60 3.20/1.60 The pumping substitution is [X / ok(X)]. 3.20/1.60 3.20/1.60 The result substitution is [ ]. 3.20/1.60 3.20/1.60 3.20/1.60 3.20/1.60 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (8) 3.20/1.60 Complex Obligation (BEST) 3.20/1.60 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (9) 3.20/1.60 Obligation: 3.20/1.60 Proved the lower bound n^1 for the following obligation: 3.20/1.60 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 3.20/1.60 3.20/1.60 3.20/1.60 The TRS R consists of the following rules: 3.20/1.60 3.20/1.60 active(c) -> mark(f(g(c))) 3.20/1.60 active(f(g(X))) -> mark(g(X)) 3.20/1.60 proper(c) -> ok(c) 3.20/1.60 proper(f(X)) -> f(proper(X)) 3.20/1.60 proper(g(X)) -> g(proper(X)) 3.20/1.60 f(ok(X)) -> ok(f(X)) 3.20/1.60 g(ok(X)) -> ok(g(X)) 3.20/1.60 top(mark(X)) -> top(proper(X)) 3.20/1.60 top(ok(X)) -> top(active(X)) 3.20/1.60 3.20/1.60 S is empty. 3.20/1.60 Rewrite Strategy: FULL 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (10) LowerBoundPropagationProof (FINISHED) 3.20/1.60 Propagated lower bound. 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (11) 3.20/1.60 BOUNDS(n^1, INF) 3.20/1.60 3.20/1.60 ---------------------------------------- 3.20/1.60 3.20/1.60 (12) 3.20/1.60 Obligation: 3.20/1.60 Analyzing the following TRS for decreasing loops: 3.20/1.60 3.20/1.60 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 3.20/1.60 3.20/1.60 3.20/1.60 The TRS R consists of the following rules: 3.20/1.60 3.20/1.60 active(c) -> mark(f(g(c))) 3.20/1.60 active(f(g(X))) -> mark(g(X)) 3.20/1.60 proper(c) -> ok(c) 3.20/1.60 proper(f(X)) -> f(proper(X)) 3.20/1.60 proper(g(X)) -> g(proper(X)) 3.20/1.60 f(ok(X)) -> ok(f(X)) 3.20/1.60 g(ok(X)) -> ok(g(X)) 3.20/1.60 top(mark(X)) -> top(proper(X)) 3.20/1.60 top(ok(X)) -> top(active(X)) 3.20/1.60 3.20/1.60 S is empty. 3.20/1.60 Rewrite Strategy: FULL 3.20/1.63 EOF