/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), O(n^2)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 234 ms] (4) CpxRelTRS (5) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxWeightedTrs (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxTypedWeightedTrs (9) CompletionProof [UPPER BOUND(ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) NarrowingProof [BOTH BOUNDS(ID, ID), 2147 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 919 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 2 ms] (20) CpxRNTS (21) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) IntTrsBoundProof [UPPER BOUND(ID), 177 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 54 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 76 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 138 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 42 ms] (38) CpxRNTS (39) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (40) CpxRNTS (41) IntTrsBoundProof [UPPER BOUND(ID), 136 ms] (42) CpxRNTS (43) IntTrsBoundProof [UPPER BOUND(ID), 52 ms] (44) CpxRNTS (45) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (46) CpxRNTS (47) IntTrsBoundProof [UPPER BOUND(ID), 96 ms] (48) CpxRNTS (49) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (52) CpxRNTS (53) IntTrsBoundProof [UPPER BOUND(ID), 662 ms] (54) CpxRNTS (55) IntTrsBoundProof [UPPER BOUND(ID), 178 ms] (56) CpxRNTS (57) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (58) CpxRNTS (59) IntTrsBoundProof [UPPER BOUND(ID), 106 ms] (60) CpxRNTS (61) IntTrsBoundProof [UPPER BOUND(ID), 1 ms] (62) CpxRNTS (63) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (64) CpxRNTS (65) IntTrsBoundProof [UPPER BOUND(ID), 2081 ms] (66) CpxRNTS (67) IntTrsBoundProof [UPPER BOUND(ID), 1376 ms] (68) CpxRNTS (69) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (70) CpxRNTS (71) IntTrsBoundProof [UPPER BOUND(ID), 620 ms] (72) CpxRNTS (73) IntTrsBoundProof [UPPER BOUND(ID), 88 ms] (74) CpxRNTS (75) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (76) CpxRNTS (77) IntTrsBoundProof [UPPER BOUND(ID), 207 ms] (78) CpxRNTS (79) IntTrsBoundProof [UPPER BOUND(ID), 3 ms] (80) CpxRNTS (81) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (82) CpxRNTS (83) IntTrsBoundProof [UPPER BOUND(ID), 230 ms] (84) CpxRNTS (85) IntTrsBoundProof [UPPER BOUND(ID), 0 ms] (86) CpxRNTS (87) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (88) CpxRNTS (89) IntTrsBoundProof [UPPER BOUND(ID), 177 ms] (90) CpxRNTS (91) IntTrsBoundProof [UPPER BOUND(ID), 2 ms] (92) CpxRNTS (93) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (94) CpxRNTS (95) IntTrsBoundProof [UPPER BOUND(ID), 597 ms] (96) CpxRNTS (97) IntTrsBoundProof [UPPER BOUND(ID), 106 ms] (98) CpxRNTS (99) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (100) CpxRNTS (101) IntTrsBoundProof [UPPER BOUND(ID), 387 ms] (102) CpxRNTS (103) IntTrsBoundProof [UPPER BOUND(ID), 37 ms] (104) CpxRNTS (105) FinalProof [FINISHED, 0 ms] (106) BOUNDS(1, n^2) (107) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CpxRelTRS (109) TypeInferenceProof [BOTH BOUNDS(ID, ID), 3 ms] (110) typed CpxTrs (111) OrderProof [LOWER BOUND(ID), 0 ms] (112) typed CpxTrs (113) RewriteLemmaProof [LOWER BOUND(ID), 2132 ms] (114) BEST (115) proven lower bound (116) LowerBoundPropagationProof [FINISHED, 0 ms] (117) BOUNDS(n^1, INF) (118) typed CpxTrs (119) RewriteLemmaProof [LOWER BOUND(ID), 97 ms] (120) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) The (relative) TRS S consists of the following rules: encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, n^2). The TRS R consists of the following rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) The (relative) TRS S consists of the following rules: encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^2). The TRS R consists of the following rules: is_empty(nil) -> true [1] is_empty(cons(x, l)) -> false [1] hd(cons(x, l)) -> x [1] tl(cons(x, l)) -> l [1] append(l1, l2) -> ifappend(l1, l2, l1) [1] ifappend(l1, l2, nil) -> l2 [1] ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) [1] encArg(nil) -> nil [0] encArg(true) -> true [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(false) -> false [0] encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) [0] encArg(cons_hd(x_1)) -> hd(encArg(x_1)) [0] encArg(cons_tl(x_1)) -> tl(encArg(x_1)) [0] encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) [0] encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_is_empty(x_1) -> is_empty(encArg(x_1)) [0] encode_nil -> nil [0] encode_true -> true [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] encode_hd(x_1) -> hd(encArg(x_1)) [0] encode_tl(x_1) -> tl(encArg(x_1)) [0] encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) [0] encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: is_empty(nil) -> true [1] is_empty(cons(x, l)) -> false [1] hd(cons(x, l)) -> x [1] tl(cons(x, l)) -> l [1] append(l1, l2) -> ifappend(l1, l2, l1) [1] ifappend(l1, l2, nil) -> l2 [1] ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) [1] encArg(nil) -> nil [0] encArg(true) -> true [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(false) -> false [0] encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) [0] encArg(cons_hd(x_1)) -> hd(encArg(x_1)) [0] encArg(cons_tl(x_1)) -> tl(encArg(x_1)) [0] encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) [0] encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_is_empty(x_1) -> is_empty(encArg(x_1)) [0] encode_nil -> nil [0] encode_true -> true [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] encode_hd(x_1) -> hd(encArg(x_1)) [0] encode_tl(x_1) -> tl(encArg(x_1)) [0] encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) [0] encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] The TRS has the following type information: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend Rewrite Strategy: INNERMOST ---------------------------------------- (9) 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: none (c) The following functions are completely defined: ifappend_3 append_2 tl_1 hd_1 is_empty_1 encArg_1 encode_is_empty_1 encode_nil encode_true encode_cons_2 encode_false encode_hd_1 encode_tl_1 encode_append_2 encode_ifappend_3 Due to the following rules being added: encArg(v0) -> null_encArg [0] encode_is_empty(v0) -> null_encode_is_empty [0] encode_nil -> null_encode_nil [0] encode_true -> null_encode_true [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_false -> null_encode_false [0] encode_hd(v0) -> null_encode_hd [0] encode_tl(v0) -> null_encode_tl [0] encode_append(v0, v1) -> null_encode_append [0] encode_ifappend(v0, v1, v2) -> null_encode_ifappend [0] ifappend(v0, v1, v2) -> null_ifappend [0] tl(v0) -> null_tl [0] hd(v0) -> null_hd [0] is_empty(v0) -> null_is_empty [0] And the following fresh constants: null_encArg, null_encode_is_empty, null_encode_nil, null_encode_true, null_encode_cons, null_encode_false, null_encode_hd, null_encode_tl, null_encode_append, null_encode_ifappend, null_ifappend, null_tl, null_hd, null_is_empty ---------------------------------------- (10) 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: is_empty(nil) -> true [1] is_empty(cons(x, l)) -> false [1] hd(cons(x, l)) -> x [1] tl(cons(x, l)) -> l [1] append(l1, l2) -> ifappend(l1, l2, l1) [1] ifappend(l1, l2, nil) -> l2 [1] ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) [1] encArg(nil) -> nil [0] encArg(true) -> true [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(false) -> false [0] encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) [0] encArg(cons_hd(x_1)) -> hd(encArg(x_1)) [0] encArg(cons_tl(x_1)) -> tl(encArg(x_1)) [0] encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) [0] encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_is_empty(x_1) -> is_empty(encArg(x_1)) [0] encode_nil -> nil [0] encode_true -> true [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] encode_hd(x_1) -> hd(encArg(x_1)) [0] encode_tl(x_1) -> tl(encArg(x_1)) [0] encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) [0] encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(v0) -> null_encArg [0] encode_is_empty(v0) -> null_encode_is_empty [0] encode_nil -> null_encode_nil [0] encode_true -> null_encode_true [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_false -> null_encode_false [0] encode_hd(v0) -> null_encode_hd [0] encode_tl(v0) -> null_encode_tl [0] encode_append(v0, v1) -> null_encode_append [0] encode_ifappend(v0, v1, v2) -> null_encode_ifappend [0] ifappend(v0, v1, v2) -> null_ifappend [0] tl(v0) -> null_tl [0] hd(v0) -> null_hd [0] is_empty(v0) -> null_is_empty [0] The TRS has the following type information: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty Rewrite Strategy: INNERMOST ---------------------------------------- (11) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (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: is_empty(nil) -> true [1] is_empty(cons(x, l)) -> false [1] hd(cons(x, l)) -> x [1] tl(cons(x, l)) -> l [1] append(l1, l2) -> ifappend(l1, l2, l1) [1] ifappend(l1, l2, nil) -> l2 [1] ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) [1] encArg(nil) -> nil [0] encArg(true) -> true [0] encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) [0] encArg(false) -> false [0] encArg(cons_is_empty(nil)) -> is_empty(nil) [0] encArg(cons_is_empty(true)) -> is_empty(true) [0] encArg(cons_is_empty(cons(x_1', x_2'))) -> is_empty(cons(encArg(x_1'), encArg(x_2'))) [0] encArg(cons_is_empty(false)) -> is_empty(false) [0] encArg(cons_is_empty(cons_is_empty(x_1''))) -> is_empty(is_empty(encArg(x_1''))) [0] encArg(cons_is_empty(cons_hd(x_11))) -> is_empty(hd(encArg(x_11))) [0] encArg(cons_is_empty(cons_tl(x_12))) -> is_empty(tl(encArg(x_12))) [0] encArg(cons_is_empty(cons_append(x_13, x_2''))) -> is_empty(append(encArg(x_13), encArg(x_2''))) [0] encArg(cons_is_empty(cons_ifappend(x_14, x_21, x_3'))) -> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) [0] encArg(cons_is_empty(x_1)) -> is_empty(null_encArg) [0] encArg(cons_hd(nil)) -> hd(nil) [0] encArg(cons_hd(true)) -> hd(true) [0] encArg(cons_hd(cons(x_15, x_22))) -> hd(cons(encArg(x_15), encArg(x_22))) [0] encArg(cons_hd(false)) -> hd(false) [0] encArg(cons_hd(cons_is_empty(x_16))) -> hd(is_empty(encArg(x_16))) [0] encArg(cons_hd(cons_hd(x_17))) -> hd(hd(encArg(x_17))) [0] encArg(cons_hd(cons_tl(x_18))) -> hd(tl(encArg(x_18))) [0] encArg(cons_hd(cons_append(x_19, x_23))) -> hd(append(encArg(x_19), encArg(x_23))) [0] encArg(cons_hd(cons_ifappend(x_110, x_24, x_3''))) -> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) [0] encArg(cons_hd(x_1)) -> hd(null_encArg) [0] encArg(cons_tl(nil)) -> tl(nil) [0] encArg(cons_tl(true)) -> tl(true) [0] encArg(cons_tl(cons(x_111, x_25))) -> tl(cons(encArg(x_111), encArg(x_25))) [0] encArg(cons_tl(false)) -> tl(false) [0] encArg(cons_tl(cons_is_empty(x_112))) -> tl(is_empty(encArg(x_112))) [0] encArg(cons_tl(cons_hd(x_113))) -> tl(hd(encArg(x_113))) [0] encArg(cons_tl(cons_tl(x_114))) -> tl(tl(encArg(x_114))) [0] encArg(cons_tl(cons_append(x_115, x_26))) -> tl(append(encArg(x_115), encArg(x_26))) [0] encArg(cons_tl(cons_ifappend(x_116, x_27, x_31))) -> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) [0] encArg(cons_tl(x_1)) -> tl(null_encArg) [0] encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) [0] encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encode_is_empty(nil) -> is_empty(nil) [0] encode_is_empty(true) -> is_empty(true) [0] encode_is_empty(cons(x_1749, x_2374)) -> is_empty(cons(encArg(x_1749), encArg(x_2374))) [0] encode_is_empty(false) -> is_empty(false) [0] encode_is_empty(cons_is_empty(x_1750)) -> is_empty(is_empty(encArg(x_1750))) [0] encode_is_empty(cons_hd(x_1751)) -> is_empty(hd(encArg(x_1751))) [0] encode_is_empty(cons_tl(x_1752)) -> is_empty(tl(encArg(x_1752))) [0] encode_is_empty(cons_append(x_1753, x_2375)) -> is_empty(append(encArg(x_1753), encArg(x_2375))) [0] encode_is_empty(cons_ifappend(x_1754, x_2376, x_3124)) -> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) [0] encode_is_empty(x_1) -> is_empty(null_encArg) [0] encode_nil -> nil [0] encode_true -> true [0] encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) [0] encode_false -> false [0] encode_hd(nil) -> hd(nil) [0] encode_hd(true) -> hd(true) [0] encode_hd(cons(x_1755, x_2377)) -> hd(cons(encArg(x_1755), encArg(x_2377))) [0] encode_hd(false) -> hd(false) [0] encode_hd(cons_is_empty(x_1756)) -> hd(is_empty(encArg(x_1756))) [0] encode_hd(cons_hd(x_1757)) -> hd(hd(encArg(x_1757))) [0] encode_hd(cons_tl(x_1758)) -> hd(tl(encArg(x_1758))) [0] encode_hd(cons_append(x_1759, x_2378)) -> hd(append(encArg(x_1759), encArg(x_2378))) [0] encode_hd(cons_ifappend(x_1760, x_2379, x_3125)) -> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) [0] encode_hd(x_1) -> hd(null_encArg) [0] encode_tl(nil) -> tl(nil) [0] encode_tl(true) -> tl(true) [0] encode_tl(cons(x_1761, x_2380)) -> tl(cons(encArg(x_1761), encArg(x_2380))) [0] encode_tl(false) -> tl(false) [0] encode_tl(cons_is_empty(x_1762)) -> tl(is_empty(encArg(x_1762))) [0] encode_tl(cons_hd(x_1763)) -> tl(hd(encArg(x_1763))) [0] encode_tl(cons_tl(x_1764)) -> tl(tl(encArg(x_1764))) [0] encode_tl(cons_append(x_1765, x_2381)) -> tl(append(encArg(x_1765), encArg(x_2381))) [0] encode_tl(cons_ifappend(x_1766, x_2382, x_3126)) -> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) [0] encode_tl(x_1) -> tl(null_encArg) [0] encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) [0] encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) [0] encArg(v0) -> null_encArg [0] encode_is_empty(v0) -> null_encode_is_empty [0] encode_nil -> null_encode_nil [0] encode_true -> null_encode_true [0] encode_cons(v0, v1) -> null_encode_cons [0] encode_false -> null_encode_false [0] encode_hd(v0) -> null_encode_hd [0] encode_tl(v0) -> null_encode_tl [0] encode_append(v0, v1) -> null_encode_append [0] encode_ifappend(v0, v1, v2) -> null_encode_ifappend [0] ifappend(v0, v1, v2) -> null_ifappend [0] tl(v0) -> null_tl [0] hd(v0) -> null_hd [0] is_empty(v0) -> null_is_empty [0] The TRS has the following type information: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty null_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend:null_encArg:null_encode_is_empty:null_encode_nil:null_encode_true:null_encode_cons:null_encode_false:null_encode_hd:null_encode_tl:null_encode_append:null_encode_ifappend:null_ifappend:null_tl:null_hd:null_is_empty Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: nil => 1 true => 2 false => 0 null_encArg => 0 null_encode_is_empty => 0 null_encode_nil => 0 null_encode_true => 0 null_encode_cons => 0 null_encode_false => 0 null_encode_hd => 0 null_encode_tl => 0 null_encode_append => 0 null_encode_ifappend => 0 null_ifappend => 0 null_tl => 0 null_hd => 0 null_is_empty => 0 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(l1, l2, l1) :|: z = l1, z' = l2, l1 >= 0, l2 >= 0 encArg(z) -{ 0 }-> tl(tl(encArg(x_114))) :|: z = 1 + (1 + x_114), x_114 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(x_112))) :|: x_112 >= 0, z = 1 + (1 + x_112) encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(x_113))) :|: x_113 >= 0, z = 1 + (1 + x_113) encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> tl(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> tl(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> tl(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(x_12))) :|: z = 1 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> is_empty(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> is_empty(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> is_empty(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(x_18))) :|: z = 1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(x_16))) :|: x_16 >= 0, z = 1 + (1 + x_16) encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(x_17))) :|: x_17 >= 0, z = 1 + (1 + x_17) encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(2) :|: z = 1 + 2 encArg(z) -{ 0 }-> hd(1) :|: z = 1 + 1 encArg(z) -{ 0 }-> hd(0) :|: z = 1 + 0 encArg(z) -{ 0 }-> hd(0) :|: z = 1 + x_1, x_1 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_append(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 0 }-> hd(tl(encArg(x_1758))) :|: z = 1 + x_1758, x_1758 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(x_1756))) :|: x_1756 >= 0, z = 1 + x_1756 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(x_1757))) :|: z = 1 + x_1757, x_1757 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(2) :|: z = 2 encode_hd(z) -{ 0 }-> hd(1) :|: z = 1 encode_hd(z) -{ 0 }-> hd(0) :|: z = 0 encode_hd(z) -{ 0 }-> hd(0) :|: x_1 >= 0, z = x_1 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(x_1752))) :|: x_1752 >= 0, z = 1 + x_1752 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(x_1750))) :|: x_1750 >= 0, z = 1 + x_1750 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(x_1751))) :|: x_1751 >= 0, z = 1 + x_1751 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(2) :|: z = 2 encode_is_empty(z) -{ 0 }-> is_empty(1) :|: z = 1 encode_is_empty(z) -{ 0 }-> is_empty(0) :|: z = 0 encode_is_empty(z) -{ 0 }-> is_empty(0) :|: x_1 >= 0, z = x_1 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 0 }-> tl(tl(encArg(x_1764))) :|: z = 1 + x_1764, x_1764 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(x_1762))) :|: x_1762 >= 0, z = 1 + x_1762 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(x_1763))) :|: z = 1 + x_1763, x_1763 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(2) :|: z = 2 encode_tl(z) -{ 0 }-> tl(1) :|: z = 1 encode_tl(z) -{ 0 }-> tl(0) :|: z = 0 encode_tl(z) -{ 0 }-> tl(0) :|: x_1 >= 0, z = x_1 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ifappend(z, z', z'') -{ 1 }-> l2 :|: z = l1, z' = l2, l1 >= 0, l2 >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, l2) :|: z'' = 1 + x + l, z = l1, x >= 0, l >= 0, z' = l2, l1 >= 0, l2 >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (15) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: is_empty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(l1, l2, l1) :|: z = l1, z' = l2, l1 >= 0, l2 >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(x_114))) :|: z = 1 + (1 + x_114), x_114 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(x_112))) :|: x_112 >= 0, z = 1 + (1 + x_112) encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(x_113))) :|: x_113 >= 0, z = 1 + (1 + x_113) encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(x_12))) :|: z = 1 + (1 + x_12), x_12 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(x_1''))) :|: z = 1 + (1 + x_1''), x_1'' >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(x_11))) :|: x_11 >= 0, z = 1 + (1 + x_11) encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(x_18))) :|: z = 1 + (1 + x_18), x_18 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(x_16))) :|: x_16 >= 0, z = 1 + (1 + x_16) encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(x_17))) :|: x_17 >= 0, z = 1 + (1 + x_17) encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z = 1 + x_1, x_1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_append(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 encode_cons(z, z') -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, x_2 >= 0, z = x_1, z' = x_2 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(x_1758))) :|: z = 1 + x_1758, x_1758 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(x_1756))) :|: x_1756 >= 0, z = 1 + x_1756 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(x_1757))) :|: z = 1 + x_1757, x_1757 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: x_1 >= 0, z = x_1, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, x_3 >= 0, x_2 >= 0, z = x_1, z' = x_2, z'' = x_3 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(x_1752))) :|: x_1752 >= 0, z = 1 + x_1752 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(x_1750))) :|: x_1750 >= 0, z = 1 + x_1750 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(x_1751))) :|: x_1751 >= 0, z = 1 + x_1751 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: x_1 >= 0, z = x_1, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(x_1764))) :|: z = 1 + x_1764, x_1764 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(x_1762))) :|: x_1762 >= 0, z = 1 + x_1762 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(x_1763))) :|: z = 1 + x_1763, x_1763 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: x_1 >= 0, z = x_1, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ifappend(z, z', z'') -{ 1 }-> l2 :|: z = l1, z' = l2, l1 >= 0, l2 >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, l2) :|: z'' = 1 + x + l, z = l1, x >= 0, l >= 0, z' = l2, l1 >= 0, l2 >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 ---------------------------------------- (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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 ---------------------------------------- (19) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { is_empty } { encode_false } { tl } { hd } { encode_nil } { ifappend, append } { encode_true } { encArg } { encode_tl } { encode_ifappend } { encode_append } { encode_cons } { encode_hd } { encode_is_empty } ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {is_empty}, {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} ---------------------------------------- (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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {is_empty}, {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} ---------------------------------------- (23) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: is_empty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {is_empty}, {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: ?, size: O(1) [2] ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: is_empty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] ---------------------------------------- (29) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_false after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_false}, {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: ?, size: O(1) [0] ---------------------------------------- (31) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_false 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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] ---------------------------------------- (35) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: tl 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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {tl}, {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: ?, size: O(n^1) [z] ---------------------------------------- (37) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: tl after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], 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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (41) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: hd after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z ---------------------------------------- (42) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {hd}, {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: ?, size: O(n^1) [z] ---------------------------------------- (43) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: hd 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: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (45) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (46) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] ---------------------------------------- (47) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_nil after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (48) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_nil}, {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: ?, size: O(1) [1] ---------------------------------------- (49) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_nil after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 ---------------------------------------- (50) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (51) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (52) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (53) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using KoAT for: ifappend after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z' + z'' Computed SIZE bound using CoFloCo for: append after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: z + z' ---------------------------------------- (54) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {ifappend,append}, {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: ?, size: O(n^1) [z' + z''] append: runtime: ?, size: O(n^1) [z + z'] ---------------------------------------- (55) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: ifappend after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 3 + 2*z'' Computed RUNTIME bound using CoFloCo for: append after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 4 + 2*z ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 1 }-> ifappend(z, z', z) :|: z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 1 }-> 1 + x + append(l, z') :|: z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] ---------------------------------------- (57) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (58) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] ---------------------------------------- (59) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_true after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (60) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_true}, {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: ?, size: O(1) [2] ---------------------------------------- (61) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encode_true 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: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (63) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (64) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] ---------------------------------------- (65) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 2 + 5*z ---------------------------------------- (66) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encArg}, {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: ?, size: O(n^1) [2 + 5*z] ---------------------------------------- (67) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: encArg after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 1 + 12*z + 10*z^2 ---------------------------------------- (68) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> tl(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(ifappend(encArg(x_116), encArg(x_27), encArg(x_31))) :|: x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 0 }-> tl(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> tl(append(encArg(x_115), encArg(x_26))) :|: x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 0 }-> tl(1 + encArg(x_111) + encArg(x_25)) :|: z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 0 }-> is_empty(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(ifappend(encArg(x_14), encArg(x_21), encArg(x_3'))) :|: z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 0 }-> is_empty(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> is_empty(append(encArg(x_13), encArg(x_2''))) :|: x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 0 }-> is_empty(1 + encArg(x_1') + encArg(x_2')) :|: z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 0 }-> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) :|: x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 0 }-> hd(tl(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(is_empty(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(ifappend(encArg(x_110), encArg(x_24), encArg(x_3''))) :|: x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 0 }-> hd(hd(encArg(z - 2))) :|: z - 2 >= 0 encArg(z) -{ 0 }-> hd(append(encArg(x_19), encArg(x_23))) :|: z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 0 }-> hd(1 + encArg(x_15) + encArg(x_22)) :|: x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 0 }-> append(encArg(x_1), encArg(x_2)) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 1 + encArg(x_1) + encArg(x_2) :|: x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 0 }-> append(encArg(z), encArg(z')) :|: z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 1 + encArg(z) + encArg(z') :|: z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> hd(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(ifappend(encArg(x_1760), encArg(x_2379), encArg(x_3125))) :|: x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 0 }-> hd(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_hd(z) -{ 0 }-> hd(append(encArg(x_1759), encArg(x_2378))) :|: z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 0 }-> hd(1 + encArg(x_1755) + encArg(x_2377)) :|: x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 0 }-> ifappend(encArg(z), encArg(z'), encArg(z'')) :|: z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 0 }-> is_empty(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(ifappend(encArg(x_1754), encArg(x_2376), encArg(x_3124))) :|: x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_is_empty(z) -{ 0 }-> is_empty(append(encArg(x_1753), encArg(x_2375))) :|: x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 0 }-> is_empty(1 + encArg(x_1749) + encArg(x_2374)) :|: x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 0 }-> tl(tl(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(is_empty(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(ifappend(encArg(x_1766), encArg(x_2382), encArg(x_3126))) :|: x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 0 }-> tl(hd(encArg(z - 1))) :|: z - 1 >= 0 encode_tl(z) -{ 0 }-> tl(append(encArg(x_1765), encArg(x_2381))) :|: x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 0 }-> tl(1 + encArg(x_1761) + encArg(x_2380)) :|: x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] ---------------------------------------- (69) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (70) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] ---------------------------------------- (71) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_tl after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 5*z ---------------------------------------- (72) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_tl}, {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: ?, size: O(n^1) [5*z] ---------------------------------------- (73) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_tl after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 30 + 104*z + 100*z^2 ---------------------------------------- (74) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] ---------------------------------------- (75) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (76) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] ---------------------------------------- (77) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_ifappend after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 4 + 5*z' + 5*z'' ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_ifappend}, {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: ?, size: O(n^1) [4 + 5*z' + 5*z''] ---------------------------------------- (79) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_ifappend after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2 ---------------------------------------- (80) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] ---------------------------------------- (81) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (82) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] ---------------------------------------- (83) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_append after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 4 + 5*z + 5*z' ---------------------------------------- (84) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_append}, {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: ?, size: O(n^1) [4 + 5*z + 5*z'] ---------------------------------------- (85) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_append after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 10 + 22*z + 10*z^2 + 12*z' + 10*z'^2 ---------------------------------------- (86) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] ---------------------------------------- (87) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (88) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] ---------------------------------------- (89) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_cons after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 5 + 5*z + 5*z' ---------------------------------------- (90) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_cons}, {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: ?, size: O(n^1) [5 + 5*z + 5*z'] ---------------------------------------- (91) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_cons after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 ---------------------------------------- (92) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] ---------------------------------------- (93) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (94) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] ---------------------------------------- (95) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_hd after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 5*z ---------------------------------------- (96) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_hd}, {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] encode_hd: runtime: ?, size: O(n^1) [5*z] ---------------------------------------- (97) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_hd after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 30 + 104*z + 100*z^2 ---------------------------------------- (98) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] encode_hd: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] ---------------------------------------- (99) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (100) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] encode_hd: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] ---------------------------------------- (101) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: encode_is_empty after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 2 ---------------------------------------- (102) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: {encode_is_empty} Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] encode_hd: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_is_empty: runtime: ?, size: O(1) [2] ---------------------------------------- (103) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: encode_is_empty after applying outer abstraction to obtain an ITS, resulting in: O(n^2) with polynomial bound: 31 + 104*z + 100*z^2 ---------------------------------------- (104) Obligation: Complexity RNTS consisting of the following rules: append(z, z') -{ 4 + 2*z }-> s :|: s >= 0, s <= z' + z, z >= 0, z' >= 0 encArg(z) -{ 1 }-> l :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> l :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 7 + 2*s102 + 12*x_116 + 10*x_116^2 + 12*x_27 + 10*x_27^2 + 12*x_31 + 10*x_31^2 }-> s104 :|: s100 >= 0, s100 <= 5 * x_116 + 2, s101 >= 0, s101 <= 5 * x_27 + 2, s102 >= 0, s102 <= 5 * x_31 + 2, s103 >= 0, s103 <= s101 + s102, s104 >= 0, s104 <= s103, x_116 >= 0, z = 1 + (1 + x_116 + x_27 + x_31), x_27 >= 0, x_31 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s122 :|: s120 >= 0, s120 <= 5 * (z - 2) + 2, s121 >= 0, s121 <= s120, s122 >= 0, s122 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s125 :|: s123 >= 0, s123 <= 5 * (z - 2) + 2, s124 >= 0, s124 <= 2, s125 >= 0, s125 <= s124, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s134 :|: s132 >= 0, s132 <= 5 * (z - 2) + 2, s133 >= 0, s133 <= s132, s134 >= 0, s134 <= s133, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s137 :|: s135 >= 0, s135 <= 5 * (z - 2) + 2, s136 >= 0, s136 <= s135, s137 >= 0, s137 <= s136, z - 2 >= 0 encArg(z) -{ 3 + 12*x_1' + 10*x_1'^2 + 12*x_2' + 10*x_2'^2 }-> s20 :|: s18 >= 0, s18 <= 5 * x_1' + 2, s19 >= 0, s19 <= 5 * x_2' + 2, s20 >= 0, s20 <= 2, z = 1 + (1 + x_1' + x_2'), x_2' >= 0, x_1' >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s23 :|: s21 >= 0, s21 <= 5 * (z - 2) + 2, s22 >= 0, s22 <= 2, s23 >= 0, s23 <= 2, z - 2 >= 0 encArg(z) -{ 7 + 2*s24 + 12*x_13 + 10*x_13^2 + 12*x_2'' + 10*x_2''^2 }-> s27 :|: s24 >= 0, s24 <= 5 * x_13 + 2, s25 >= 0, s25 <= 5 * x_2'' + 2, s26 >= 0, s26 <= s24 + s25, s27 >= 0, s27 <= 2, x_13 >= 0, x_2'' >= 0, z = 1 + (1 + x_13 + x_2'') encArg(z) -{ 7 + 2*s30 + 12*x_14 + 10*x_14^2 + 12*x_21 + 10*x_21^2 + 12*x_3' + 10*x_3'^2 }-> s32 :|: s28 >= 0, s28 <= 5 * x_14 + 2, s29 >= 0, s29 <= 5 * x_21 + 2, s30 >= 0, s30 <= 5 * x_3' + 2, s31 >= 0, s31 <= s29 + s30, s32 >= 0, s32 <= 2, z = 1 + (1 + x_14 + x_21 + x_3'), x_14 >= 0, x_3' >= 0, x_21 >= 0 encArg(z) -{ 6 + 2*s2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> s4 :|: s2 >= 0, s2 <= 5 * x_1 + 2, s3 >= 0, s3 <= 5 * x_2 + 2, s4 >= 0, s4 <= s2 + s3, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encArg(z) -{ 3 + 12*x_15 + 10*x_15^2 + 12*x_22 + 10*x_22^2 }-> s50 :|: s48 >= 0, s48 <= 5 * x_15 + 2, s49 >= 0, s49 <= 5 * x_22 + 2, s50 >= 0, s50 <= 1 + s48 + s49, x_15 >= 0, z = 1 + (1 + x_15 + x_22), x_22 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s53 :|: s51 >= 0, s51 <= 5 * (z - 2) + 2, s52 >= 0, s52 <= s51, s53 >= 0, s53 <= s52, z - 2 >= 0 encArg(z) -{ 7 + 2*s54 + 12*x_19 + 10*x_19^2 + 12*x_23 + 10*x_23^2 }-> s57 :|: s54 >= 0, s54 <= 5 * x_19 + 2, s55 >= 0, s55 <= 5 * x_23 + 2, s56 >= 0, s56 <= s54 + s55, s57 >= 0, s57 <= s56, z = 1 + (1 + x_19 + x_23), x_23 >= 0, x_19 >= 0 encArg(z) -{ 7 + 2*s60 + 12*x_110 + 10*x_110^2 + 12*x_24 + 10*x_24^2 + 12*x_3'' + 10*x_3''^2 }-> s62 :|: s58 >= 0, s58 <= 5 * x_110 + 2, s59 >= 0, s59 <= 5 * x_24 + 2, s60 >= 0, s60 <= 5 * x_3'' + 2, s61 >= 0, s61 <= s59 + s60, s62 >= 0, s62 <= s61, x_24 >= 0, z = 1 + (1 + x_110 + x_24 + x_3''), x_110 >= 0, x_3'' >= 0 encArg(z) -{ 6 + 2*s7 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 + 12*x_3 + 10*x_3^2 }-> s8 :|: s5 >= 0, s5 <= 5 * x_1 + 2, s6 >= 0, s6 <= 5 * x_2 + 2, s7 >= 0, s7 <= 5 * x_3 + 2, s8 >= 0, s8 <= s6 + s7, x_1 >= 0, z = 1 + x_1 + x_2 + x_3, x_3 >= 0, x_2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s80 :|: s78 >= 0, s78 <= 5 * (z - 2) + 2, s79 >= 0, s79 <= s78, s80 >= 0, s80 <= 2, z - 2 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s83 :|: s81 >= 0, s81 <= 5 * (z - 2) + 2, s82 >= 0, s82 <= 2, s83 >= 0, s83 <= s82, z - 2 >= 0 encArg(z) -{ 3 + 12*x_111 + 10*x_111^2 + 12*x_25 + 10*x_25^2 }-> s92 :|: s90 >= 0, s90 <= 5 * x_111 + 2, s91 >= 0, s91 <= 5 * x_25 + 2, s92 >= 0, s92 <= 1 + s90 + s91, z = 1 + (1 + x_111 + x_25), x_25 >= 0, x_111 >= 0 encArg(z) -{ 19 + -28*z + 10*z^2 }-> s95 :|: s93 >= 0, s93 <= 5 * (z - 2) + 2, s94 >= 0, s94 <= s93, s95 >= 0, s95 <= s94, z - 2 >= 0 encArg(z) -{ 7 + 2*s96 + 12*x_115 + 10*x_115^2 + 12*x_26 + 10*x_26^2 }-> s99 :|: s96 >= 0, s96 <= 5 * x_115 + 2, s97 >= 0, s97 <= 5 * x_26 + 2, s98 >= 0, s98 <= s96 + s97, s99 >= 0, s99 <= s98, x_26 >= 0, x_115 >= 0, z = 1 + (1 + x_115 + x_26) encArg(z) -{ 1 }-> x :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 1 }-> x :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 2 :|: z = 2 encArg(z) -{ 1 }-> 2 :|: z = 1 + 1, 1 = 1 encArg(z) -{ 0 }-> 1 :|: z = 1 encArg(z) -{ 0 }-> 0 :|: z = 0 encArg(z) -{ 0 }-> 0 :|: z >= 0 encArg(z) -{ 0 }-> 0 :|: z = 1 + 1, v0 >= 0, 1 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 1, x >= 0, l >= 0, 1 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 2, v0 >= 0, 2 = v0 encArg(z) -{ 1 }-> 0 :|: z = 1 + 2, x >= 0, l >= 0, 2 = 1 + x + l encArg(z) -{ 0 }-> 0 :|: z = 1 + 0, v0 >= 0, 0 = v0 encArg(z) -{ 0 }-> 0 :|: z - 1 >= 0, v0 >= 0, 0 = v0 encArg(z) -{ 2 + 12*x_1 + 10*x_1^2 + 12*x_2 + 10*x_2^2 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 5 * x_1 + 2, s1 >= 0, s1 <= 5 * x_2 + 2, x_1 >= 0, z = 1 + x_1 + x_2, x_2 >= 0 encode_append(z, z') -{ 6 + 2*s11 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> s13 :|: s11 >= 0, s11 <= 5 * z + 2, s12 >= 0, s12 <= 5 * z' + 2, s13 >= 0, s13 <= s11 + s12, z >= 0, z' >= 0 encode_append(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 encode_cons(z, z') -{ 2 + 12*z + 10*z^2 + 12*z' + 10*z'^2 }-> 1 + s9 + s10 :|: s9 >= 0, s9 <= 5 * z + 2, s10 >= 0, s10 <= 5 * z' + 2, z >= 0, z' >= 0 encode_false -{ 0 }-> 0 :|: encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s140 :|: s138 >= 0, s138 <= 5 * (z - 1) + 2, s139 >= 0, s139 <= s138, s140 >= 0, s140 <= s139, z - 1 >= 0 encode_hd(z) -{ 3 + 12*x_1755 + 10*x_1755^2 + 12*x_2377 + 10*x_2377^2 }-> s65 :|: s63 >= 0, s63 <= 5 * x_1755 + 2, s64 >= 0, s64 <= 5 * x_2377 + 2, s65 >= 0, s65 <= 1 + s63 + s64, x_1755 >= 0, z = 1 + x_1755 + x_2377, x_2377 >= 0 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s68 :|: s66 >= 0, s66 <= 5 * (z - 1) + 2, s67 >= 0, s67 <= s66, s68 >= 0, s68 <= s67, z - 1 >= 0 encode_hd(z) -{ 7 + 2*s69 + 12*x_1759 + 10*x_1759^2 + 12*x_2378 + 10*x_2378^2 }-> s72 :|: s69 >= 0, s69 <= 5 * x_1759 + 2, s70 >= 0, s70 <= 5 * x_2378 + 2, s71 >= 0, s71 <= s69 + s70, s72 >= 0, s72 <= s71, z = 1 + x_1759 + x_2378, x_1759 >= 0, x_2378 >= 0 encode_hd(z) -{ 7 + 2*s75 + 12*x_1760 + 10*x_1760^2 + 12*x_2379 + 10*x_2379^2 + 12*x_3125 + 10*x_3125^2 }-> s77 :|: s73 >= 0, s73 <= 5 * x_1760 + 2, s74 >= 0, s74 <= 5 * x_2379 + 2, s75 >= 0, s75 <= 5 * x_3125 + 2, s76 >= 0, s76 <= s74 + s75, s77 >= 0, s77 <= s76, x_2379 >= 0, x_3125 >= 0, x_1760 >= 0, z = 1 + x_1760 + x_2379 + x_3125 encode_hd(z) -{ 1 + -8*z + 10*z^2 }-> s89 :|: s87 >= 0, s87 <= 5 * (z - 1) + 2, s88 >= 0, s88 <= 2, s89 >= 0, s89 <= s88, z - 1 >= 0 encode_hd(z) -{ 1 }-> x :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_hd(z) -{ 1 }-> x :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_hd(z) -{ 0 }-> 0 :|: z >= 0 encode_hd(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_hd(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_hd(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_ifappend(z, z', z'') -{ 6 + 2*s16 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 12*z'' + 10*z''^2 }-> s17 :|: s14 >= 0, s14 <= 5 * z + 2, s15 >= 0, s15 <= 5 * z' + 2, s16 >= 0, s16 <= 5 * z'' + 2, s17 >= 0, s17 <= s15 + s16, z >= 0, z'' >= 0, z' >= 0 encode_ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s128 :|: s126 >= 0, s126 <= 5 * (z - 1) + 2, s127 >= 0, s127 <= s126, s128 >= 0, s128 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 3 + 12*x_1749 + 10*x_1749^2 + 12*x_2374 + 10*x_2374^2 }-> s35 :|: s33 >= 0, s33 <= 5 * x_1749 + 2, s34 >= 0, s34 <= 5 * x_2374 + 2, s35 >= 0, s35 <= 2, x_1749 >= 0, z = 1 + x_1749 + x_2374, x_2374 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s38 :|: s36 >= 0, s36 <= 5 * (z - 1) + 2, s37 >= 0, s37 <= 2, s38 >= 0, s38 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 7 + 2*s39 + 12*x_1753 + 10*x_1753^2 + 12*x_2375 + 10*x_2375^2 }-> s42 :|: s39 >= 0, s39 <= 5 * x_1753 + 2, s40 >= 0, s40 <= 5 * x_2375 + 2, s41 >= 0, s41 <= s39 + s40, s42 >= 0, s42 <= 2, x_2375 >= 0, x_1753 >= 0, z = 1 + x_1753 + x_2375 encode_is_empty(z) -{ 7 + 2*s45 + 12*x_1754 + 10*x_1754^2 + 12*x_2376 + 10*x_2376^2 + 12*x_3124 + 10*x_3124^2 }-> s47 :|: s43 >= 0, s43 <= 5 * x_1754 + 2, s44 >= 0, s44 <= 5 * x_2376 + 2, s45 >= 0, s45 <= 5 * x_3124 + 2, s46 >= 0, s46 <= s44 + s45, s47 >= 0, s47 <= 2, x_3124 >= 0, x_2376 >= 0, z = 1 + x_1754 + x_2376 + x_3124, x_1754 >= 0 encode_is_empty(z) -{ 1 + -8*z + 10*z^2 }-> s86 :|: s84 >= 0, s84 <= 5 * (z - 1) + 2, s85 >= 0, s85 <= s84, s86 >= 0, s86 <= 2, z - 1 >= 0 encode_is_empty(z) -{ 1 }-> 2 :|: z = 1, 1 = 1 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0 encode_is_empty(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_is_empty(z) -{ 1 }-> 0 :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_is_empty(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_is_empty(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_nil -{ 0 }-> 1 :|: encode_nil -{ 0 }-> 0 :|: encode_tl(z) -{ 1 }-> l :|: z = 1, x >= 0, l >= 0, 1 = 1 + x + l encode_tl(z) -{ 1 }-> l :|: z = 2, x >= 0, l >= 0, 2 = 1 + x + l encode_tl(z) -{ 3 + 12*x_1761 + 10*x_1761^2 + 12*x_2380 + 10*x_2380^2 }-> s107 :|: s105 >= 0, s105 <= 5 * x_1761 + 2, s106 >= 0, s106 <= 5 * x_2380 + 2, s107 >= 0, s107 <= 1 + s105 + s106, x_1761 >= 0, z = 1 + x_1761 + x_2380, x_2380 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s110 :|: s108 >= 0, s108 <= 5 * (z - 1) + 2, s109 >= 0, s109 <= s108, s110 >= 0, s110 <= s109, z - 1 >= 0 encode_tl(z) -{ 7 + 2*s111 + 12*x_1765 + 10*x_1765^2 + 12*x_2381 + 10*x_2381^2 }-> s114 :|: s111 >= 0, s111 <= 5 * x_1765 + 2, s112 >= 0, s112 <= 5 * x_2381 + 2, s113 >= 0, s113 <= s111 + s112, s114 >= 0, s114 <= s113, x_2381 >= 0, z = 1 + x_1765 + x_2381, x_1765 >= 0 encode_tl(z) -{ 7 + 2*s117 + 12*x_1766 + 10*x_1766^2 + 12*x_2382 + 10*x_2382^2 + 12*x_3126 + 10*x_3126^2 }-> s119 :|: s115 >= 0, s115 <= 5 * x_1766 + 2, s116 >= 0, s116 <= 5 * x_2382 + 2, s117 >= 0, s117 <= 5 * x_3126 + 2, s118 >= 0, s118 <= s116 + s117, s119 >= 0, s119 <= s118, x_1766 >= 0, x_2382 >= 0, x_3126 >= 0, z = 1 + x_1766 + x_2382 + x_3126 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s131 :|: s129 >= 0, s129 <= 5 * (z - 1) + 2, s130 >= 0, s130 <= 2, s131 >= 0, s131 <= s130, z - 1 >= 0 encode_tl(z) -{ 1 + -8*z + 10*z^2 }-> s143 :|: s141 >= 0, s141 <= 5 * (z - 1) + 2, s142 >= 0, s142 <= s141, s143 >= 0, s143 <= s142, z - 1 >= 0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0 encode_tl(z) -{ 0 }-> 0 :|: z = 1, v0 >= 0, 1 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 2, v0 >= 0, 2 = v0 encode_tl(z) -{ 0 }-> 0 :|: z = 0, v0 >= 0, 0 = v0 encode_tl(z) -{ 0 }-> 0 :|: z >= 0, v0 >= 0, 0 = v0 encode_true -{ 0 }-> 2 :|: encode_true -{ 0 }-> 0 :|: hd(z) -{ 1 }-> x :|: x >= 0, l >= 0, z = 1 + x + l hd(z) -{ 0 }-> 0 :|: z >= 0 ifappend(z, z', z'') -{ 1 }-> z' :|: z >= 0, z' >= 0, z'' = 1 ifappend(z, z', z'') -{ 0 }-> 0 :|: z >= 0, z' >= 0, z'' >= 0 ifappend(z, z', z'') -{ 5 + 2*l }-> 1 + x + s' :|: s' >= 0, s' <= l + z', z'' = 1 + x + l, x >= 0, l >= 0, z >= 0, z' >= 0 is_empty(z) -{ 1 }-> 2 :|: z = 1 is_empty(z) -{ 1 }-> 0 :|: x >= 0, l >= 0, z = 1 + x + l is_empty(z) -{ 0 }-> 0 :|: z >= 0 tl(z) -{ 1 }-> l :|: x >= 0, l >= 0, z = 1 + x + l tl(z) -{ 0 }-> 0 :|: z >= 0 Function symbols to be analyzed: Previous analysis results are: is_empty: runtime: O(1) [1], size: O(1) [2] encode_false: runtime: O(1) [0], size: O(1) [0] tl: runtime: O(1) [1], size: O(n^1) [z] hd: runtime: O(1) [1], size: O(n^1) [z] encode_nil: runtime: O(1) [0], size: O(1) [1] ifappend: runtime: O(n^1) [3 + 2*z''], size: O(n^1) [z' + z''] append: runtime: O(n^1) [4 + 2*z], size: O(n^1) [z + z'] encode_true: runtime: O(1) [0], size: O(1) [2] encArg: runtime: O(n^2) [1 + 12*z + 10*z^2], size: O(n^1) [2 + 5*z] encode_tl: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_ifappend: runtime: O(n^2) [10 + 12*z + 10*z^2 + 12*z' + 10*z'^2 + 22*z'' + 10*z''^2], size: O(n^1) [4 + 5*z' + 5*z''] encode_append: runtime: O(n^2) [10 + 22*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [4 + 5*z + 5*z'] encode_cons: runtime: O(n^2) [2 + 12*z + 10*z^2 + 12*z' + 10*z'^2], size: O(n^1) [5 + 5*z + 5*z'] encode_hd: runtime: O(n^2) [30 + 104*z + 100*z^2], size: O(n^1) [5*z] encode_is_empty: runtime: O(n^2) [31 + 104*z + 100*z^2], size: O(1) [2] ---------------------------------------- (105) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (106) BOUNDS(1, n^2) ---------------------------------------- (107) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (108) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) The (relative) TRS S consists of the following rules: encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Rewrite Strategy: INNERMOST ---------------------------------------- (109) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (110) Obligation: Innermost TRS: Rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Types: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hole_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend1_0 :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0 :: Nat -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ---------------------------------------- (111) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: append, ifappend, encArg They will be analysed ascendingly in the following order: append = ifappend append < encArg ifappend < encArg ---------------------------------------- (112) Obligation: Innermost TRS: Rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Types: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hole_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend1_0 :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0 :: Nat -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend Generator Equations: gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0) <=> nil gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(x, 1)) <=> cons(nil, gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(x)) The following defined symbols remain to be analysed: ifappend, append, encArg They will be analysed ascendingly in the following order: append = ifappend append < encArg ifappend < encArg ---------------------------------------- (113) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: append(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n16837_0), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b)) -> gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n16837_0, b)), rt in Omega(1 + n16837_0) Induction Base: append(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b)) ->_R^Omega(1) ifappend(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0)) ->_R^Omega(1) gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b) Induction Step: append(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n16837_0, 1)), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b)) ->_R^Omega(1) ifappend(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n16837_0, 1)), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n16837_0, 1))) ->_R^Omega(1) cons(nil, append(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n16837_0), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b))) ->_IH cons(nil, gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(b, c16838_0))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (114) Complex Obligation (BEST) ---------------------------------------- (115) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Types: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hole_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend1_0 :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0 :: Nat -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend Generator Equations: gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0) <=> nil gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(x, 1)) <=> cons(nil, gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(x)) The following defined symbols remain to be analysed: append, encArg They will be analysed ascendingly in the following order: append = ifappend append < encArg ifappend < encArg ---------------------------------------- (116) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (117) BOUNDS(n^1, INF) ---------------------------------------- (118) Obligation: Innermost TRS: Rules: is_empty(nil) -> true is_empty(cons(x, l)) -> false hd(cons(x, l)) -> x tl(cons(x, l)) -> l append(l1, l2) -> ifappend(l1, l2, l1) ifappend(l1, l2, nil) -> l2 ifappend(l1, l2, cons(x, l)) -> cons(x, append(l, l2)) encArg(nil) -> nil encArg(true) -> true encArg(cons(x_1, x_2)) -> cons(encArg(x_1), encArg(x_2)) encArg(false) -> false encArg(cons_is_empty(x_1)) -> is_empty(encArg(x_1)) encArg(cons_hd(x_1)) -> hd(encArg(x_1)) encArg(cons_tl(x_1)) -> tl(encArg(x_1)) encArg(cons_append(x_1, x_2)) -> append(encArg(x_1), encArg(x_2)) encArg(cons_ifappend(x_1, x_2, x_3)) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) encode_is_empty(x_1) -> is_empty(encArg(x_1)) encode_nil -> nil encode_true -> true encode_cons(x_1, x_2) -> cons(encArg(x_1), encArg(x_2)) encode_false -> false encode_hd(x_1) -> hd(encArg(x_1)) encode_tl(x_1) -> tl(encArg(x_1)) encode_append(x_1, x_2) -> append(encArg(x_1), encArg(x_2)) encode_ifappend(x_1, x_2, x_3) -> ifappend(encArg(x_1), encArg(x_2), encArg(x_3)) Types: is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encArg :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend cons_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_is_empty :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_nil :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_true :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_cons :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_false :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_hd :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_tl :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_append :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend encode_ifappend :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend hole_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend1_0 :: nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0 :: Nat -> nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend Lemmas: append(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n16837_0), gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(b)) -> gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n16837_0, b)), rt in Omega(1 + n16837_0) Generator Equations: gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0) <=> nil gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(x, 1)) <=> cons(nil, gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(x)) The following defined symbols remain to be analysed: ifappend, encArg They will be analysed ascendingly in the following order: append = ifappend append < encArg ifappend < encArg ---------------------------------------- (119) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: encArg(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n18477_0)) -> gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n18477_0), rt in Omega(0) Induction Base: encArg(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(0)) ->_R^Omega(0) nil Induction Step: encArg(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(+(n18477_0, 1))) ->_R^Omega(0) cons(encArg(nil), encArg(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n18477_0))) ->_R^Omega(0) cons(nil, encArg(gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(n18477_0))) ->_IH cons(nil, gen_nil:true:cons:false:cons_is_empty:cons_hd:cons_tl:cons_append:cons_ifappend2_0(c18478_0)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (120) BOUNDS(1, INF)