WORST_CASE(Omega(n^1),?) proof of /export/starexec/sandbox/benchmark/theBenchmark.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 1560 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 11 ms] (6) typed CpxTrs (7) OrderProof [LOWER BOUND(ID), 0 ms] (8) typed CpxTrs (9) RewriteLemmaProof [LOWER BOUND(ID), 517 ms] (10) typed CpxTrs (11) RewriteLemmaProof [LOWER BOUND(ID), 7261 ms] (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 2007 ms] (14) BEST (15) proven lower bound (16) LowerBoundPropagationProof [FINISHED, 0 ms] (17) BOUNDS(n^1, INF) (18) typed CpxTrs ---------------------------------------- (0) 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: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0) -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0) -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0) -> c31 The (relative) TRS S consists of the following rules: a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0) -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0) -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 Rewrite Strategy: INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) 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: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0) -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0) -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0) -> c31 The (relative) TRS S consists of the following rules: a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0) -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0) -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 Rewrite Strategy: INNERMOST ---------------------------------------- (3) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (4) 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: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 The (relative) TRS S consists of the following rules: a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Rewrite Strategy: INNERMOST ---------------------------------------- (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (6) Obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 ---------------------------------------- (7) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__U11, a__isNat, A__ISNAT, A__U31, MARK, A__U41, A__U42, A__PLUS, mark, a__U11, a__U31, a__U41, a__U42, a__plus They will be analysed ascendingly in the following order: a__isNat < A__U11 A__U11 = A__ISNAT A__U11 < MARK a__isNat < A__ISNAT a__isNat < A__U41 a__isNat < A__PLUS a__isNat < mark a__isNat = a__U11 a__isNat < a__U41 a__isNat < a__plus A__ISNAT < MARK A__ISNAT < A__U41 A__ISNAT < A__PLUS A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS mark < MARK A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS mark < A__U42 a__U11 < mark mark = a__U31 mark = a__U41 mark = a__U42 mark = a__plus a__U31 = a__U41 a__U31 = a__U42 a__U31 = a__plus a__U41 = a__U42 a__U41 = a__plus a__U42 = a__plus ---------------------------------------- (8) Obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 Generator Equations: gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0) <=> tt gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(x, 1)) <=> plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(x), tt) gen_c13:c14:c15:c1612_32(0) <=> c13 gen_c13:c14:c15:c1612_32(+(x, 1)) <=> c14(c(c2, c13), gen_c13:c14:c15:c1612_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(0) <=> c22(c13) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(+(x, 1)) <=> c20(c(c2, c13), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(x)) The following defined symbols remain to be analysed: a__U11, A__U11, a__isNat, A__ISNAT, A__U31, MARK, A__U41, A__U42, A__PLUS, mark, a__U31, a__U41, a__U42, a__plus They will be analysed ascendingly in the following order: a__isNat < A__U11 A__U11 = A__ISNAT A__U11 < MARK a__isNat < A__ISNAT a__isNat < A__U41 a__isNat < A__PLUS a__isNat < mark a__isNat = a__U11 a__isNat < a__U41 a__isNat < a__plus A__ISNAT < MARK A__ISNAT < A__U41 A__ISNAT < A__PLUS A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS mark < MARK A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS mark < A__U42 a__U11 < mark mark = a__U31 mark = a__U41 mark = a__U42 mark = a__plus a__U31 = a__U41 a__U31 = a__U42 a__U31 = a__plus a__U41 = a__U42 a__U41 = a__plus a__U42 = a__plus ---------------------------------------- (9) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))) -> *14_32, rt in Omega(0) Induction Base: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, 0))) Induction Step: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, +(n963_32, 1)))) ->_R^Omega(0) a__U11(a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))), tt) ->_IH a__U11(*14_32, tt) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (10) Obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 Lemmas: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))) -> *14_32, rt in Omega(0) Generator Equations: gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0) <=> tt gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(x, 1)) <=> plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(x), tt) gen_c13:c14:c15:c1612_32(0) <=> c13 gen_c13:c14:c15:c1612_32(+(x, 1)) <=> c14(c(c2, c13), gen_c13:c14:c15:c1612_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(0) <=> c22(c13) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(+(x, 1)) <=> c20(c(c2, c13), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(x)) The following defined symbols remain to be analysed: a__U11, A__U11, A__ISNAT, A__U31, MARK, A__U41, A__U42, A__PLUS, mark, a__U31, a__U41, a__U42, a__plus They will be analysed ascendingly in the following order: a__isNat < A__U11 A__U11 = A__ISNAT A__U11 < MARK a__isNat < A__ISNAT a__isNat < A__U41 a__isNat < A__PLUS a__isNat < mark a__isNat = a__U11 a__isNat < a__U41 a__isNat < a__plus A__ISNAT < MARK A__ISNAT < A__U41 A__ISNAT < A__PLUS A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS mark < MARK A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS mark < A__U42 a__U11 < mark mark = a__U31 mark = a__U41 mark = a__U42 mark = a__plus a__U31 = a__U41 a__U31 = a__U42 a__U31 = a__plus a__U41 = a__U42 a__U41 = a__plus a__U42 = a__plus ---------------------------------------- (11) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32)) -> gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), rt in Omega(0) Induction Base: mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0)) ->_R^Omega(0) tt Induction Step: mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(n558289_32, 1))) ->_R^Omega(0) a__plus(mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32)), mark(tt)) ->_IH a__plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(c558290_32), mark(tt)) ->_R^Omega(0) a__plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), tt) ->_R^Omega(0) plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), tt) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 Lemmas: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))) -> *14_32, rt in Omega(0) mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32)) -> gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), rt in Omega(0) Generator Equations: gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0) <=> tt gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(x, 1)) <=> plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(x), tt) gen_c13:c14:c15:c1612_32(0) <=> c13 gen_c13:c14:c15:c1612_32(+(x, 1)) <=> c14(c(c2, c13), gen_c13:c14:c15:c1612_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(0) <=> c22(c13) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(+(x, 1)) <=> c20(c(c2, c13), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(x)) The following defined symbols remain to be analysed: a__U41, A__U11, A__ISNAT, A__U31, MARK, A__U41, A__U42, A__PLUS, a__U31, a__U42, a__plus They will be analysed ascendingly in the following order: A__U11 = A__ISNAT A__U11 < MARK A__ISNAT < MARK A__ISNAT < A__U41 A__ISNAT < A__PLUS A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS mark < MARK A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS mark < A__U42 mark = a__U31 mark = a__U41 mark = a__U42 mark = a__plus a__U31 = a__U41 a__U31 = a__U42 a__U31 = a__plus a__U41 = a__U42 a__U41 = a__plus a__U42 = a__plus ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32))) -> *14_32, rt in Omega(n744339_32) Induction Base: MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, 0))) Induction Step: MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, +(n744339_32, 1)))) ->_R^Omega(1) c27(A__PLUS(mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32))), mark(tt)), MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)))) ->_L^Omega(0) c27(A__PLUS(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)), mark(tt)), MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)))) ->_L^Omega(0) c27(A__PLUS(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)), gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0)), MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)))) ->_R^Omega(1) c27(c19, MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32)))) ->_IH c27(c19, *14_32) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (14) Complex Obligation (BEST) ---------------------------------------- (15) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 Lemmas: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))) -> *14_32, rt in Omega(0) mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32)) -> gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), rt in Omega(0) Generator Equations: gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0) <=> tt gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(x, 1)) <=> plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(x), tt) gen_c13:c14:c15:c1612_32(0) <=> c13 gen_c13:c14:c15:c1612_32(+(x, 1)) <=> c14(c(c2, c13), gen_c13:c14:c15:c1612_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(0) <=> c22(c13) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(+(x, 1)) <=> c20(c(c2, c13), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(x)) The following defined symbols remain to be analysed: MARK, A__U31, A__U41, A__U42, A__PLUS They will be analysed ascendingly in the following order: A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS ---------------------------------------- (16) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (17) BOUNDS(n^1, INF) ---------------------------------------- (18) Obligation: Innermost TRS: Rules: A__U11(tt, z0) -> c(A__U12(a__isNat(z0)), A__ISNAT(z0)) A__U11(z0, z1) -> c1 A__U12(tt) -> c2 A__U12(z0) -> c3 A__U21(tt) -> c4 A__U21(z0) -> c5 A__U31(tt, z0) -> c6(MARK(z0)) A__U31(z0, z1) -> c7 A__U41(tt, z0, z1) -> c8(A__U42(a__isNat(z1), z0, z1), A__ISNAT(z1)) A__U41(z0, z1, z2) -> c9 A__U42(tt, z0, z1) -> c10(A__PLUS(mark(z1), mark(z0)), MARK(z1)) A__U42(tt, z0, z1) -> c11(A__PLUS(mark(z1), mark(z0)), MARK(z0)) A__U42(z0, z1, z2) -> c12 A__ISNAT(0') -> c13 A__ISNAT(plus(z0, z1)) -> c14(A__U11(a__isNat(z0), z1), A__ISNAT(z0)) A__ISNAT(s(z0)) -> c15(A__U21(a__isNat(z0)), A__ISNAT(z0)) A__ISNAT(z0) -> c16 A__PLUS(z0, 0') -> c17(A__U31(a__isNat(z0), z0), A__ISNAT(z0)) A__PLUS(z0, s(z1)) -> c18(A__U41(a__isNat(z1), z1, z0), A__ISNAT(z1)) A__PLUS(z0, z1) -> c19 MARK(U11(z0, z1)) -> c20(A__U11(mark(z0), z1), MARK(z0)) MARK(U12(z0)) -> c21(A__U12(mark(z0)), MARK(z0)) MARK(isNat(z0)) -> c22(A__ISNAT(z0)) MARK(U21(z0)) -> c23(A__U21(mark(z0)), MARK(z0)) MARK(U31(z0, z1)) -> c24(A__U31(mark(z0), z1), MARK(z0)) MARK(U41(z0, z1, z2)) -> c25(A__U41(mark(z0), z1, z2), MARK(z0)) MARK(U42(z0, z1, z2)) -> c26(A__U42(mark(z0), z1, z2), MARK(z0)) MARK(plus(z0, z1)) -> c27(A__PLUS(mark(z0), mark(z1)), MARK(z0)) MARK(plus(z0, z1)) -> c28(A__PLUS(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c29 MARK(s(z0)) -> c30(MARK(z0)) MARK(0') -> c31 a__U11(tt, z0) -> a__U12(a__isNat(z0)) a__U11(z0, z1) -> U11(z0, z1) a__U12(tt) -> tt a__U12(z0) -> U12(z0) a__U21(tt) -> tt a__U21(z0) -> U21(z0) a__U31(tt, z0) -> mark(z0) a__U31(z0, z1) -> U31(z0, z1) a__U41(tt, z0, z1) -> a__U42(a__isNat(z1), z0, z1) a__U41(z0, z1, z2) -> U41(z0, z1, z2) a__U42(tt, z0, z1) -> s(a__plus(mark(z1), mark(z0))) a__U42(z0, z1, z2) -> U42(z0, z1, z2) a__isNat(0') -> tt a__isNat(plus(z0, z1)) -> a__U11(a__isNat(z0), z1) a__isNat(s(z0)) -> a__U21(a__isNat(z0)) a__isNat(z0) -> isNat(z0) a__plus(z0, 0') -> a__U31(a__isNat(z0), z0) a__plus(z0, s(z1)) -> a__U41(a__isNat(z1), z1, z0) a__plus(z0, z1) -> plus(z0, z1) mark(U11(z0, z1)) -> a__U11(mark(z0), z1) mark(U12(z0)) -> a__U12(mark(z0)) mark(isNat(z0)) -> a__isNat(z0) mark(U21(z0)) -> a__U21(mark(z0)) mark(U31(z0, z1)) -> a__U31(mark(z0), z1) mark(U41(z0, z1, z2)) -> a__U41(mark(z0), z1, z2) mark(U42(z0, z1, z2)) -> a__U42(mark(z0), z1, z2) mark(plus(z0, z1)) -> a__plus(mark(z0), mark(z1)) mark(tt) -> tt mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' Types: A__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c:c1 tt :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c :: c2:c3 -> c13:c14:c15:c16 -> c:c1 A__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c2:c3 a__isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 A__ISNAT :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c13:c14:c15:c16 c1 :: c:c1 c2 :: c2:c3 c3 :: c2:c3 A__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c4:c5 c4 :: c4:c5 c5 :: c4:c5 A__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c6:c7 c6 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c6:c7 MARK :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c7 :: c6:c7 A__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c8:c9 c8 :: c10:c11:c12 -> c13:c14:c15:c16 -> c8:c9 A__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c10:c11:c12 c9 :: c8:c9 c10 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 A__PLUS :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> c17:c18:c19 mark :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c11 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c10:c11:c12 c12 :: c10:c11:c12 0' :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c13 :: c13:c14:c15:c16 plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c14 :: c:c1 -> c13:c14:c15:c16 -> c13:c14:c15:c16 s :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c15 :: c4:c5 -> c13:c14:c15:c16 -> c13:c14:c15:c16 c16 :: c13:c14:c15:c16 c17 :: c6:c7 -> c13:c14:c15:c16 -> c17:c18:c19 c18 :: c8:c9 -> c13:c14:c15:c16 -> c17:c18:c19 c19 :: c17:c18:c19 U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c20 :: c:c1 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c21 :: c2:c3 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 isNat :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c22 :: c13:c14:c15:c16 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c23 :: c4:c5 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c24 :: c6:c7 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c25 :: c8:c9 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 c26 :: c10:c11:c12 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c27 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c28 :: c17:c18:c19 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c29 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c30 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 c31 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 a__U11 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U12 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U21 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U31 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U41 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__U42 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 a__plus :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c:c11_32 :: c:c1 hole_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U422_32 :: tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 hole_c2:c33_32 :: c2:c3 hole_c13:c14:c15:c164_32 :: c13:c14:c15:c16 hole_c4:c55_32 :: c4:c5 hole_c6:c76_32 :: c6:c7 hole_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c317_32 :: c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 hole_c8:c98_32 :: c8:c9 hole_c10:c11:c129_32 :: c10:c11:c12 hole_c17:c18:c1910_32 :: c17:c18:c19 gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32 :: Nat -> tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U42 gen_c13:c14:c15:c1612_32 :: Nat -> c13:c14:c15:c16 gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32 :: Nat -> c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31 Lemmas: a__isNat(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n963_32))) -> *14_32, rt in Omega(0) mark(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32)) -> gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(n558289_32), rt in Omega(0) MARK(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(1, n744339_32))) -> *14_32, rt in Omega(n744339_32) Generator Equations: gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(0) <=> tt gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(+(x, 1)) <=> plus(gen_tt:0':plus:s:U11:U12:isNat:U21:U31:U41:U4211_32(x), tt) gen_c13:c14:c15:c1612_32(0) <=> c13 gen_c13:c14:c15:c1612_32(+(x, 1)) <=> c14(c(c2, c13), gen_c13:c14:c15:c1612_32(x)) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(0) <=> c22(c13) gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(+(x, 1)) <=> c20(c(c2, c13), gen_c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c3113_32(x)) The following defined symbols remain to be analysed: A__U31, A__U41, A__U42, A__PLUS They will be analysed ascendingly in the following order: A__U31 = MARK A__U31 = A__U41 A__U31 = A__U42 A__U31 = A__PLUS MARK = A__U41 MARK = A__U42 MARK = A__PLUS A__U41 = A__U42 A__U41 = A__PLUS A__U42 = A__PLUS