WORST_CASE(Omega(n^1), ?) proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (4) typed CpxTrs (5) OrderProof [LOWER BOUND(ID), 0 ms] (6) typed CpxTrs (7) RewriteLemmaProof [LOWER BOUND(ID), 100.1 s] (8) BEST (9) proven lower bound (10) LowerBoundPropagationProof [FINISHED, 0 ms] (11) BOUNDS(n^1, INF) (12) typed CpxTrs ---------------------------------------- (0) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: a__zeros -> cons(0, zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0) -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0 a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0) -> 0 mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) S is empty. Rewrite Strategy: FULL ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: a__zeros -> cons(0', zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0') -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) S is empty. Rewrite Strategy: FULL ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: TRS: Rules: a__zeros -> cons(0', zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0') -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) Types: a__zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat cons :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat 0' :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat tt :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat s :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat mark :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat nil :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat hole_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat1_0 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0 :: Nat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: a__U41, a__isNatIList, a__U51, a__isNatList, a__U61, a__U62, a__isNat, a__length, mark They will be analysed ascendingly in the following order: a__U41 = a__isNatIList a__U41 < mark a__isNatList < a__isNatIList a__isNat < a__isNatIList a__isNatIList < mark a__U51 = a__isNatList a__U51 = a__isNat a__U51 < mark a__isNatList = a__isNat a__isNatList < a__length a__isNatList < mark a__U61 = a__U62 a__isNat < a__U61 a__U61 = a__length a__U61 = mark a__U62 = a__length a__U62 = mark a__isNat < mark a__length = mark ---------------------------------------- (6) Obligation: TRS: Rules: a__zeros -> cons(0', zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0') -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) Types: a__zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat cons :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat 0' :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat tt :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat s :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat mark :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat nil :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat hole_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat1_0 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0 :: Nat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat Generator Equations: gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(0) <=> 0' gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(+(x, 1)) <=> cons(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(x), 0') The following defined symbols remain to be analysed: a__isNatList, a__U41, a__isNatIList, a__U51, a__U61, a__U62, a__isNat, a__length, mark They will be analysed ascendingly in the following order: a__U41 = a__isNatIList a__U41 < mark a__isNatList < a__isNatIList a__isNat < a__isNatIList a__isNatIList < mark a__U51 = a__isNatList a__U51 = a__isNat a__U51 < mark a__isNatList = a__isNat a__isNatList < a__length a__isNatList < mark a__U61 = a__U62 a__isNat < a__U61 a__U61 = a__length a__U61 = mark a__U62 = a__length a__U62 = mark a__isNat < mark a__length = mark ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(n322_0)) -> gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(n322_0), rt in Omega(1 + n322_0) Induction Base: mark(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(0)) ->_R^Omega(1) 0' Induction Step: mark(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(+(n322_0, 1))) ->_R^Omega(1) cons(mark(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(n322_0)), 0') ->_IH cons(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(c323_0), 0') We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (8) Complex Obligation (BEST) ---------------------------------------- (9) Obligation: Proved the lower bound n^1 for the following obligation: TRS: Rules: a__zeros -> cons(0', zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0') -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) Types: a__zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat cons :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat 0' :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat tt :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat s :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat mark :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat nil :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat hole_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat1_0 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0 :: Nat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat Generator Equations: gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(0) <=> 0' gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(+(x, 1)) <=> cons(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(x), 0') The following defined symbols remain to be analysed: mark They will be analysed ascendingly in the following order: a__U61 = a__U62 a__U61 = a__length a__U61 = mark a__U62 = a__length a__U62 = mark a__length = mark ---------------------------------------- (10) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (11) BOUNDS(n^1, INF) ---------------------------------------- (12) Obligation: TRS: Rules: a__zeros -> cons(0', zeros) a__U11(tt) -> tt a__U21(tt) -> tt a__U31(tt) -> tt a__U41(tt, V2) -> a__U42(a__isNatIList(V2)) a__U42(tt) -> tt a__U51(tt, V2) -> a__U52(a__isNatList(V2)) a__U52(tt) -> tt a__U61(tt, L, N) -> a__U62(a__isNat(N), L) a__U62(tt, L) -> s(a__length(mark(L))) a__isNat(0') -> tt a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros) -> tt a__isNatIList(cons(V1, V2)) -> a__U41(a__isNat(V1), V2) a__isNatList(nil) -> tt a__isNatList(cons(V1, V2)) -> a__U51(a__isNat(V1), V2) a__length(nil) -> 0' a__length(cons(N, L)) -> a__U61(a__isNatList(L), L, N) mark(zeros) -> a__zeros mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1, X2)) -> a__U41(mark(X1), X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1, X2)) -> a__U51(mark(X1), X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1, X2, X3)) -> a__U61(mark(X1), X2, X3) mark(U62(X1, X2)) -> a__U62(mark(X1), X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(0') -> 0' mark(tt) -> tt mark(s(X)) -> s(mark(X)) mark(nil) -> nil a__zeros -> zeros a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1, X2) -> U41(X1, X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1, X2) -> U51(X1, X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1, X2, X3) -> U61(X1, X2, X3) a__U62(X1, X2) -> U62(X1, X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) Types: a__zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat cons :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat 0' :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat zeros :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat tt :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat s :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat a__length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat mark :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat length :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat nil :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U11 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U21 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U31 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U41 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U42 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatIList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U51 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U52 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNatList :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U61 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat U62 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat isNat :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat hole_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat1_0 :: 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0 :: Nat -> 0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat Lemmas: mark(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(n322_0)) -> gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(n322_0), rt in Omega(1 + n322_0) Generator Equations: gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(0) <=> 0' gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(+(x, 1)) <=> cons(gen_0':zeros:cons:tt:s:length:nil:U11:U21:U31:U41:U42:isNatIList:U51:U52:isNatList:U61:U62:isNat2_0(x), 0') The following defined symbols remain to be analysed: a__U62, a__U61, a__length They will be analysed ascendingly in the following order: a__U61 = a__U62 a__U61 = a__length a__U61 = mark a__U62 = a__length a__U62 = mark a__length = mark