4.27/1.86 WORST_CASE(Omega(n^1), O(n^1)) 4.27/1.88 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 4.27/1.88 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 4.27/1.88 4.27/1.88 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 4.27/1.88 4.27/1.88 (0) CpxTRS 4.27/1.88 (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] 4.27/1.88 (2) CpxTRS 4.27/1.88 (3) CpxTrsMatchBoundsTAProof [FINISHED, 228 ms] 4.27/1.88 (4) BOUNDS(1, n^1) 4.27/1.88 (5) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] 4.27/1.88 (6) TRS for Loop Detection 4.27/1.88 (7) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] 4.27/1.88 (8) BEST 4.27/1.88 (9) proven lower bound 4.27/1.88 (10) LowerBoundPropagationProof [FINISHED, 0 ms] 4.27/1.88 (11) BOUNDS(n^1, INF) 4.27/1.88 (12) TRS for Loop Detection 4.27/1.88 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (0) 4.27/1.88 Obligation: 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 4.27/1.88 4.27/1.88 4.27/1.88 The TRS R consists of the following rules: 4.27/1.88 4.27/1.88 comp_f_g#1(plus_x(x3), comp_f_g(x1, x2), 0) -> plus_x#1(x3, comp_f_g#1(x1, x2, 0)) 4.27/1.88 comp_f_g#1(plus_x(x3), id, 0) -> plus_x#1(x3, 0) 4.27/1.88 map#2(Nil) -> Nil 4.27/1.88 map#2(Cons(x16, x6)) -> Cons(plus_x(x16), map#2(x6)) 4.27/1.88 plus_x#1(0, x6) -> x6 4.27/1.88 plus_x#1(S(x8), x10) -> S(plus_x#1(x8, x10)) 4.27/1.88 foldr_f#3(Nil, 0) -> 0 4.27/1.88 foldr_f#3(Cons(x16, x5), x24) -> comp_f_g#1(x16, foldr#3(x5), x24) 4.27/1.88 foldr#3(Nil) -> id 4.27/1.88 foldr#3(Cons(x32, x6)) -> comp_f_g(x32, foldr#3(x6)) 4.27/1.88 main(x3) -> foldr_f#3(map#2(x3), 0) 4.27/1.88 4.27/1.88 S is empty. 4.27/1.88 Rewrite Strategy: INNERMOST 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (1) RelTrsToTrsProof (UPPER BOUND(ID)) 4.27/1.88 transformed relative TRS to TRS 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (2) 4.27/1.88 Obligation: 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 4.27/1.88 4.27/1.88 4.27/1.88 The TRS R consists of the following rules: 4.27/1.88 4.27/1.88 comp_f_g#1(plus_x(x3), comp_f_g(x1, x2), 0) -> plus_x#1(x3, comp_f_g#1(x1, x2, 0)) 4.27/1.88 comp_f_g#1(plus_x(x3), id, 0) -> plus_x#1(x3, 0) 4.27/1.88 map#2(Nil) -> Nil 4.27/1.88 map#2(Cons(x16, x6)) -> Cons(plus_x(x16), map#2(x6)) 4.27/1.88 plus_x#1(0, x6) -> x6 4.27/1.88 plus_x#1(S(x8), x10) -> S(plus_x#1(x8, x10)) 4.27/1.88 foldr_f#3(Nil, 0) -> 0 4.27/1.88 foldr_f#3(Cons(x16, x5), x24) -> comp_f_g#1(x16, foldr#3(x5), x24) 4.27/1.88 foldr#3(Nil) -> id 4.27/1.88 foldr#3(Cons(x32, x6)) -> comp_f_g(x32, foldr#3(x6)) 4.27/1.88 main(x3) -> foldr_f#3(map#2(x3), 0) 4.27/1.88 4.27/1.88 S is empty. 4.27/1.88 Rewrite Strategy: INNERMOST 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (3) CpxTrsMatchBoundsTAProof (FINISHED) 4.27/1.88 A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 2. 4.27/1.88 4.27/1.88 The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: 4.27/1.88 final states : [1, 2, 3, 4, 5, 6] 4.27/1.88 transitions: 4.27/1.88 plus_x0(0) -> 0 4.27/1.88 comp_f_g0(0, 0) -> 0 4.27/1.88 00() -> 0 4.27/1.88 id0() -> 0 4.27/1.88 Nil0() -> 0 4.27/1.88 Cons0(0, 0) -> 0 4.27/1.88 S0(0) -> 0 4.27/1.88 comp_f_g#10(0, 0, 0) -> 1 4.27/1.88 map#20(0) -> 2 4.27/1.88 plus_x#10(0, 0) -> 3 4.27/1.88 foldr_f#30(0, 0) -> 4 4.27/1.88 foldr#30(0) -> 5 4.27/1.88 main0(0) -> 6 4.27/1.88 01() -> 8 4.27/1.88 comp_f_g#11(0, 0, 8) -> 7 4.27/1.88 plus_x#11(0, 7) -> 1 4.27/1.88 01() -> 9 4.27/1.88 plus_x#11(0, 9) -> 1 4.27/1.88 Nil1() -> 2 4.27/1.88 plus_x1(0) -> 10 4.27/1.88 map#21(0) -> 11 4.27/1.88 Cons1(10, 11) -> 2 4.27/1.88 plus_x#11(0, 0) -> 12 4.27/1.88 S1(12) -> 3 4.27/1.88 01() -> 4 4.27/1.88 foldr#31(0) -> 13 4.27/1.88 comp_f_g#11(0, 13, 0) -> 4 4.27/1.88 id1() -> 5 4.27/1.88 foldr#31(0) -> 14 4.27/1.88 comp_f_g1(0, 14) -> 5 4.27/1.88 map#21(0) -> 15 4.27/1.88 01() -> 16 4.27/1.88 foldr_f#31(15, 16) -> 6 4.27/1.88 plus_x#11(0, 7) -> 7 4.27/1.88 plus_x#11(0, 9) -> 7 4.27/1.88 Nil1() -> 11 4.27/1.88 Nil1() -> 15 4.27/1.88 Cons1(10, 11) -> 11 4.27/1.88 Cons1(10, 11) -> 15 4.27/1.88 plus_x#11(0, 7) -> 12 4.27/1.88 S1(12) -> 1 4.27/1.88 plus_x#11(0, 9) -> 12 4.27/1.88 S1(12) -> 12 4.27/1.88 id1() -> 13 4.27/1.88 id1() -> 14 4.27/1.88 comp_f_g1(0, 14) -> 13 4.27/1.88 comp_f_g1(0, 14) -> 14 4.27/1.88 comp_f_g#11(0, 14, 8) -> 7 4.27/1.88 plus_x#11(0, 7) -> 4 4.27/1.88 plus_x#11(0, 9) -> 4 4.27/1.88 S1(12) -> 7 4.27/1.88 02() -> 6 4.27/1.88 foldr#32(11) -> 17 4.27/1.88 comp_f_g#12(10, 17, 16) -> 6 4.27/1.88 id2() -> 17 4.27/1.88 foldr#32(11) -> 18 4.27/1.88 comp_f_g2(10, 18) -> 17 4.27/1.88 id2() -> 18 4.27/1.88 comp_f_g2(10, 18) -> 18 4.27/1.88 02() -> 20 4.27/1.88 comp_f_g#12(10, 18, 20) -> 19 4.27/1.88 plus_x#12(0, 19) -> 6 4.27/1.88 02() -> 21 4.27/1.88 plus_x#12(0, 21) -> 6 4.27/1.88 plus_x#12(0, 19) -> 19 4.27/1.88 plus_x#12(0, 21) -> 19 4.27/1.88 plus_x#11(0, 19) -> 12 4.27/1.88 S1(12) -> 6 4.27/1.88 plus_x#11(0, 21) -> 12 4.27/1.88 S1(12) -> 19 4.27/1.88 0 -> 3 4.27/1.88 0 -> 12 4.27/1.88 7 -> 1 4.27/1.88 7 -> 12 4.27/1.88 7 -> 4 4.27/1.88 9 -> 1 4.27/1.88 9 -> 7 4.27/1.88 19 -> 6 4.27/1.88 19 -> 12 4.27/1.88 21 -> 6 4.27/1.88 21 -> 12 4.27/1.88 21 -> 19 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (4) 4.27/1.88 BOUNDS(1, n^1) 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (5) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) 4.27/1.88 Transformed a relative TRS into a decreasing-loop problem. 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (6) 4.27/1.88 Obligation: 4.27/1.88 Analyzing the following TRS for decreasing loops: 4.27/1.88 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 4.27/1.88 4.27/1.88 4.27/1.88 The TRS R consists of the following rules: 4.27/1.88 4.27/1.88 comp_f_g#1(plus_x(x3), comp_f_g(x1, x2), 0) -> plus_x#1(x3, comp_f_g#1(x1, x2, 0)) 4.27/1.88 comp_f_g#1(plus_x(x3), id, 0) -> plus_x#1(x3, 0) 4.27/1.88 map#2(Nil) -> Nil 4.27/1.88 map#2(Cons(x16, x6)) -> Cons(plus_x(x16), map#2(x6)) 4.27/1.88 plus_x#1(0, x6) -> x6 4.27/1.88 plus_x#1(S(x8), x10) -> S(plus_x#1(x8, x10)) 4.27/1.88 foldr_f#3(Nil, 0) -> 0 4.27/1.88 foldr_f#3(Cons(x16, x5), x24) -> comp_f_g#1(x16, foldr#3(x5), x24) 4.27/1.88 foldr#3(Nil) -> id 4.27/1.88 foldr#3(Cons(x32, x6)) -> comp_f_g(x32, foldr#3(x6)) 4.27/1.88 main(x3) -> foldr_f#3(map#2(x3), 0) 4.27/1.88 4.27/1.88 S is empty. 4.27/1.88 Rewrite Strategy: INNERMOST 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (7) DecreasingLoopProof (LOWER BOUND(ID)) 4.27/1.88 The following loop(s) give(s) rise to the lower bound Omega(n^1): 4.27/1.88 4.27/1.88 The rewrite sequence 4.27/1.88 4.27/1.88 map#2(Cons(x16, x6)) ->^+ Cons(plus_x(x16), map#2(x6)) 4.27/1.88 4.27/1.88 gives rise to a decreasing loop by considering the right hand sides subterm at position [1]. 4.27/1.88 4.27/1.88 The pumping substitution is [x6 / Cons(x16, x6)]. 4.27/1.88 4.27/1.88 The result substitution is [ ]. 4.27/1.88 4.27/1.88 4.27/1.88 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (8) 4.27/1.88 Complex Obligation (BEST) 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (9) 4.27/1.88 Obligation: 4.27/1.88 Proved the lower bound n^1 for the following obligation: 4.27/1.88 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 4.27/1.88 4.27/1.88 4.27/1.88 The TRS R consists of the following rules: 4.27/1.88 4.27/1.88 comp_f_g#1(plus_x(x3), comp_f_g(x1, x2), 0) -> plus_x#1(x3, comp_f_g#1(x1, x2, 0)) 4.27/1.88 comp_f_g#1(plus_x(x3), id, 0) -> plus_x#1(x3, 0) 4.27/1.88 map#2(Nil) -> Nil 4.27/1.88 map#2(Cons(x16, x6)) -> Cons(plus_x(x16), map#2(x6)) 4.27/1.88 plus_x#1(0, x6) -> x6 4.27/1.88 plus_x#1(S(x8), x10) -> S(plus_x#1(x8, x10)) 4.27/1.88 foldr_f#3(Nil, 0) -> 0 4.27/1.88 foldr_f#3(Cons(x16, x5), x24) -> comp_f_g#1(x16, foldr#3(x5), x24) 4.27/1.88 foldr#3(Nil) -> id 4.27/1.88 foldr#3(Cons(x32, x6)) -> comp_f_g(x32, foldr#3(x6)) 4.27/1.88 main(x3) -> foldr_f#3(map#2(x3), 0) 4.27/1.88 4.27/1.88 S is empty. 4.27/1.88 Rewrite Strategy: INNERMOST 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (10) LowerBoundPropagationProof (FINISHED) 4.27/1.88 Propagated lower bound. 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (11) 4.27/1.88 BOUNDS(n^1, INF) 4.27/1.88 4.27/1.88 ---------------------------------------- 4.27/1.88 4.27/1.88 (12) 4.27/1.88 Obligation: 4.27/1.88 Analyzing the following TRS for decreasing loops: 4.27/1.88 4.27/1.88 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 4.27/1.88 4.27/1.88 4.27/1.88 The TRS R consists of the following rules: 4.27/1.88 4.27/1.88 comp_f_g#1(plus_x(x3), comp_f_g(x1, x2), 0) -> plus_x#1(x3, comp_f_g#1(x1, x2, 0)) 4.27/1.88 comp_f_g#1(plus_x(x3), id, 0) -> plus_x#1(x3, 0) 4.27/1.88 map#2(Nil) -> Nil 4.27/1.88 map#2(Cons(x16, x6)) -> Cons(plus_x(x16), map#2(x6)) 4.27/1.88 plus_x#1(0, x6) -> x6 4.27/1.88 plus_x#1(S(x8), x10) -> S(plus_x#1(x8, x10)) 4.27/1.88 foldr_f#3(Nil, 0) -> 0 4.27/1.88 foldr_f#3(Cons(x16, x5), x24) -> comp_f_g#1(x16, foldr#3(x5), x24) 4.27/1.88 foldr#3(Nil) -> id 4.27/1.88 foldr#3(Cons(x32, x6)) -> comp_f_g(x32, foldr#3(x6)) 4.27/1.88 main(x3) -> foldr_f#3(map#2(x3), 0) 4.27/1.88 4.27/1.88 S is empty. 4.27/1.88 Rewrite Strategy: INNERMOST 4.47/2.05 EOF