/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^2), O(n^2)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^2, n^2). (0) CpxTRS (1) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxWeightedTrs (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxTypedWeightedTrs (5) CompletionProof [UPPER BOUND(ID), 3 ms] (6) CpxTypedWeightedCompleteTrs (7) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (8) CpxRNTS (9) CompleteCoflocoProof [FINISHED, 280 ms] (10) BOUNDS(1, n^2) (11) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxTRS (13) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (14) typed CpxTrs (15) OrderProof [LOWER BOUND(ID), 0 ms] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 241 ms] (18) BEST (19) proven lower bound (20) LowerBoundPropagationProof [FINISHED, 0 ms] (21) BOUNDS(n^1, INF) (22) typed CpxTrs (23) RewriteLemmaProof [LOWER BOUND(ID), 79 ms] (24) proven lower bound (25) LowerBoundPropagationProof [FINISHED, 0 ms] (26) BOUNDS(n^2, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^2, n^2). The TRS R consists of the following rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0) -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0) -> 0 x(N, s(M)) -> U21(tt, M, N) activate(X) -> X S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) [1] U12(tt, M, N) -> s(plus(activate(N), activate(M))) [1] U21(tt, M, N) -> U22(tt, activate(M), activate(N)) [1] U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) [1] plus(N, 0) -> N [1] plus(N, s(M)) -> U11(tt, M, N) [1] x(N, 0) -> 0 [1] x(N, s(M)) -> U21(tt, M, N) [1] activate(X) -> X [1] Rewrite Strategy: INNERMOST ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) [1] U12(tt, M, N) -> s(plus(activate(N), activate(M))) [1] U21(tt, M, N) -> U22(tt, activate(M), activate(N)) [1] U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) [1] plus(N, 0) -> N [1] plus(N, s(M)) -> U11(tt, M, N) [1] x(N, 0) -> 0 [1] x(N, s(M)) -> U21(tt, M, N) [1] activate(X) -> X [1] The TRS has the following type information: U11 :: tt -> s:0 -> s:0 -> s:0 tt :: tt U12 :: tt -> s:0 -> s:0 -> s:0 activate :: s:0 -> s:0 s :: s:0 -> s:0 plus :: s:0 -> s:0 -> s:0 U21 :: tt -> s:0 -> s:0 -> s:0 U22 :: tt -> s:0 -> s:0 -> s:0 x :: s:0 -> s:0 -> s:0 0 :: s:0 Rewrite Strategy: INNERMOST ---------------------------------------- (5) 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: none And the following fresh constants: none ---------------------------------------- (6) 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: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) [1] U12(tt, M, N) -> s(plus(activate(N), activate(M))) [1] U21(tt, M, N) -> U22(tt, activate(M), activate(N)) [1] U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) [1] plus(N, 0) -> N [1] plus(N, s(M)) -> U11(tt, M, N) [1] x(N, 0) -> 0 [1] x(N, s(M)) -> U21(tt, M, N) [1] activate(X) -> X [1] The TRS has the following type information: U11 :: tt -> s:0 -> s:0 -> s:0 tt :: tt U12 :: tt -> s:0 -> s:0 -> s:0 activate :: s:0 -> s:0 s :: s:0 -> s:0 plus :: s:0 -> s:0 -> s:0 U21 :: tt -> s:0 -> s:0 -> s:0 U22 :: tt -> s:0 -> s:0 -> s:0 x :: s:0 -> s:0 -> s:0 0 :: s:0 Rewrite Strategy: INNERMOST ---------------------------------------- (7) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 0 0 => 0 ---------------------------------------- (8) Obligation: Complexity RNTS consisting of the following rules: U11(z, z', z'') -{ 1 }-> U12(0, activate(M), activate(N)) :|: z' = M, z = 0, z'' = N, M >= 0, N >= 0 U12(z, z', z'') -{ 1 }-> 1 + plus(activate(N), activate(M)) :|: z' = M, z = 0, z'' = N, M >= 0, N >= 0 U21(z, z', z'') -{ 1 }-> U22(0, activate(M), activate(N)) :|: z' = M, z = 0, z'' = N, M >= 0, N >= 0 U22(z, z', z'') -{ 1 }-> plus(x(activate(N), activate(M)), activate(N)) :|: z' = M, z = 0, z'' = N, M >= 0, N >= 0 activate(z) -{ 1 }-> X :|: X >= 0, z = X plus(z, z') -{ 1 }-> N :|: z = N, z' = 0, N >= 0 plus(z, z') -{ 1 }-> U11(0, M, N) :|: z' = 1 + M, z = N, M >= 0, N >= 0 x(z, z') -{ 1 }-> U21(0, M, N) :|: z' = 1 + M, z = N, M >= 0, N >= 0 x(z, z') -{ 1 }-> 0 :|: z = N, z' = 0, N >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (9) CompleteCoflocoProof (FINISHED) Transformed the RNTS (where only complete derivations are relevant) into cost relations for CoFloCo: eq(start(V1, V, V2),0,[fun(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(start(V1, V, V2),0,[fun1(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(start(V1, V, V2),0,[fun2(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(start(V1, V, V2),0,[fun3(V1, V, V2, Out)],[V1 >= 0,V >= 0,V2 >= 0]). eq(start(V1, V, V2),0,[plus(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[x(V1, V, Out)],[V1 >= 0,V >= 0]). eq(start(V1, V, V2),0,[activate(V1, Out)],[V1 >= 0]). eq(fun(V1, V, V2, Out),1,[activate(M1, Ret1),activate(N1, Ret2),fun1(0, Ret1, Ret2, Ret)],[Out = Ret,V = M1,V1 = 0,V2 = N1,M1 >= 0,N1 >= 0]). eq(fun1(V1, V, V2, Out),1,[activate(N2, Ret10),activate(M2, Ret11),plus(Ret10, Ret11, Ret12)],[Out = 1 + Ret12,V = M2,V1 = 0,V2 = N2,M2 >= 0,N2 >= 0]). eq(fun2(V1, V, V2, Out),1,[activate(M3, Ret13),activate(N3, Ret21),fun3(0, Ret13, Ret21, Ret3)],[Out = Ret3,V = M3,V1 = 0,V2 = N3,M3 >= 0,N3 >= 0]). eq(fun3(V1, V, V2, Out),1,[activate(N4, Ret00),activate(M4, Ret01),x(Ret00, Ret01, Ret0),activate(N4, Ret14),plus(Ret0, Ret14, Ret4)],[Out = Ret4,V = M4,V1 = 0,V2 = N4,M4 >= 0,N4 >= 0]). eq(plus(V1, V, Out),1,[],[Out = N5,V1 = N5,V = 0,N5 >= 0]). eq(plus(V1, V, Out),1,[fun(0, M5, N6, Ret5)],[Out = Ret5,V = 1 + M5,V1 = N6,M5 >= 0,N6 >= 0]). eq(x(V1, V, Out),1,[],[Out = 0,V1 = N7,V = 0,N7 >= 0]). eq(x(V1, V, Out),1,[fun2(0, M6, N8, Ret6)],[Out = Ret6,V = 1 + M6,V1 = N8,M6 >= 0,N8 >= 0]). eq(activate(V1, Out),1,[],[Out = X1,X1 >= 0,V1 = X1]). input_output_vars(fun(V1,V,V2,Out),[V1,V,V2],[Out]). input_output_vars(fun1(V1,V,V2,Out),[V1,V,V2],[Out]). input_output_vars(fun2(V1,V,V2,Out),[V1,V,V2],[Out]). input_output_vars(fun3(V1,V,V2,Out),[V1,V,V2],[Out]). input_output_vars(plus(V1,V,Out),[V1,V],[Out]). input_output_vars(x(V1,V,Out),[V1,V],[Out]). input_output_vars(activate(V1,Out),[V1],[Out]). CoFloCo proof output: Preprocessing Cost Relations ===================================== #### Computed strongly connected components 0. non_recursive : [activate/2] 1. recursive : [fun/4,fun1/4,plus/3] 2. recursive [non_tail] : [fun2/4,fun3/4,x/3] 3. non_recursive : [start/3] #### Obtained direct recursion through partial evaluation 0. SCC is completely evaluated into other SCCs 1. SCC is partially evaluated into plus/3 2. SCC is partially evaluated into x/3 3. SCC is partially evaluated into start/3 Control-Flow Refinement of Cost Relations ===================================== ### Specialization of cost equations plus/3 * CE 11 is refined into CE [12] * CE 10 is refined into CE [13] ### Cost equations --> "Loop" of plus/3 * CEs [13] --> Loop 6 * CEs [12] --> Loop 7 ### Ranking functions of CR plus(V1,V,Out) * RF of phase [6]: [V] #### Partial ranking functions of CR plus(V1,V,Out) * Partial RF of phase [6]: - RF of loop [6:1]: V ### Specialization of cost equations x/3 * CE 9 is refined into CE [14] * CE 8 is refined into CE [15,16] ### Cost equations --> "Loop" of x/3 * CEs [16] --> Loop 8 * CEs [15] --> Loop 9 * CEs [14] --> Loop 10 ### Ranking functions of CR x(V1,V,Out) * RF of phase [8]: [V] * RF of phase [9]: [V] #### Partial ranking functions of CR x(V1,V,Out) * Partial RF of phase [8]: - RF of loop [8:1]: V * Partial RF of phase [9]: - RF of loop [9:1]: V ### Specialization of cost equations start/3 * CE 1 is refined into CE [17,18,19,20] * CE 2 is refined into CE [21,22,23,24] * CE 3 is refined into CE [25,26] * CE 4 is refined into CE [27,28] * CE 5 is refined into CE [29,30] * CE 6 is refined into CE [31,32,33] * CE 7 is refined into CE [34] ### Cost equations --> "Loop" of start/3 * CEs [17,20,21,24,26,28,31] --> Loop 11 * CEs [18,19,22,23,25,27,29,30,32,33,34] --> Loop 12 ### Ranking functions of CR start(V1,V,V2) #### Partial ranking functions of CR start(V1,V,V2) Computing Bounds ===================================== #### Cost of chains of plus(V1,V,Out): * Chain [[6],7]: 7*it(6)+1 Such that:it(6) =< V with precondition: [V+V1=Out,V1>=0,V>=1] * Chain [7]: 1 with precondition: [V=0,V1=Out,V1>=0] #### Cost of chains of x(V1,V,Out): * Chain [[9],10]: 9*it(9)+1 Such that:it(9) =< V with precondition: [V1=0,Out=0,V>=1] * Chain [[8],10]: 9*it(8)+7*s(3)+1 Such that:aux(1) =< V1 it(8) =< V s(3) =< it(8)*aux(1) with precondition: [V1>=1,V>=1,Out+1>=V+V1] * Chain [10]: 1 with precondition: [V=0,Out=0,V1>=0] #### Cost of chains of start(V1,V,V2): * Chain [12]: 14*s(4)+16*s(6)+7*s(9)+9 Such that:s(7) =< V1 aux(2) =< V aux(3) =< V2 s(6) =< aux(2) s(4) =< aux(3) s(9) =< s(6)*s(7) with precondition: [V1>=0] * Chain [11]: 59*s(10)+14*s(13)+14*s(14)+9 Such that:aux(6) =< V aux(7) =< V2 s(10) =< aux(6) s(14) =< aux(7) s(13) =< s(10)*aux(7) with precondition: [V1=0,V>=1] Closed-form bounds of start(V1,V,V2): ------------------------------------- * Chain [12] with precondition: [V1>=0] - Upper bound: 7*V1*nat(V)+9+nat(V)*16+nat(V2)*14 - Complexity: n^2 * Chain [11] with precondition: [V1=0,V>=1] - Upper bound: 59*V+9+14*V*nat(V2)+nat(V2)*14 - Complexity: n^2 ### Maximum cost of start(V1,V,V2): nat(V)*16+9+nat(V2)*14+max([7*V1*nat(V),nat(V)*14*nat(V2)+nat(V)*43]) Asymptotic class: n^2 * Total analysis performed in 199 ms. ---------------------------------------- (10) BOUNDS(1, n^2) ---------------------------------------- (11) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (12) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^2, INF). The TRS R consists of the following rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (13) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (14) Obligation: Innermost TRS: Rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X Types: U11 :: tt -> s:0' -> s:0' -> s:0' tt :: tt U12 :: tt -> s:0' -> s:0' -> s:0' activate :: s:0' -> s:0' s :: s:0' -> s:0' plus :: s:0' -> s:0' -> s:0' U21 :: tt -> s:0' -> s:0' -> s:0' U22 :: tt -> s:0' -> s:0' -> s:0' x :: s:0' -> s:0' -> s:0' 0' :: s:0' hole_s:0'1_0 :: s:0' hole_tt2_0 :: tt gen_s:0'3_0 :: Nat -> s:0' ---------------------------------------- (15) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: plus, x They will be analysed ascendingly in the following order: plus < x ---------------------------------------- (16) Obligation: Innermost TRS: Rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X Types: U11 :: tt -> s:0' -> s:0' -> s:0' tt :: tt U12 :: tt -> s:0' -> s:0' -> s:0' activate :: s:0' -> s:0' s :: s:0' -> s:0' plus :: s:0' -> s:0' -> s:0' U21 :: tt -> s:0' -> s:0' -> s:0' U22 :: tt -> s:0' -> s:0' -> s:0' x :: s:0' -> s:0' -> s:0' 0' :: s:0' hole_s:0'1_0 :: s:0' hole_tt2_0 :: tt gen_s:0'3_0 :: Nat -> s:0' Generator Equations: gen_s:0'3_0(0) <=> 0' gen_s:0'3_0(+(x, 1)) <=> s(gen_s:0'3_0(x)) The following defined symbols remain to be analysed: plus, x They will be analysed ascendingly in the following order: plus < x ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: plus(gen_s:0'3_0(a), gen_s:0'3_0(n5_0)) -> gen_s:0'3_0(+(n5_0, a)), rt in Omega(1 + n5_0) Induction Base: plus(gen_s:0'3_0(a), gen_s:0'3_0(0)) ->_R^Omega(1) gen_s:0'3_0(a) Induction Step: plus(gen_s:0'3_0(a), gen_s:0'3_0(+(n5_0, 1))) ->_R^Omega(1) U11(tt, gen_s:0'3_0(n5_0), gen_s:0'3_0(a)) ->_R^Omega(1) U12(tt, activate(gen_s:0'3_0(n5_0)), activate(gen_s:0'3_0(a))) ->_R^Omega(1) U12(tt, gen_s:0'3_0(n5_0), activate(gen_s:0'3_0(a))) ->_R^Omega(1) U12(tt, gen_s:0'3_0(n5_0), gen_s:0'3_0(a)) ->_R^Omega(1) s(plus(activate(gen_s:0'3_0(a)), activate(gen_s:0'3_0(n5_0)))) ->_R^Omega(1) s(plus(gen_s:0'3_0(a), activate(gen_s:0'3_0(n5_0)))) ->_R^Omega(1) s(plus(gen_s:0'3_0(a), gen_s:0'3_0(n5_0))) ->_IH s(gen_s:0'3_0(+(a, c6_0))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (18) Complex Obligation (BEST) ---------------------------------------- (19) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X Types: U11 :: tt -> s:0' -> s:0' -> s:0' tt :: tt U12 :: tt -> s:0' -> s:0' -> s:0' activate :: s:0' -> s:0' s :: s:0' -> s:0' plus :: s:0' -> s:0' -> s:0' U21 :: tt -> s:0' -> s:0' -> s:0' U22 :: tt -> s:0' -> s:0' -> s:0' x :: s:0' -> s:0' -> s:0' 0' :: s:0' hole_s:0'1_0 :: s:0' hole_tt2_0 :: tt gen_s:0'3_0 :: Nat -> s:0' Generator Equations: gen_s:0'3_0(0) <=> 0' gen_s:0'3_0(+(x, 1)) <=> s(gen_s:0'3_0(x)) The following defined symbols remain to be analysed: plus, x They will be analysed ascendingly in the following order: plus < x ---------------------------------------- (20) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (21) BOUNDS(n^1, INF) ---------------------------------------- (22) Obligation: Innermost TRS: Rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X Types: U11 :: tt -> s:0' -> s:0' -> s:0' tt :: tt U12 :: tt -> s:0' -> s:0' -> s:0' activate :: s:0' -> s:0' s :: s:0' -> s:0' plus :: s:0' -> s:0' -> s:0' U21 :: tt -> s:0' -> s:0' -> s:0' U22 :: tt -> s:0' -> s:0' -> s:0' x :: s:0' -> s:0' -> s:0' 0' :: s:0' hole_s:0'1_0 :: s:0' hole_tt2_0 :: tt gen_s:0'3_0 :: Nat -> s:0' Lemmas: plus(gen_s:0'3_0(a), gen_s:0'3_0(n5_0)) -> gen_s:0'3_0(+(n5_0, a)), rt in Omega(1 + n5_0) Generator Equations: gen_s:0'3_0(0) <=> 0' gen_s:0'3_0(+(x, 1)) <=> s(gen_s:0'3_0(x)) The following defined symbols remain to be analysed: x ---------------------------------------- (23) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: x(gen_s:0'3_0(a), gen_s:0'3_0(n742_0)) -> gen_s:0'3_0(*(n742_0, a)), rt in Omega(1 + a*n742_0 + n742_0) Induction Base: x(gen_s:0'3_0(a), gen_s:0'3_0(0)) ->_R^Omega(1) 0' Induction Step: x(gen_s:0'3_0(a), gen_s:0'3_0(+(n742_0, 1))) ->_R^Omega(1) U21(tt, gen_s:0'3_0(n742_0), gen_s:0'3_0(a)) ->_R^Omega(1) U22(tt, activate(gen_s:0'3_0(n742_0)), activate(gen_s:0'3_0(a))) ->_R^Omega(1) U22(tt, gen_s:0'3_0(n742_0), activate(gen_s:0'3_0(a))) ->_R^Omega(1) U22(tt, gen_s:0'3_0(n742_0), gen_s:0'3_0(a)) ->_R^Omega(1) plus(x(activate(gen_s:0'3_0(a)), activate(gen_s:0'3_0(n742_0))), activate(gen_s:0'3_0(a))) ->_R^Omega(1) plus(x(gen_s:0'3_0(a), activate(gen_s:0'3_0(n742_0))), activate(gen_s:0'3_0(a))) ->_R^Omega(1) plus(x(gen_s:0'3_0(a), gen_s:0'3_0(n742_0)), activate(gen_s:0'3_0(a))) ->_IH plus(gen_s:0'3_0(*(c743_0, a)), activate(gen_s:0'3_0(a))) ->_R^Omega(1) plus(gen_s:0'3_0(*(n742_0, a)), gen_s:0'3_0(a)) ->_L^Omega(1 + a) gen_s:0'3_0(+(a, *(n742_0, a))) We have rt in Omega(n^2) and sz in O(n). Thus, we have irc_R in Omega(n^2). ---------------------------------------- (24) Obligation: Proved the lower bound n^2 for the following obligation: Innermost TRS: Rules: U11(tt, M, N) -> U12(tt, activate(M), activate(N)) U12(tt, M, N) -> s(plus(activate(N), activate(M))) U21(tt, M, N) -> U22(tt, activate(M), activate(N)) U22(tt, M, N) -> plus(x(activate(N), activate(M)), activate(N)) plus(N, 0') -> N plus(N, s(M)) -> U11(tt, M, N) x(N, 0') -> 0' x(N, s(M)) -> U21(tt, M, N) activate(X) -> X Types: U11 :: tt -> s:0' -> s:0' -> s:0' tt :: tt U12 :: tt -> s:0' -> s:0' -> s:0' activate :: s:0' -> s:0' s :: s:0' -> s:0' plus :: s:0' -> s:0' -> s:0' U21 :: tt -> s:0' -> s:0' -> s:0' U22 :: tt -> s:0' -> s:0' -> s:0' x :: s:0' -> s:0' -> s:0' 0' :: s:0' hole_s:0'1_0 :: s:0' hole_tt2_0 :: tt gen_s:0'3_0 :: Nat -> s:0' Lemmas: plus(gen_s:0'3_0(a), gen_s:0'3_0(n5_0)) -> gen_s:0'3_0(+(n5_0, a)), rt in Omega(1 + n5_0) Generator Equations: gen_s:0'3_0(0) <=> 0' gen_s:0'3_0(+(x, 1)) <=> s(gen_s:0'3_0(x)) The following defined symbols remain to be analysed: x ---------------------------------------- (25) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (26) BOUNDS(n^2, INF)