KILLED proof of input_cWAIvbvHkW.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxWeightedTrs (7) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxWeightedTrs (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTypedWeightedTrs (11) CompletionProof [UPPER BOUND(ID), 0 ms] (12) CpxTypedWeightedCompleteTrs (13) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxTypedWeightedCompleteTrs (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxRNTS (21) ResultPropagationProof [UPPER BOUND(ID), 3 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 228 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 86 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 133 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 46 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 91 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 75 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 1458 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 106 ms] (44) CpxRNTS (45) CompletionProof [UPPER BOUND(ID), 0 ms] (46) CpxTypedWeightedCompleteTrs (47) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (48) CpxRNTS (49) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (50) CdtProblem (51) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (56) CdtProblem (57) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtRuleRemovalProof [UPPER BOUND(ADD(n^2)), 106 ms] (62) CdtProblem (63) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (90) CdtProblem (91) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (104) CdtProblem (105) CdtRewritingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtForwardInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(x))) -> sp(g(x)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(x)) -> np(g(x)) sp(pair(x, y)) -> +(x, y) np(pair(x, y)) -> pair(+(x, y), x) +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: fib(0') -> 0' fib(s(0')) -> s(0') fib(s(s(0'))) -> s(0') fib(s(s(x))) -> sp(g(x)) g(0') -> pair(s(0'), 0') g(s(0')) -> pair(s(0'), s(0')) g(s(x)) -> np(g(x)) sp(pair(x, y)) -> +'(x, y) np(pair(x, y)) -> pair(+'(x, y), x) +'(x, 0') -> x +'(x, s(y)) -> s(+'(x, y)) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(x))) -> sp(g(x)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(x)) -> np(g(x)) sp(pair(x, y)) -> +(x, y) np(pair(x, y)) -> pair(+(x, y), x) +(x, 0) -> x +(x, s(y)) -> s(+(x, y)) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(x))) -> sp(g(x)) [1] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(x)) -> np(g(x)) [1] sp(pair(x, y)) -> +(x, y) [1] np(pair(x, y)) -> pair(+(x, y), x) [1] +(x, 0) -> x [1] +(x, s(y)) -> s(+(x, y)) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (7) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) Renamed defined symbols to avoid conflicts with arithmetic symbols: + => plus ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(x))) -> sp(g(x)) [1] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(x)) -> np(g(x)) [1] sp(pair(x, y)) -> plus(x, y) [1] np(pair(x, y)) -> pair(plus(x, y), x) [1] plus(x, 0) -> x [1] plus(x, s(y)) -> s(plus(x, y)) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(x))) -> sp(g(x)) [1] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(x)) -> np(g(x)) [1] sp(pair(x, y)) -> plus(x, y) [1] np(pair(x, y)) -> pair(plus(x, y), x) [1] plus(x, 0) -> x [1] plus(x, s(y)) -> s(plus(x, y)) [1] The TRS has the following type information: fib :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s sp :: pair -> 0:s g :: 0:s -> pair pair :: 0:s -> 0:s -> pair np :: pair -> pair plus :: 0:s -> 0:s -> 0:s Rewrite Strategy: INNERMOST ---------------------------------------- (11) 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: fib_1 sp_1 (c) The following functions are completely defined: g_1 np_1 plus_2 Due to the following rules being added: np(v0) -> const [0] And the following fresh constants: const ---------------------------------------- (12) 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: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(x))) -> sp(g(x)) [1] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(x)) -> np(g(x)) [1] sp(pair(x, y)) -> plus(x, y) [1] np(pair(x, y)) -> pair(plus(x, y), x) [1] plus(x, 0) -> x [1] plus(x, s(y)) -> s(plus(x, y)) [1] np(v0) -> const [0] The TRS has the following type information: fib :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s sp :: pair:const -> 0:s g :: 0:s -> pair:const pair :: 0:s -> 0:s -> pair:const np :: pair:const -> pair:const plus :: 0:s -> 0:s -> 0:s const :: pair:const Rewrite Strategy: INNERMOST ---------------------------------------- (13) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (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: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(0))) -> sp(pair(s(0), 0)) [2] fib(s(s(s(0)))) -> sp(pair(s(0), s(0))) [2] fib(s(s(s(x')))) -> sp(np(g(x'))) [2] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(0)) -> np(pair(s(0), 0)) [2] g(s(s(0))) -> np(pair(s(0), s(0))) [2] g(s(s(x''))) -> np(np(g(x''))) [2] sp(pair(x, y)) -> plus(x, y) [1] np(pair(x, y)) -> pair(plus(x, y), x) [1] plus(x, 0) -> x [1] plus(x, s(y)) -> s(plus(x, y)) [1] np(v0) -> const [0] The TRS has the following type information: fib :: 0:s -> 0:s 0 :: 0:s s :: 0:s -> 0:s sp :: pair:const -> 0:s g :: 0:s -> pair:const pair :: 0:s -> 0:s -> pair:const np :: pair:const -> pair:const plus :: 0:s -> 0:s -> 0:s const :: pair:const 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: 0 => 0 const => 0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(x'))) :|: z = 1 + (1 + (1 + x')), x' >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(x''))) :|: x'' >= 0, z = 1 + (1 + x'') g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> x :|: x >= 0, z = x, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = x sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 ---------------------------------------- (17) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(z, z' - 1) :|: z >= 0, z' - 1 >= 0 sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { plus } { np } { sp } { g } { fib } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(z, z' - 1) :|: z >= 0, z' - 1 >= 0 sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {plus}, {np}, {sp}, {g}, {fib} ---------------------------------------- (21) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(z, z' - 1) :|: z >= 0, z' - 1 >= 0 sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {plus}, {np}, {sp}, {g}, {fib} ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: plus after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z + z' ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(z, z' - 1) :|: z >= 0, z' - 1 >= 0 sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {plus}, {np}, {sp}, {g}, {fib} Previous analysis results are: plus: runtime: ?, size: O(n^1) [z + z'] ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: plus after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z' ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 }-> 1 + plus(z, z' - 1) :|: z >= 0, z' - 1 >= 0 sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {np}, {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] ---------------------------------------- (27) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {np}, {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: np after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2*z ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {np}, {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: ?, size: O(n^1) [2*z] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: np after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 2 }-> np(1 + (1 + 0) + 0) :|: z = 1 + 0 g(z) -{ 2 }-> np(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + 0) g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] ---------------------------------------- (33) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: sp after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {sp}, {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] sp: runtime: ?, size: O(n^1) [z] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: sp after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 2 }-> sp(1 + (1 + 0) + 0) :|: z = 1 + (1 + 0) fib(z) -{ 2 }-> sp(1 + (1 + 0) + (1 + 0)) :|: z = 1 + (1 + (1 + 0)) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] sp: runtime: O(n^1) [1 + z], size: O(n^1) [z] ---------------------------------------- (39) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (40) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 5 }-> s3 :|: s3 >= 0, s3 <= 1 + (1 + 0) + 0, z = 1 + (1 + 0) fib(z) -{ 6 }-> s4 :|: s4 >= 0, s4 <= 1 + (1 + 0) + (1 + 0), z = 1 + (1 + (1 + 0)) fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] sp: runtime: O(n^1) [1 + z], size: O(n^1) [z] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: g after applying outer abstraction to obtain an ITS, resulting in: EXP with polynomial bound: ? ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 5 }-> s3 :|: s3 >= 0, s3 <= 1 + (1 + 0) + 0, z = 1 + (1 + 0) fib(z) -{ 6 }-> s4 :|: s4 >= 0, s4 <= 1 + (1 + 0) + (1 + 0), z = 1 + (1 + (1 + 0)) fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] sp: runtime: O(n^1) [1 + z], size: O(n^1) [z] g: runtime: ?, size: EXP ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: g after applying outer abstraction to obtain an ITS, resulting in: INF with polynomial bound: ? ---------------------------------------- (44) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 5 }-> s3 :|: s3 >= 0, s3 <= 1 + (1 + 0) + 0, z = 1 + (1 + 0) fib(z) -{ 6 }-> s4 :|: s4 >= 0, s4 <= 1 + (1 + 0) + (1 + 0), z = 1 + (1 + (1 + 0)) fib(z) -{ 2 }-> sp(np(g(z - 3))) :|: z - 3 >= 0 fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 5 }-> s1 :|: s1 >= 0, s1 <= 2 * (1 + (1 + 0) + 0), z = 1 + 0 g(z) -{ 6 }-> s2 :|: s2 >= 0, s2 <= 2 * (1 + (1 + 0) + (1 + 0)), z = 1 + (1 + 0) g(z) -{ 2 }-> np(np(g(z - 2))) :|: z - 2 >= 0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: z >= 0 np(z) -{ 2 + y }-> 1 + s' + x :|: s' >= 0, s' <= x + y, z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> z :|: z >= 0, z' = 0 plus(z, z') -{ 1 + z' }-> 1 + s'' :|: s'' >= 0, s'' <= z + (z' - 1), z >= 0, z' - 1 >= 0 sp(z) -{ 2 + y }-> s :|: s >= 0, s <= x + y, z = 1 + x + y, x >= 0, y >= 0 Function symbols to be analyzed: {g}, {fib} Previous analysis results are: plus: runtime: O(n^1) [1 + z'], size: O(n^1) [z + z'] np: runtime: O(n^1) [1 + z], size: O(n^1) [2*z] sp: runtime: O(n^1) [1 + z], size: O(n^1) [z] g: runtime: INF, size: EXP ---------------------------------------- (45) 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: sp(v0) -> null_sp [0] np(v0) -> null_np [0] fib(v0) -> null_fib [0] g(v0) -> null_g [0] plus(v0, v1) -> null_plus [0] And the following fresh constants: null_sp, null_np, null_fib, null_g, null_plus ---------------------------------------- (46) 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: fib(0) -> 0 [1] fib(s(0)) -> s(0) [1] fib(s(s(0))) -> s(0) [1] fib(s(s(x))) -> sp(g(x)) [1] g(0) -> pair(s(0), 0) [1] g(s(0)) -> pair(s(0), s(0)) [1] g(s(x)) -> np(g(x)) [1] sp(pair(x, y)) -> plus(x, y) [1] np(pair(x, y)) -> pair(plus(x, y), x) [1] plus(x, 0) -> x [1] plus(x, s(y)) -> s(plus(x, y)) [1] sp(v0) -> null_sp [0] np(v0) -> null_np [0] fib(v0) -> null_fib [0] g(v0) -> null_g [0] plus(v0, v1) -> null_plus [0] The TRS has the following type information: fib :: 0:s:null_sp:null_fib:null_plus -> 0:s:null_sp:null_fib:null_plus 0 :: 0:s:null_sp:null_fib:null_plus s :: 0:s:null_sp:null_fib:null_plus -> 0:s:null_sp:null_fib:null_plus sp :: pair:null_np:null_g -> 0:s:null_sp:null_fib:null_plus g :: 0:s:null_sp:null_fib:null_plus -> pair:null_np:null_g pair :: 0:s:null_sp:null_fib:null_plus -> 0:s:null_sp:null_fib:null_plus -> pair:null_np:null_g np :: pair:null_np:null_g -> pair:null_np:null_g plus :: 0:s:null_sp:null_fib:null_plus -> 0:s:null_sp:null_fib:null_plus -> 0:s:null_sp:null_fib:null_plus null_sp :: 0:s:null_sp:null_fib:null_plus null_np :: pair:null_np:null_g null_fib :: 0:s:null_sp:null_fib:null_plus null_g :: pair:null_np:null_g null_plus :: 0:s:null_sp:null_fib:null_plus Rewrite Strategy: INNERMOST ---------------------------------------- (47) 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 null_sp => 0 null_np => 0 null_fib => 0 null_g => 0 null_plus => 0 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: fib(z) -{ 1 }-> sp(g(x)) :|: x >= 0, z = 1 + (1 + x) fib(z) -{ 1 }-> 0 :|: z = 0 fib(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + 0 fib(z) -{ 1 }-> 1 + 0 :|: z = 1 + (1 + 0) g(z) -{ 1 }-> np(g(x)) :|: x >= 0, z = 1 + x g(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 g(z) -{ 1 }-> 1 + (1 + 0) + 0 :|: z = 0 g(z) -{ 1 }-> 1 + (1 + 0) + (1 + 0) :|: z = 1 + 0 np(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 np(z) -{ 1 }-> 1 + plus(x, y) + x :|: z = 1 + x + y, x >= 0, y >= 0 plus(z, z') -{ 1 }-> x :|: x >= 0, z = x, z' = 0 plus(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 plus(z, z') -{ 1 }-> 1 + plus(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = x sp(z) -{ 1 }-> plus(x, y) :|: z = 1 + x + y, x >= 0, y >= 0 sp(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (49) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: FIB(0) -> c FIB(s(0)) -> c1 FIB(s(s(0))) -> c2 FIB(s(s(z0))) -> c3(SP(g(z0)), G(z0)) G(0) -> c4 G(s(0)) -> c5 G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, 0) -> c9 +'(z0, s(z1)) -> c10(+'(z0, z1)) S tuples: FIB(0) -> c FIB(s(0)) -> c1 FIB(s(s(0))) -> c2 FIB(s(s(z0))) -> c3(SP(g(z0)), G(z0)) G(0) -> c4 G(s(0)) -> c5 G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, 0) -> c9 +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples:none Defined Rule Symbols: fib_1, g_1, sp_1, np_1, +_2 Defined Pair Symbols: FIB_1, G_1, SP_1, NP_1, +'_2 Compound Symbols: c, c1, c2, c3_2, c4, c5, c6_2, c7_1, c8_1, c9, c10_1 ---------------------------------------- (51) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing nodes: FIB(s(s(0))) -> c2 FIB(s(0)) -> c1 FIB(0) -> c G(0) -> c4 +'(z0, 0) -> c9 G(s(0)) -> c5 ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: FIB(s(s(z0))) -> c3(SP(g(z0)), G(z0)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) S tuples: FIB(s(s(z0))) -> c3(SP(g(z0)), G(z0)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples:none Defined Rule Symbols: fib_1, g_1, sp_1, np_1, +_2 Defined Pair Symbols: FIB_1, G_1, SP_1, NP_1, +'_2 Compound Symbols: c3_2, c6_2, c7_1, c8_1, c10_1 ---------------------------------------- (53) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) FIB(s(s(z0))) -> c(G(z0)) S tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) FIB(s(s(z0))) -> c(G(z0)) K tuples:none Defined Rule Symbols: fib_1, g_1, sp_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (55) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: FIB(s(s(z0))) -> c(G(z0)) ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) S tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) K tuples:none Defined Rule Symbols: fib_1, g_1, sp_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (57) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) S tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) Defined Rule Symbols: fib_1, g_1, sp_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (59) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: fib(0) -> 0 fib(s(0)) -> s(0) fib(s(s(0))) -> s(0) fib(s(s(z0))) -> sp(g(z0)) sp(pair(z0, z1)) -> +(z0, z1) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) S tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (61) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. G(s(z0)) -> c6(NP(g(z0)), G(z0)) We considered the (Usable) Rules:none And the Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) The order we found is given by the following interpretation: Polynomial interpretation : POL(+(x_1, x_2)) = [2] + x_1 + [2]x_2^2 + [2]x_1^2 POL(+'(x_1, x_2)) = 0 POL(0) = 0 POL(FIB(x_1)) = 0 POL(G(x_1)) = [2]x_1^2 POL(NP(x_1)) = 0 POL(SP(x_1)) = 0 POL(c(x_1)) = x_1 POL(c10(x_1)) = x_1 POL(c6(x_1, x_2)) = x_1 + x_2 POL(c7(x_1)) = x_1 POL(c8(x_1)) = x_1 POL(g(x_1)) = 0 POL(np(x_1)) = [1] POL(pair(x_1, x_2)) = 0 POL(s(x_1)) = [2] + x_1 ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) S tuples: NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (63) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: NP(pair(z0, z1)) -> c8(+'(z0, z1)) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(z0)) -> c6(NP(g(z0)), G(z0)) SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, SP_1, NP_1, +'_2, FIB_1 Compound Symbols: c6_2, c7_1, c8_1, c10_1, c_1 ---------------------------------------- (65) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace G(s(z0)) -> c6(NP(g(z0)), G(z0)) by G(s(0)) -> c6(NP(pair(s(0), 0)), G(0)) G(s(s(0))) -> c6(NP(pair(s(0), s(0))), G(s(0))) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) G(s(0)) -> c6(NP(pair(s(0), 0)), G(0)) G(s(s(0))) -> c6(NP(pair(s(0), s(0))), G(s(0))) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, FIB_1, G_1 Compound Symbols: c7_1, c8_1, c10_1, c_1, c6_2 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) G(s(s(0))) -> c6(NP(pair(s(0), s(0))), G(s(0))) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) G(s(0)) -> c6(NP(pair(s(0), 0))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, FIB_1, G_1 Compound Symbols: c7_1, c8_1, c10_1, c_1, c6_2, c6_1 ---------------------------------------- (69) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) FIB(s(s(z0))) -> c(SP(g(z0))) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, FIB_1, G_1 Compound Symbols: c7_1, c8_1, c10_1, c_1, c6_2, c6_1, c1_1 ---------------------------------------- (71) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace FIB(s(s(z0))) -> c(SP(g(z0))) by FIB(s(s(0))) -> c(SP(pair(s(0), 0))) FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) FIB(s(s(0))) -> c(SP(pair(s(0), 0))) FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: FIB(s(s(z0))) -> c(SP(g(z0))) SP(pair(z0, z1)) -> c7(+'(z0, z1)) G(s(z0)) -> c6(NP(g(z0)), G(z0)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_2, c6_1, c1_1, c_1 ---------------------------------------- (73) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 2 leading nodes: FIB(s(s(0))) -> c(SP(pair(s(0), 0))) FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_2, c6_1, c1_1, c_1 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace G(s(s(z0))) -> c6(NP(np(g(z0))), G(s(z0))) by G(s(s(0))) -> c6(NP(np(pair(s(0), 0))), G(s(0))) G(s(s(s(0)))) -> c6(NP(np(pair(s(0), s(0)))), G(s(s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) G(s(s(0))) -> c6(NP(np(pair(s(0), 0))), G(s(0))) G(s(s(s(0)))) -> c6(NP(np(pair(s(0), s(0)))), G(s(s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_1, c1_1, c_1, c6_2 ---------------------------------------- (77) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(NP(np(pair(s(0), 0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(NP(np(pair(s(0), s(0))))) G(s(s(s(0)))) -> c2(G(s(s(0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_1, c1_1, c_1, c6_2, c2_1 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace FIB(s(s(s(z0)))) -> c(SP(np(g(z0)))) by FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(NP(np(pair(s(0), 0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(NP(np(pair(s(0), s(0))))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_1, c1_1, c6_2, c2_1, c_1 ---------------------------------------- (81) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace G(s(s(0))) -> c2(NP(np(pair(s(0), 0)))) by G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(NP(np(pair(s(0), s(0))))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_1, c1_1, c6_2, c2_1, c_1 ---------------------------------------- (83) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace G(s(s(s(0)))) -> c2(NP(np(pair(s(0), s(0))))) by G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, z1)) -> c7(+'(z0, z1)) NP(pair(z0, z1)) -> c8(+'(z0, z1)) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: SP_1, NP_1, +'_2, G_1, FIB_1 Compound Symbols: c7_1, c8_1, c10_1, c6_1, c1_1, c6_2, c2_1, c_1 ---------------------------------------- (85) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace SP(pair(z0, z1)) -> c7(+'(z0, z1)) by SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: NP(pair(z0, z1)) -> c8(+'(z0, z1)) +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: NP(pair(z0, z1)) -> c8(+'(z0, z1)) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: NP_1, +'_2, G_1, FIB_1, SP_1 Compound Symbols: c8_1, c10_1, c6_1, c1_1, c6_2, c2_1, c_1, c7_1 ---------------------------------------- (87) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace NP(pair(z0, z1)) -> c8(+'(z0, z1)) by NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(0))) -> c1(G(s(0))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(0))) -> c2(G(s(0))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: +'_2, G_1, FIB_1, SP_1, NP_1 Compound Symbols: c10_1, c6_1, c1_1, c6_2, c2_1, c_1, c7_1, c8_1 ---------------------------------------- (89) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: G(s(s(0))) -> c2(G(s(0))) G(s(0)) -> c6(NP(pair(s(0), 0))) G(s(s(0))) -> c1(G(s(0))) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) S tuples: +'(z0, s(z1)) -> c10(+'(z0, z1)) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: +'_2, G_1, FIB_1, SP_1, NP_1 Compound Symbols: c10_1, c1_1, c6_2, c2_1, c_1, c7_1, c8_1 ---------------------------------------- (91) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace +'(z0, s(z1)) -> c10(+'(z0, z1)) by +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (93) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace FIB(s(s(s(0)))) -> c(SP(np(pair(s(0), 0)))) by FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (95) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace FIB(s(s(s(s(0))))) -> c(SP(np(pair(s(0), s(0))))) by FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (97) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace G(s(s(0))) -> c2(NP(pair(+(s(0), 0), s(0)))) by G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (99) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace G(s(s(s(0)))) -> c2(NP(pair(+(s(0), s(0)), s(0)))) by G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (101) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace FIB(s(s(s(0)))) -> c(SP(pair(+(s(0), 0), s(0)))) by FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (103) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: FIB(s(s(s(0)))) -> c(SP(pair(s(0), s(0)))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (105) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace FIB(s(s(s(s(0))))) -> c(SP(pair(+(s(0), s(0)), s(0)))) by FIB(s(s(s(s(0))))) -> c(SP(pair(s(+(s(0), 0)), s(0)))) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) FIB(s(s(s(s(0))))) -> c(SP(pair(s(+(s(0), 0)), s(0)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c1_1, c6_2, c2_1, c_1, c7_1, c8_1, c10_1 ---------------------------------------- (107) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace SP(pair(z0, s(y1))) -> c7(+'(z0, s(y1))) by SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) FIB(s(s(s(s(0))))) -> c(SP(pair(s(+(s(0), 0)), s(0)))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, NP_1, +'_2, SP_1 Compound Symbols: c1_1, c6_2, c2_1, c_1, c8_1, c10_1, c7_1 ---------------------------------------- (109) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: FIB(s(s(s(s(0))))) -> c(SP(pair(s(+(s(0), 0)), s(0)))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, NP_1, +'_2, SP_1 Compound Symbols: c1_1, c6_2, c2_1, c_1, c8_1, c10_1, c7_1 ---------------------------------------- (111) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace NP(pair(z0, s(y1))) -> c8(+'(z0, s(y1))) by NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, +'_2, SP_1, NP_1 Compound Symbols: c1_1, c6_2, c2_1, c_1, c10_1, c7_1, c8_1 ---------------------------------------- (113) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: G(s(s(0))) -> c1(NP(pair(s(0), s(0)))) G(s(s(s(0)))) -> c2(G(s(s(0)))) G(s(s(s(0)))) -> c2(NP(pair(s(+(s(0), 0)), s(0)))) G(s(s(0))) -> c2(NP(pair(s(0), s(0)))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) S tuples: +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) K tuples: SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, +'_2, SP_1, NP_1 Compound Symbols: c6_2, c_1, c10_1, c7_1, c8_1 ---------------------------------------- (115) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID)) Use forward instantiation to replace +'(z0, s(s(y1))) -> c10(+'(z0, s(y1))) by +'(z0, s(s(s(y1)))) -> c10(+'(z0, s(s(y1)))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: g(0) -> pair(s(0), 0) g(s(0)) -> pair(s(0), s(0)) g(s(z0)) -> np(g(z0)) np(pair(z0, z1)) -> pair(+(z0, z1), z0) +(z0, 0) -> z0 +(z0, s(z1)) -> s(+(z0, z1)) Tuples: G(s(s(s(z0)))) -> c6(NP(np(np(g(z0)))), G(s(s(z0)))) FIB(s(s(s(s(z0))))) -> c(SP(np(np(g(z0))))) SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) +'(z0, s(s(s(y1)))) -> c10(+'(z0, s(s(y1)))) S tuples: +'(z0, s(s(s(y1)))) -> c10(+'(z0, s(s(y1)))) K tuples: SP(pair(z0, s(s(y1)))) -> c7(+'(z0, s(s(y1)))) NP(pair(z0, s(s(y1)))) -> c8(+'(z0, s(s(y1)))) Defined Rule Symbols: g_1, np_1, +_2 Defined Pair Symbols: G_1, FIB_1, SP_1, NP_1, +'_2 Compound Symbols: c6_2, c_1, c7_1, c8_1, c10_1