/export/starexec/sandbox2/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^3)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^3). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 82 ms] (4) CpxRelTRS (5) NonCtorToCtorProof [UPPER BOUND(ID), 0 ms] (6) CpxRelTRS (7) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxWeightedTrs (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxTypedWeightedTrs (13) CompletionProof [UPPER BOUND(ID), 0 ms] (14) CpxTypedWeightedCompleteTrs (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (16) CpxRNTS (17) CompleteCoflocoProof [FINISHED, 339 ms] (18) BOUNDS(1, n^3) (19) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (20) TRS for Loop Detection (21) DecreasingLoopProof [LOWER BOUND(ID), 0 ms] (22) BEST (23) proven lower bound (24) LowerBoundPropagationProof [FINISHED, 0 ms] (25) BOUNDS(n^1, INF) (26) TRS for Loop Detection ---------------------------------------- (0) Obligation: The Derivational Complexity (full) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (5) NonCtorToCtorProof (UPPER BOUND(ID)) transformed non-ctor to ctor-system ---------------------------------------- (6) Obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(c_w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) w(x0) -> c_w(x0) Rewrite Strategy: FULL ---------------------------------------- (7) RcToIrcProof (BOTH BOUNDS(ID, ID)) Converted rc-obligation to irc-obligation. As the TRS is a non-duplicating overlay system, we have rc = irc. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(c_w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) w(x0) -> c_w(x0) Rewrite Strategy: INNERMOST ---------------------------------------- (9) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) [1] b(r(x)) -> r(b(x)) [1] b(c_w(x)) -> w(b(x)) [1] encArg(r(x_1)) -> r(encArg(x_1)) [0] encArg(cons_w(x_1)) -> w(encArg(x_1)) [0] encArg(cons_b(x_1)) -> b(encArg(x_1)) [0] encode_w(x_1) -> w(encArg(x_1)) [0] encode_r(x_1) -> r(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] w(x0) -> c_w(x0) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: w(r(x)) -> r(w(x)) [1] b(r(x)) -> r(b(x)) [1] b(c_w(x)) -> w(b(x)) [1] encArg(r(x_1)) -> r(encArg(x_1)) [0] encArg(cons_w(x_1)) -> w(encArg(x_1)) [0] encArg(cons_b(x_1)) -> b(encArg(x_1)) [0] encode_w(x_1) -> w(encArg(x_1)) [0] encode_r(x_1) -> r(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] w(x0) -> c_w(x0) [0] The TRS has the following type information: w :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b r :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b b :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b c_w :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b encArg :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b cons_w :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b cons_b :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b encode_w :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b encode_r :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b encode_b :: r:c_w:cons_w:cons_b -> r:c_w:cons_w:cons_b Rewrite Strategy: INNERMOST ---------------------------------------- (13) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: encArg(v0) -> null_encArg [0] encode_w(v0) -> null_encode_w [0] encode_r(v0) -> null_encode_r [0] encode_b(v0) -> null_encode_b [0] w(v0) -> null_w [0] b(v0) -> null_b [0] And the following fresh constants: null_encArg, null_encode_w, null_encode_r, null_encode_b, null_w, null_b ---------------------------------------- (14) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: w(r(x)) -> r(w(x)) [1] b(r(x)) -> r(b(x)) [1] b(c_w(x)) -> w(b(x)) [1] encArg(r(x_1)) -> r(encArg(x_1)) [0] encArg(cons_w(x_1)) -> w(encArg(x_1)) [0] encArg(cons_b(x_1)) -> b(encArg(x_1)) [0] encode_w(x_1) -> w(encArg(x_1)) [0] encode_r(x_1) -> r(encArg(x_1)) [0] encode_b(x_1) -> b(encArg(x_1)) [0] w(x0) -> c_w(x0) [0] encArg(v0) -> null_encArg [0] encode_w(v0) -> null_encode_w [0] encode_r(v0) -> null_encode_r [0] encode_b(v0) -> null_encode_b [0] w(v0) -> null_w [0] b(v0) -> null_b [0] The TRS has the following type information: w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b r :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b b :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b c_w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b encArg :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b cons_w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b cons_b :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b encode_w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b encode_r :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b encode_b :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b -> r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_encArg :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_encode_w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_encode_r :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_encode_b :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_w :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b null_b :: r:c_w:cons_w:cons_b:null_encArg:null_encode_w:null_encode_r:null_encode_b:null_w:null_b Rewrite Strategy: INNERMOST ---------------------------------------- (15) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: null_encArg => 0 null_encode_w => 0 null_encode_r => 0 null_encode_b => 0 null_w => 0 null_b => 0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: b(z) -{ 1 }-> w(b(x)) :|: x >= 0, z = 1 + x b(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 b(z) -{ 1 }-> 1 + b(x) :|: x >= 0, z = 1 + x encArg(z) -{ 0 }-> w(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> b(encArg(x_1)) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) :|: z = 1 + x_1, x_1 >= 0 encode_b(z) -{ 0 }-> b(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_b(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_r(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_r(z) -{ 0 }-> 1 + encArg(x_1) :|: x_1 >= 0, z = x_1 encode_w(z) -{ 0 }-> w(encArg(x_1)) :|: x_1 >= 0, z = x_1 encode_w(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 w(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 w(z) -{ 0 }-> 1 + x0 :|: z = x0, x0 >= 0 w(z) -{ 1 }-> 1 + w(x) :|: x >= 0, z = 1 + x Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (17) CompleteCoflocoProof (FINISHED) Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: eq(start(V),0,[w(V, Out)],[V >= 0]). eq(start(V),0,[b(V, Out)],[V >= 0]). eq(start(V),0,[encArg(V, Out)],[V >= 0]). eq(start(V),0,[fun(V, Out)],[V >= 0]). eq(start(V),0,[fun1(V, Out)],[V >= 0]). eq(start(V),0,[fun2(V, Out)],[V >= 0]). eq(w(V, Out),1,[w(V1, Ret1)],[Out = 1 + Ret1,V1 >= 0,V = 1 + V1]). eq(b(V, Out),1,[b(V2, Ret11)],[Out = 1 + Ret11,V2 >= 0,V = 1 + V2]). eq(b(V, Out),1,[b(V3, Ret0),w(Ret0, Ret)],[Out = Ret,V3 >= 0,V = 1 + V3]). eq(encArg(V, Out),0,[encArg(V4, Ret12)],[Out = 1 + Ret12,V = 1 + V4,V4 >= 0]). eq(encArg(V, Out),0,[encArg(V5, Ret01),w(Ret01, Ret2)],[Out = Ret2,V = 1 + V5,V5 >= 0]). eq(encArg(V, Out),0,[encArg(V6, Ret02),b(Ret02, Ret3)],[Out = Ret3,V = 1 + V6,V6 >= 0]). eq(fun(V, Out),0,[encArg(V7, Ret03),w(Ret03, Ret4)],[Out = Ret4,V7 >= 0,V = V7]). eq(fun1(V, Out),0,[encArg(V8, Ret13)],[Out = 1 + Ret13,V8 >= 0,V = V8]). eq(fun2(V, Out),0,[encArg(V9, Ret04),b(Ret04, Ret5)],[Out = Ret5,V9 >= 0,V = V9]). eq(w(V, Out),0,[],[Out = 1 + V10,V = V10,V10 >= 0]). eq(encArg(V, Out),0,[],[Out = 0,V11 >= 0,V = V11]). eq(fun(V, Out),0,[],[Out = 0,V12 >= 0,V = V12]). eq(fun1(V, Out),0,[],[Out = 0,V13 >= 0,V = V13]). eq(fun2(V, Out),0,[],[Out = 0,V14 >= 0,V = V14]). eq(w(V, Out),0,[],[Out = 0,V15 >= 0,V = V15]). eq(b(V, Out),0,[],[Out = 0,V16 >= 0,V = V16]). input_output_vars(w(V,Out),[V],[Out]). input_output_vars(b(V,Out),[V],[Out]). input_output_vars(encArg(V,Out),[V],[Out]). input_output_vars(fun(V,Out),[V],[Out]). input_output_vars(fun1(V,Out),[V],[Out]). input_output_vars(fun2(V,Out),[V],[Out]). CoFloCo proof output: Preprocessing Cost Relations ===================================== #### Computed strongly connected components 0. recursive : [w/2] 1. recursive [non_tail] : [b/2] 2. recursive [non_tail] : [encArg/2] 3. non_recursive : [fun/2] 4. non_recursive : [fun1/2] 5. non_recursive : [fun2/2] 6. non_recursive : [start/1] #### Obtained direct recursion through partial evaluation 0. SCC is partially evaluated into w/2 1. SCC is partially evaluated into b/2 2. SCC is partially evaluated into encArg/2 3. SCC is partially evaluated into fun/2 4. SCC is partially evaluated into fun1/2 5. SCC is partially evaluated into fun2/2 6. SCC is partially evaluated into start/1 Control-Flow Refinement of Cost Relations ===================================== ### Specialization of cost equations w/2 * CE 8 is refined into CE [23] * CE 9 is refined into CE [24] * CE 7 is refined into CE [25] ### Cost equations --> "Loop" of w/2 * CEs [25] --> Loop 12 * CEs [23] --> Loop 13 * CEs [24] --> Loop 14 ### Ranking functions of CR w(V,Out) * RF of phase [12]: [V] #### Partial ranking functions of CR w(V,Out) * Partial RF of phase [12]: - RF of loop [12:1]: V ### Specialization of cost equations b/2 * CE 12 is refined into CE [26] * CE 10 is refined into CE [27] * CE 11 is refined into CE [28,29,30] ### Cost equations --> "Loop" of b/2 * CEs [30] --> Loop 15 * CEs [27,29] --> Loop 16 * CEs [28] --> Loop 17 * CEs [26] --> Loop 18 ### Ranking functions of CR b(V,Out) * RF of phase [15,16,17]: [V] #### Partial ranking functions of CR b(V,Out) * Partial RF of phase [15,16,17]: - RF of loop [15:1,16:1,17:1]: V ### Specialization of cost equations encArg/2 * CE 16 is refined into CE [31] * CE 13 is refined into CE [32] * CE 14 is refined into CE [33,34,35] * CE 15 is refined into CE [36,37] ### Cost equations --> "Loop" of encArg/2 * CEs [35,37] --> Loop 19 * CEs [32,34] --> Loop 20 * CEs [33,36] --> Loop 21 * CEs [31] --> Loop 22 ### Ranking functions of CR encArg(V,Out) * RF of phase [19,20,21]: [V] #### Partial ranking functions of CR encArg(V,Out) * Partial RF of phase [19,20,21]: - RF of loop [19:1,20:1,21:1]: V ### Specialization of cost equations fun/2 * CE 17 is refined into CE [38,39,40,41,42] * CE 18 is refined into CE [43] ### Cost equations --> "Loop" of fun/2 * CEs [41,42] --> Loop 23 * CEs [39] --> Loop 24 * CEs [38,40,43] --> Loop 25 ### Ranking functions of CR fun(V,Out) #### Partial ranking functions of CR fun(V,Out) ### Specialization of cost equations fun1/2 * CE 19 is refined into CE [44,45] * CE 20 is refined into CE [46] ### Cost equations --> "Loop" of fun1/2 * CEs [45] --> Loop 26 * CEs [44] --> Loop 27 * CEs [46] --> Loop 28 ### Ranking functions of CR fun1(V,Out) #### Partial ranking functions of CR fun1(V,Out) ### Specialization of cost equations fun2/2 * CE 21 is refined into CE [47,48,49] * CE 22 is refined into CE [50] ### Cost equations --> "Loop" of fun2/2 * CEs [49] --> Loop 29 * CEs [47,48,50] --> Loop 30 ### Ranking functions of CR fun2(V,Out) #### Partial ranking functions of CR fun2(V,Out) ### Specialization of cost equations start/1 * CE 1 is refined into CE [51,52,53] * CE 2 is refined into CE [54,55] * CE 3 is refined into CE [56,57] * CE 4 is refined into CE [58,59,60] * CE 5 is refined into CE [61,62,63] * CE 6 is refined into CE [64,65] ### Cost equations --> "Loop" of start/1 * CEs [51,52,53,54,55,56,57,58,59,60,61,62,63,64,65] --> Loop 31 ### Ranking functions of CR start(V) #### Partial ranking functions of CR start(V) Computing Bounds ===================================== #### Cost of chains of w(V,Out): * Chain [[12],14]: 1*it(12)+0 Such that:it(12) =< Out with precondition: [Out>=1,V>=Out] * Chain [[12],13]: 1*it(12)+0 Such that:it(12) =< Out with precondition: [V+1=Out,V>=1] * Chain [14]: 0 with precondition: [Out=0,V>=0] * Chain [13]: 0 with precondition: [V+1=Out,V>=0] #### Cost of chains of b(V,Out): * Chain [[15,16,17],18]: 3*it(15)+1*s(6)+1*s(7)+0 Such that:aux(5) =< V it(15) =< aux(5) aux(2) =< aux(5)+1 s(6) =< it(15)*aux(5) s(7) =< it(15)*aux(2) with precondition: [V>=1,Out>=0,V>=Out] * Chain [18]: 0 with precondition: [Out=0,V>=0] #### Cost of chains of encArg(V,Out): * Chain [[19,20,21],22]: 4*s(21)+1*s(22)+1*s(23)+1*s(25)+0 Such that:aux(11) =< V aux(8) =< aux(11)+1 aux(7) =< aux(11) s(25) =< aux(11)*aux(8) s(24) =< aux(11)*aux(7) s(21) =< s(24) s(22) =< s(21)*aux(11) s(23) =< s(21)*aux(8) with precondition: [V>=1,Out>=0,V>=Out] * Chain [22]: 0 with precondition: [Out=0,V>=0] #### Cost of chains of fun(V,Out): * Chain [25]: 1*s(29)+4*s(31)+1*s(32)+1*s(33)+0 Such that:s(26) =< V s(27) =< s(26)+1 s(28) =< s(26) s(29) =< s(26)*s(27) s(30) =< s(26)*s(28) s(31) =< s(30) s(32) =< s(31)*s(26) s(33) =< s(31)*s(27) with precondition: [Out=0,V>=0] * Chain [24]: 1*s(34)+0 Such that:s(34) =< 1 with precondition: [Out=1,V>=0] * Chain [23]: 2*s(38)+8*s(40)+2*s(41)+2*s(42)+1*s(43)+1*s(52)+0 Such that:s(43) =< V+1 aux(13) =< V s(52) =< aux(13) s(36) =< aux(13)+1 s(37) =< aux(13) s(38) =< aux(13)*s(36) s(39) =< aux(13)*s(37) s(40) =< s(39) s(41) =< s(40)*aux(13) s(42) =< s(40)*s(36) with precondition: [V>=1,Out>=1,V+1>=Out] #### Cost of chains of fun1(V,Out): * Chain [28]: 0 with precondition: [Out=0,V>=0] * Chain [27]: 0 with precondition: [Out=1,V>=0] * Chain [26]: 1*s(56)+4*s(58)+1*s(59)+1*s(60)+0 Such that:s(53) =< V s(54) =< s(53)+1 s(55) =< s(53) s(56) =< s(53)*s(54) s(57) =< s(53)*s(55) s(58) =< s(57) s(59) =< s(58)*s(53) s(60) =< s(58)*s(54) with precondition: [V>=1,Out>=1,V+1>=Out] #### Cost of chains of fun2(V,Out): * Chain [30]: 1*s(64)+4*s(66)+1*s(67)+1*s(68)+0 Such that:s(61) =< V s(62) =< s(61)+1 s(63) =< s(61) s(64) =< s(61)*s(62) s(65) =< s(61)*s(63) s(66) =< s(65) s(67) =< s(66)*s(61) s(68) =< s(66)*s(62) with precondition: [Out=0,V>=0] * Chain [29]: 1*s(72)+4*s(74)+1*s(75)+1*s(76)+3*s(78)+1*s(80)+1*s(81)+0 Such that:aux(14) =< V s(78) =< aux(14) s(70) =< aux(14)+1 s(80) =< s(78)*aux(14) s(81) =< s(78)*s(70) s(71) =< aux(14) s(72) =< aux(14)*s(70) s(73) =< aux(14)*s(71) s(74) =< s(73) s(75) =< s(74)*aux(14) s(76) =< s(74)*s(70) with precondition: [V>=1,Out>=0,V>=Out] #### Cost of chains of start(V): * Chain [31]: 2*s(82)+8*s(83)+2*s(87)+2*s(88)+7*s(92)+28*s(94)+7*s(95)+7*s(96)+1*s(105)+0 Such that:s(105) =< 1 aux(15) =< V aux(16) =< V+1 s(83) =< aux(15) s(82) =< aux(16) s(86) =< aux(15)+1 s(87) =< s(83)*aux(15) s(88) =< s(83)*s(86) s(91) =< aux(15) s(92) =< aux(15)*s(86) s(93) =< aux(15)*s(91) s(94) =< s(93) s(95) =< s(94)*aux(15) s(96) =< s(94)*s(86) with precondition: [V>=0] Closed-form bounds of start(V): ------------------------------------- * Chain [31] with precondition: [V>=0] - Upper bound: 17*V+1+46*V*V+14*V*V*V+(2*V+2) - Complexity: n^3 ### Maximum cost of start(V): 17*V+1+46*V*V+14*V*V*V+(2*V+2) Asymptotic class: n^3 * Total analysis performed in 256 ms. ---------------------------------------- (18) BOUNDS(1, n^3) ---------------------------------------- (19) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (20) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (21) DecreasingLoopProof (LOWER BOUND(ID)) The following loop(s) give(s) rise to the lower bound Omega(n^1): The rewrite sequence b(r(x)) ->^+ r(b(x)) gives rise to a decreasing loop by considering the right hand sides subterm at position [0]. The pumping substitution is [x / r(x)]. The result substitution is [ ]. ---------------------------------------- (22) Complex Obligation (BEST) ---------------------------------------- (23) Obligation: Proved the lower bound n^1 for the following obligation: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) Rewrite Strategy: FULL ---------------------------------------- (24) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (25) BOUNDS(n^1, INF) ---------------------------------------- (26) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (full) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^3). The TRS R consists of the following rules: w(r(x)) -> r(w(x)) b(r(x)) -> r(b(x)) b(w(x)) -> w(b(x)) The (relative) TRS S consists of the following rules: encArg(r(x_1)) -> r(encArg(x_1)) encArg(cons_w(x_1)) -> w(encArg(x_1)) encArg(cons_b(x_1)) -> b(encArg(x_1)) encode_w(x_1) -> w(encArg(x_1)) encode_r(x_1) -> r(encArg(x_1)) encode_b(x_1) -> b(encArg(x_1)) Rewrite Strategy: FULL