WORST_CASE(?,?) proof of input_65f60NoxdN.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, EXP). (0) CpxTRS (1) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (2) CdtProblem (3) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CdtProblem (5) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [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) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxTypedWeightedCompleteTrs (17) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (18) CpxRNTS (19) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxRNTS (21) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxRNTS (23) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 160 ms] (26) CpxRNTS (27) IntTrsBoundProof [UPPER BOUND(ID), 23 ms] (28) CpxRNTS (29) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 108 ms] (32) CpxRNTS (33) IntTrsBoundProof [UPPER BOUND(ID), 14 ms] (34) CpxRNTS (35) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 200 ms] (38) CpxRNTS (39) IntTrsBoundProof [UPPER BOUND(ID), 22 ms] (40) CpxRNTS (41) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 87 ms] (44) CpxRNTS (45) IntTrsBoundProof [UPPER BOUND(ID), 63 ms] (46) CpxRNTS (47) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 119 ms] (50) CpxRNTS (51) IntTrsBoundProof [UPPER BOUND(ID), 2 ms] (52) CpxRNTS (53) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 58 ms] (56) CpxRNTS (57) IntTrsBoundProof [UPPER BOUND(ID), 53 ms] (58) CpxRNTS (59) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 495 ms] (62) CpxRNTS (63) IntTrsBoundProof [UPPER BOUND(ID), 367 ms] (64) CpxRNTS (65) FinalProof [FINISHED, 0 ms] (66) BOUNDS(1, EXP) ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, EXP). The TRS R consists of the following rules: f(X) -> cons(X, n__f(g(X))) g(0) -> s(0) g(s(X)) -> s(s(g(X))) sel(0, cons(X, Y)) -> X sel(s(X), cons(Y, Z)) -> sel(X, activate(Z)) f(X) -> n__f(X) activate(n__f(X)) -> f(X) activate(X) -> X S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: f(z0) -> cons(z0, n__f(g(z0))) f(z0) -> n__f(z0) g(0) -> s(0) g(s(z0)) -> s(s(g(z0))) sel(0, cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) activate(n__f(z0)) -> f(z0) activate(z0) -> z0 Tuples: F(z0) -> c(G(z0)) F(z0) -> c1 G(0) -> c2 G(s(z0)) -> c3(G(z0)) SEL(0, cons(z0, z1)) -> c4 SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) ACTIVATE(z0) -> c7 S tuples: F(z0) -> c(G(z0)) F(z0) -> c1 G(0) -> c2 G(s(z0)) -> c3(G(z0)) SEL(0, cons(z0, z1)) -> c4 SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) ACTIVATE(z0) -> c7 K tuples:none Defined Rule Symbols: f_1, g_1, sel_2, activate_1 Defined Pair Symbols: F_1, G_1, SEL_2, ACTIVATE_1 Compound Symbols: c_1, c1, c2, c3_1, c4, c5_2, c6_1, c7 ---------------------------------------- (3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: ACTIVATE(z0) -> c7 SEL(0, cons(z0, z1)) -> c4 G(0) -> c2 F(z0) -> c1 ---------------------------------------- (4) Obligation: Complexity Dependency Tuples Problem Rules: f(z0) -> cons(z0, n__f(g(z0))) f(z0) -> n__f(z0) g(0) -> s(0) g(s(z0)) -> s(s(g(z0))) sel(0, cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) activate(n__f(z0)) -> f(z0) activate(z0) -> z0 Tuples: F(z0) -> c(G(z0)) G(s(z0)) -> c3(G(z0)) SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) S tuples: F(z0) -> c(G(z0)) G(s(z0)) -> c3(G(z0)) SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) K tuples:none Defined Rule Symbols: f_1, g_1, sel_2, activate_1 Defined Pair Symbols: F_1, G_1, SEL_2, ACTIVATE_1 Compound Symbols: c_1, c3_1, c5_2, c6_1 ---------------------------------------- (5) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: sel(0, cons(z0, z1)) -> z0 sel(s(z0), cons(z1, z2)) -> sel(z0, activate(z2)) ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: activate(n__f(z0)) -> f(z0) activate(z0) -> z0 f(z0) -> cons(z0, n__f(g(z0))) f(z0) -> n__f(z0) g(0) -> s(0) g(s(z0)) -> s(s(g(z0))) Tuples: F(z0) -> c(G(z0)) G(s(z0)) -> c3(G(z0)) SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) S tuples: F(z0) -> c(G(z0)) G(s(z0)) -> c3(G(z0)) SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) K tuples:none Defined Rule Symbols: activate_1, f_1, g_1 Defined Pair Symbols: F_1, G_1, SEL_2, ACTIVATE_1 Compound Symbols: c_1, c3_1, c5_2, c6_1 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, EXP). The TRS R consists of the following rules: F(z0) -> c(G(z0)) G(s(z0)) -> c3(G(z0)) SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) ACTIVATE(n__f(z0)) -> c6(F(z0)) The (relative) TRS S consists of the following rules: activate(n__f(z0)) -> f(z0) activate(z0) -> z0 f(z0) -> cons(z0, n__f(g(z0))) f(z0) -> n__f(z0) g(0) -> s(0) g(s(z0)) -> s(s(g(z0))) 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, EXP). The TRS R consists of the following rules: F(z0) -> c(G(z0)) [1] G(s(z0)) -> c3(G(z0)) [1] SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) [1] ACTIVATE(n__f(z0)) -> c6(F(z0)) [1] activate(n__f(z0)) -> f(z0) [0] activate(z0) -> z0 [0] f(z0) -> cons(z0, n__f(g(z0))) [0] f(z0) -> n__f(z0) [0] g(0) -> s(0) [0] g(s(z0)) -> s(s(g(z0))) [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: F(z0) -> c(G(z0)) [1] G(s(z0)) -> c3(G(z0)) [1] SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) [1] ACTIVATE(n__f(z0)) -> c6(F(z0)) [1] activate(n__f(z0)) -> f(z0) [0] activate(z0) -> z0 [0] f(z0) -> cons(z0, n__f(g(z0))) [0] f(z0) -> n__f(z0) [0] g(0) -> s(0) [0] g(s(z0)) -> s(s(g(z0))) [0] The TRS has the following type information: F :: s:0 -> c c :: c3 -> c G :: s:0 -> c3 s :: s:0 -> s:0 c3 :: c3 -> c3 SEL :: s:0 -> cons:n__f -> c5 cons :: s:0 -> cons:n__f -> cons:n__f c5 :: c5 -> c6 -> c5 activate :: cons:n__f -> cons:n__f ACTIVATE :: cons:n__f -> c6 n__f :: s:0 -> cons:n__f c6 :: c -> c6 f :: s:0 -> cons:n__f g :: s:0 -> s:0 0 :: s:0 Rewrite Strategy: INNERMOST ---------------------------------------- (13) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: F_1 G_1 SEL_2 ACTIVATE_1 (c) The following functions are completely defined: activate_1 f_1 g_1 Due to the following rules being added: activate(v0) -> const3 [0] f(v0) -> const3 [0] g(v0) -> 0 [0] And the following fresh constants: const3, const, const1, const2, const4 ---------------------------------------- (14) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: F(z0) -> c(G(z0)) [1] G(s(z0)) -> c3(G(z0)) [1] SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, activate(z2)), ACTIVATE(z2)) [1] ACTIVATE(n__f(z0)) -> c6(F(z0)) [1] activate(n__f(z0)) -> f(z0) [0] activate(z0) -> z0 [0] f(z0) -> cons(z0, n__f(g(z0))) [0] f(z0) -> n__f(z0) [0] g(0) -> s(0) [0] g(s(z0)) -> s(s(g(z0))) [0] activate(v0) -> const3 [0] f(v0) -> const3 [0] g(v0) -> 0 [0] The TRS has the following type information: F :: s:0 -> c c :: c3 -> c G :: s:0 -> c3 s :: s:0 -> s:0 c3 :: c3 -> c3 SEL :: s:0 -> cons:n__f:const3 -> c5 cons :: s:0 -> cons:n__f:const3 -> cons:n__f:const3 c5 :: c5 -> c6 -> c5 activate :: cons:n__f:const3 -> cons:n__f:const3 ACTIVATE :: cons:n__f:const3 -> c6 n__f :: s:0 -> cons:n__f:const3 c6 :: c -> c6 f :: s:0 -> cons:n__f:const3 g :: s:0 -> s:0 0 :: s:0 const3 :: cons:n__f:const3 const :: c const1 :: c3 const2 :: c5 const4 :: c6 Rewrite Strategy: INNERMOST ---------------------------------------- (15) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (16) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: F(z0) -> c(G(z0)) [1] G(s(z0)) -> c3(G(z0)) [1] SEL(s(z0), cons(z1, n__f(z0'))) -> c5(SEL(z0, f(z0')), ACTIVATE(n__f(z0'))) [1] SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, z2), ACTIVATE(z2)) [1] SEL(s(z0), cons(z1, z2)) -> c5(SEL(z0, const3), ACTIVATE(z2)) [1] ACTIVATE(n__f(z0)) -> c6(F(z0)) [1] activate(n__f(z0)) -> f(z0) [0] activate(z0) -> z0 [0] f(z0) -> cons(z0, n__f(g(z0))) [0] f(z0) -> n__f(z0) [0] g(0) -> s(0) [0] g(s(z0)) -> s(s(g(z0))) [0] activate(v0) -> const3 [0] f(v0) -> const3 [0] g(v0) -> 0 [0] The TRS has the following type information: F :: s:0 -> c c :: c3 -> c G :: s:0 -> c3 s :: s:0 -> s:0 c3 :: c3 -> c3 SEL :: s:0 -> cons:n__f:const3 -> c5 cons :: s:0 -> cons:n__f:const3 -> cons:n__f:const3 c5 :: c5 -> c6 -> c5 activate :: cons:n__f:const3 -> cons:n__f:const3 ACTIVATE :: cons:n__f:const3 -> c6 n__f :: s:0 -> cons:n__f:const3 c6 :: c -> c6 f :: s:0 -> cons:n__f:const3 g :: s:0 -> s:0 0 :: s:0 const3 :: cons:n__f:const3 const :: c const1 :: c3 const2 :: c5 const4 :: c6 Rewrite Strategy: INNERMOST ---------------------------------------- (17) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 const3 => 0 const => 0 const1 => 0 const2 => 0 const4 => 0 ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z0) :|: z = 1 + z0, z0 >= 0 F(z) -{ 1 }-> 1 + G(z0) :|: z = z0, z0 >= 0 G(z) -{ 1 }-> 1 + G(z0) :|: z = 1 + z0, z0 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z0, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z0, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z = 1 + z0, z0 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z0, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 activate(z) -{ 0 }-> z0 :|: z = z0, z0 >= 0 activate(z) -{ 0 }-> f(z0) :|: z = 1 + z0, z0 >= 0 activate(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 f(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 f(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 f(z) -{ 0 }-> 1 + z0 + (1 + g(z0)) :|: z = z0, z0 >= 0 g(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z0)) :|: z = 1 + z0, z0 >= 0 ---------------------------------------- (19) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + g(z)) :|: z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z - 1)) :|: z - 1 >= 0 ---------------------------------------- (21) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { g } { G } { f } { F } { activate } { ACTIVATE } { SEL } ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + g(z)) :|: z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z - 1)) :|: z - 1 >= 0 Function symbols to be analyzed: {g}, {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} ---------------------------------------- (23) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + g(z)) :|: z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z - 1)) :|: z - 1 >= 0 Function symbols to be analyzed: {g}, {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: g after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + 2*z ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + g(z)) :|: z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z - 1)) :|: z - 1 >= 0 Function symbols to be analyzed: {g}, {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: ?, size: O(n^1) [1 + 2*z] ---------------------------------------- (27) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: g after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + g(z)) :|: z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + g(z - 1)) :|: z - 1 >= 0 Function symbols to be analyzed: {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] ---------------------------------------- (29) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: G after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {G}, {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: ?, size: O(1) [0] ---------------------------------------- (33) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: G after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 }-> 1 + G(z) :|: z >= 0 G(z) -{ 1 }-> 1 + G(z - 1) :|: z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] ---------------------------------------- (35) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: f after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + 3*z ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {f}, {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: ?, size: O(n^1) [3 + 3*z] ---------------------------------------- (39) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: f after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, f(z0')) + ACTIVATE(1 + z0') :|: z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> f(z - 1) :|: z - 1 >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] ---------------------------------------- (41) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: F after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {F}, {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: ?, size: O(1) [1] ---------------------------------------- (45) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: F after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 }-> 1 + F(z - 1) :|: z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] ---------------------------------------- (47) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: activate after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3*z ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {activate}, {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: ?, size: O(n^1) [3*z] ---------------------------------------- (51) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: activate after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ---------------------------------------- (53) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: ACTIVATE after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {ACTIVATE}, {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ACTIVATE: runtime: ?, size: O(1) [2] ---------------------------------------- (57) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: ACTIVATE after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, s2) + ACTIVATE(1 + z0') :|: s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, z2) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 1 }-> 1 + SEL(z - 1, 0) + ACTIVATE(z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ACTIVATE: runtime: O(n^1) [1 + z], size: O(1) [2] ---------------------------------------- (59) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 3 + z0' }-> 1 + SEL(z - 1, s2) + s5 :|: s5 >= 0, s5 <= 2, s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, z2) + s6 :|: s6 >= 0, s6 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, 0) + s7 :|: s7 >= 0, s7 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ACTIVATE: runtime: O(n^1) [1 + z], size: O(1) [2] ---------------------------------------- (61) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: SEL after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (62) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 3 + z0' }-> 1 + SEL(z - 1, s2) + s5 :|: s5 >= 0, s5 <= 2, s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, z2) + s6 :|: s6 >= 0, s6 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, 0) + s7 :|: s7 >= 0, s7 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: {SEL} Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ACTIVATE: runtime: O(n^1) [1 + z], size: O(1) [2] SEL: runtime: ?, size: O(1) [0] ---------------------------------------- (63) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: SEL after applying outer abstraction to obtain an ITS, resulting in: EXP with polynomial bound: ? ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: ACTIVATE(z) -{ 1 + z }-> 1 + s4 :|: s4 >= 0, s4 <= 1, z - 1 >= 0 F(z) -{ 1 + z }-> 1 + s'' :|: s'' >= 0, s'' <= 0, z >= 0 G(z) -{ z }-> 1 + s1 :|: s1 >= 0, s1 <= 0, z - 1 >= 0 SEL(z, z') -{ 3 + z0' }-> 1 + SEL(z - 1, s2) + s5 :|: s5 >= 0, s5 <= 2, s2 >= 0, s2 <= 3 * z0' + 3, z' = 1 + z1 + (1 + z0'), z1 >= 0, z0' >= 0, z - 1 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, z2) + s6 :|: s6 >= 0, s6 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 SEL(z, z') -{ 2 + z2 }-> 1 + SEL(z - 1, 0) + s7 :|: s7 >= 0, s7 <= 2, z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 activate(z) -{ 0 }-> s3 :|: s3 >= 0, s3 <= 3 * (z - 1) + 3, z - 1 >= 0 activate(z) -{ 0 }-> z :|: z >= 0 activate(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 0 :|: z >= 0 f(z) -{ 0 }-> 1 + z :|: z >= 0 f(z) -{ 0 }-> 1 + z + (1 + s) :|: s >= 0, s <= 2 * z + 1, z >= 0 g(z) -{ 0 }-> 0 :|: z >= 0 g(z) -{ 0 }-> 1 + 0 :|: z = 0 g(z) -{ 0 }-> 1 + (1 + s') :|: s' >= 0, s' <= 2 * (z - 1) + 1, z - 1 >= 0 Function symbols to be analyzed: Previous analysis results are: g: runtime: O(1) [0], size: O(n^1) [1 + 2*z] G: runtime: O(n^1) [z], size: O(1) [0] f: runtime: O(1) [0], size: O(n^1) [3 + 3*z] F: runtime: O(n^1) [1 + z], size: O(1) [1] activate: runtime: O(1) [0], size: O(n^1) [3*z] ACTIVATE: runtime: O(n^1) [1 + z], size: O(1) [2] SEL: runtime: EXP, size: O(1) [0] ---------------------------------------- (65) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (66) BOUNDS(1, EXP)