/export/starexec/sandbox/solver/bin/starexec_run_complexity /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1), ?) proof of /export/starexec/sandbox/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), 11.4 s] (8) BEST (9) proven lower bound (10) LowerBoundPropagationProof [FINISHED, 0 ms] (11) BOUNDS(n^1, INF) (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 138 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 9936 ms] (16) 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____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(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____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) S is empty. Rewrite Strategy: FULL ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: TRS: Rules: a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: a____, mark, a__and, a__isList, a__isNeList, a__isNePal, a__isPal They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal ---------------------------------------- (6) Obligation: TRS: Rules: a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal Generator Equations: gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0) <=> nil gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(x, 1)) <=> __(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(x), nil) The following defined symbols remain to be analysed: mark, a____, a__and, a__isList, a__isNeList, a__isNePal, a__isPal They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n4_0)) -> gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), rt in Omega(1 + n4_0) Induction Base: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0)) ->_R^Omega(1) nil Induction Step: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(n4_0, 1))) ->_R^Omega(1) a____(mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n4_0)), mark(nil)) ->_IH a____(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), mark(nil)) ->_R^Omega(1) a____(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), nil) ->_R^Omega(1) mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0)) ->_R^Omega(1) nil 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____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal Generator Equations: gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0) <=> nil gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(x, 1)) <=> __(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(x), nil) The following defined symbols remain to be analysed: mark, a____, a__and, a__isList, a__isNeList, a__isNePal, a__isPal They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal ---------------------------------------- (10) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (11) BOUNDS(n^1, INF) ---------------------------------------- (12) Obligation: TRS: Rules: a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal Lemmas: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n4_0)) -> gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), rt in Omega(1 + n4_0) Generator Equations: gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0) <=> nil gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(x, 1)) <=> __(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(x), nil) The following defined symbols remain to be analysed: a____, a__and, a__isList, a__isNeList, a__isNePal, a__isPal They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n19619_0)) -> tt, rt in Omega(1 + n19619_0) Induction Base: a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0)) ->_R^Omega(1) tt Induction Step: a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(n19619_0, 1))) ->_R^Omega(1) a__and(a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n19619_0)), isList(nil)) ->_IH a__and(tt, isList(nil)) ->_R^Omega(1) mark(isList(nil)) ->_R^Omega(1) a__isList(nil) ->_R^Omega(1) tt We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (14) Obligation: TRS: Rules: a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal Lemmas: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n4_0)) -> gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), rt in Omega(1 + n4_0) a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n19619_0)) -> tt, rt in Omega(1 + n19619_0) Generator Equations: gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0) <=> nil gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(x, 1)) <=> __(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(x), nil) The following defined symbols remain to be analysed: a__isNeList, a____, mark, a__and, a__isNePal, a__isPal They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n22119_0)) -> gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), rt in Omega(1 + n22119_0) Induction Base: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0)) ->_R^Omega(1) nil Induction Step: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(n22119_0, 1))) ->_R^Omega(1) a____(mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n22119_0)), mark(nil)) ->_IH a____(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), mark(nil)) ->_R^Omega(1) a____(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), nil) ->_R^Omega(1) mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0)) ->_R^Omega(1) nil We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (16) Obligation: TRS: Rules: a____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__and(tt, X) -> mark(X) a__isList(V) -> a__isNeList(V) a__isList(nil) -> tt a__isList(__(V1, V2)) -> a__and(a__isList(V1), isList(V2)) a__isNeList(V) -> a__isQid(V) a__isNeList(__(V1, V2)) -> a__and(a__isList(V1), isNeList(V2)) a__isNeList(__(V1, V2)) -> a__and(a__isNeList(V1), isList(V2)) a__isNePal(V) -> a__isQid(V) a__isNePal(__(I, __(P, I))) -> a__and(a__isQid(I), isPal(P)) a__isPal(V) -> a__isNePal(V) a__isPal(nil) -> tt a__isQid(a) -> tt a__isQid(e) -> tt a__isQid(i) -> tt a__isQid(o) -> tt a__isQid(u) -> tt mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(isList(X)) -> a__isList(X) mark(isNeList(X)) -> a__isNeList(X) mark(isQid(X)) -> a__isQid(X) mark(isNePal(X)) -> a__isNePal(X) mark(isPal(X)) -> a__isPal(X) mark(nil) -> nil mark(tt) -> tt mark(a) -> a mark(e) -> e mark(i) -> i mark(o) -> o mark(u) -> u a____(X1, X2) -> __(X1, X2) a__and(X1, X2) -> and(X1, X2) a__isList(X) -> isList(X) a__isNeList(X) -> isNeList(X) a__isQid(X) -> isQid(X) a__isNePal(X) -> isNePal(X) a__isPal(X) -> isPal(X) Types: a____ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal __ :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal mark :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal nil :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal tt :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNeList :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a__isPal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal a :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal e :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal i :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal o :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal u :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal and :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isQid :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal isNePal :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal hole___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal1_0 :: __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0 :: Nat -> __:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal Lemmas: mark(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n22119_0)) -> gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0), rt in Omega(1 + n22119_0) a__isList(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(n19619_0)) -> tt, rt in Omega(1 + n19619_0) Generator Equations: gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(0) <=> nil gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(+(x, 1)) <=> __(gen___:nil:tt:isList:isNeList:isPal:a:e:i:o:u:and:isQid:isNePal2_0(x), nil) The following defined symbols remain to be analysed: a____, a__and They will be analysed ascendingly in the following order: a____ = mark a____ = a__and a____ = a__isList a____ = a__isNeList a____ = a__isNePal a____ = a__isPal mark = a__and mark = a__isList mark = a__isNeList mark = a__isNePal mark = a__isPal a__and = a__isList a__and = a__isNeList a__and = a__isNePal a__and = a__isPal a__isList = a__isNeList a__isList = a__isNePal a__isList = a__isPal a__isNeList = a__isNePal a__isNeList = a__isPal a__isNePal = a__isPal