/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), 229 ms] (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____(__(X, Y), Z) -> a____(mark(X), a____(mark(Y), mark(Z))) a____(X, nil) -> mark(X) a____(nil, X) -> mark(X) a__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(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__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(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__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(X) Types: a____ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal __ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal mark :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal nil :: __:nil:tt:U11:U12:isNePal a__U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal tt :: __:nil:tt:U11:U12:isNePal a__U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal a__isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal hole___:nil:tt:U11:U12:isNePal1_0 :: __:nil:tt:U11:U12:isNePal gen___:nil:tt:U11:U12:isNePal2_0 :: Nat -> __:nil:tt:U11:U12:isNePal ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: a____, mark They will be analysed ascendingly in the following order: a____ = mark ---------------------------------------- (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__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(X) Types: a____ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal __ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal mark :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal nil :: __:nil:tt:U11:U12:isNePal a__U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal tt :: __:nil:tt:U11:U12:isNePal a__U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal a__isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal hole___:nil:tt:U11:U12:isNePal1_0 :: __:nil:tt:U11:U12:isNePal gen___:nil:tt:U11:U12:isNePal2_0 :: Nat -> __:nil:tt:U11:U12:isNePal Generator Equations: gen___:nil:tt:U11:U12:isNePal2_0(0) <=> nil gen___:nil:tt:U11:U12:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:U11:U12:isNePal2_0(x)) The following defined symbols remain to be analysed: mark, a____ They will be analysed ascendingly in the following order: a____ = mark ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen___:nil:tt:U11:U12:isNePal2_0(n4_0)) -> gen___:nil:tt:U11:U12:isNePal2_0(0), rt in Omega(1 + n4_0) Induction Base: mark(gen___:nil:tt:U11:U12:isNePal2_0(0)) ->_R^Omega(1) nil Induction Step: mark(gen___:nil:tt:U11:U12:isNePal2_0(+(n4_0, 1))) ->_R^Omega(1) a____(mark(nil), mark(gen___:nil:tt:U11:U12:isNePal2_0(n4_0))) ->_R^Omega(1) a____(nil, mark(gen___:nil:tt:U11:U12:isNePal2_0(n4_0))) ->_IH a____(nil, gen___:nil:tt:U11:U12:isNePal2_0(0)) ->_R^Omega(1) mark(nil) ->_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__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(X) Types: a____ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal __ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal mark :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal nil :: __:nil:tt:U11:U12:isNePal a__U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal tt :: __:nil:tt:U11:U12:isNePal a__U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal a__isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal hole___:nil:tt:U11:U12:isNePal1_0 :: __:nil:tt:U11:U12:isNePal gen___:nil:tt:U11:U12:isNePal2_0 :: Nat -> __:nil:tt:U11:U12:isNePal Generator Equations: gen___:nil:tt:U11:U12:isNePal2_0(0) <=> nil gen___:nil:tt:U11:U12:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:U11:U12:isNePal2_0(x)) The following defined symbols remain to be analysed: mark, a____ They will be analysed ascendingly in the following order: a____ = mark ---------------------------------------- (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__U11(tt) -> a__U12(tt) a__U12(tt) -> tt a__isNePal(__(I, __(P, I))) -> a__U11(tt) mark(__(X1, X2)) -> a____(mark(X1), mark(X2)) mark(U11(X)) -> a__U11(mark(X)) mark(U12(X)) -> a__U12(mark(X)) mark(isNePal(X)) -> a__isNePal(mark(X)) mark(nil) -> nil mark(tt) -> tt a____(X1, X2) -> __(X1, X2) a__U11(X) -> U11(X) a__U12(X) -> U12(X) a__isNePal(X) -> isNePal(X) Types: a____ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal __ :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal mark :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal nil :: __:nil:tt:U11:U12:isNePal a__U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal tt :: __:nil:tt:U11:U12:isNePal a__U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal a__isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U11 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal U12 :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal isNePal :: __:nil:tt:U11:U12:isNePal -> __:nil:tt:U11:U12:isNePal hole___:nil:tt:U11:U12:isNePal1_0 :: __:nil:tt:U11:U12:isNePal gen___:nil:tt:U11:U12:isNePal2_0 :: Nat -> __:nil:tt:U11:U12:isNePal Lemmas: mark(gen___:nil:tt:U11:U12:isNePal2_0(n4_0)) -> gen___:nil:tt:U11:U12:isNePal2_0(0), rt in Omega(1 + n4_0) Generator Equations: gen___:nil:tt:U11:U12:isNePal2_0(0) <=> nil gen___:nil:tt:U11:U12:isNePal2_0(+(x, 1)) <=> __(nil, gen___:nil:tt:U11:U12:isNePal2_0(x)) The following defined symbols remain to be analysed: a____ They will be analysed ascendingly in the following order: a____ = mark