/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty The Runtime Complexity (innermost) 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), 441 ms] (8) BEST (9) proven lower bound (10) LowerBoundPropagationProof [FINISHED, 0 ms] (11) BOUNDS(n^1, INF) (12) typed CpxTrs (13) RewriteLemmaProof [LOWER BOUND(ID), 249 ms] (14) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0), y) -> s(y) plus(0, y) -> y ack(0, y) -> s(y) ack(s(x), 0) -> ack(x, s(0)) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0'), y) -> s(y) plus(0', y) -> y ack(0', y) -> s(y) ack(s(x), 0') -> ack(x, s(0')) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (3) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (4) Obligation: Innermost TRS: Rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0'), y) -> s(y) plus(0', y) -> y ack(0', y) -> s(y) ack(s(x), 0') -> ack(x, s(0')) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) Types: plus :: s:0' -> s:0' -> s:0' s :: s:0' -> s:0' 0' :: s:0' ack :: s:0' -> s:0' -> s:0' hole_s:0'1_0 :: s:0' gen_s:0'2_0 :: Nat -> s:0' ---------------------------------------- (5) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: plus, ack They will be analysed ascendingly in the following order: plus < ack ---------------------------------------- (6) Obligation: Innermost TRS: Rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0'), y) -> s(y) plus(0', y) -> y ack(0', y) -> s(y) ack(s(x), 0') -> ack(x, s(0')) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) Types: plus :: s:0' -> s:0' -> s:0' s :: s:0' -> s:0' 0' :: s:0' ack :: s:0' -> s:0' -> s:0' hole_s:0'1_0 :: s:0' gen_s:0'2_0 :: Nat -> s:0' Generator Equations: gen_s:0'2_0(0) <=> 0' gen_s:0'2_0(+(x, 1)) <=> s(gen_s:0'2_0(x)) The following defined symbols remain to be analysed: plus, ack They will be analysed ascendingly in the following order: plus < ack ---------------------------------------- (7) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: plus(gen_s:0'2_0(+(1, *(2, n4_0))), gen_s:0'2_0(b)) -> gen_s:0'2_0(+(+(1, *(2, n4_0)), b)), rt in Omega(1 + n4_0) Induction Base: plus(gen_s:0'2_0(+(1, *(2, 0))), gen_s:0'2_0(b)) ->_R^Omega(1) s(gen_s:0'2_0(b)) Induction Step: plus(gen_s:0'2_0(+(1, *(2, +(n4_0, 1)))), gen_s:0'2_0(b)) ->_R^Omega(1) s(plus(gen_s:0'2_0(+(1, *(2, n4_0))), s(gen_s:0'2_0(b)))) ->_IH s(gen_s:0'2_0(+(+(1, +(b, 1)), *(2, c5_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: Innermost TRS: Rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0'), y) -> s(y) plus(0', y) -> y ack(0', y) -> s(y) ack(s(x), 0') -> ack(x, s(0')) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) Types: plus :: s:0' -> s:0' -> s:0' s :: s:0' -> s:0' 0' :: s:0' ack :: s:0' -> s:0' -> s:0' hole_s:0'1_0 :: s:0' gen_s:0'2_0 :: Nat -> s:0' Generator Equations: gen_s:0'2_0(0) <=> 0' gen_s:0'2_0(+(x, 1)) <=> s(gen_s:0'2_0(x)) The following defined symbols remain to be analysed: plus, ack They will be analysed ascendingly in the following order: plus < ack ---------------------------------------- (10) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (11) BOUNDS(n^1, INF) ---------------------------------------- (12) Obligation: Innermost TRS: Rules: plus(s(s(x)), y) -> s(plus(x, s(y))) plus(x, s(s(y))) -> s(plus(s(x), y)) plus(s(0'), y) -> s(y) plus(0', y) -> y ack(0', y) -> s(y) ack(s(x), 0') -> ack(x, s(0')) ack(s(x), s(y)) -> ack(x, plus(y, ack(s(x), y))) Types: plus :: s:0' -> s:0' -> s:0' s :: s:0' -> s:0' 0' :: s:0' ack :: s:0' -> s:0' -> s:0' hole_s:0'1_0 :: s:0' gen_s:0'2_0 :: Nat -> s:0' Lemmas: plus(gen_s:0'2_0(+(1, *(2, n4_0))), gen_s:0'2_0(b)) -> gen_s:0'2_0(+(+(1, *(2, n4_0)), b)), rt in Omega(1 + n4_0) Generator Equations: gen_s:0'2_0(0) <=> 0' gen_s:0'2_0(+(x, 1)) <=> s(gen_s:0'2_0(x)) The following defined symbols remain to be analysed: ack ---------------------------------------- (13) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: ack(gen_s:0'2_0(1), gen_s:0'2_0(+(1, n860_0))) -> *3_0, rt in Omega(n860_0) Induction Base: ack(gen_s:0'2_0(1), gen_s:0'2_0(+(1, 0))) Induction Step: ack(gen_s:0'2_0(1), gen_s:0'2_0(+(1, +(n860_0, 1)))) ->_R^Omega(1) ack(gen_s:0'2_0(0), plus(gen_s:0'2_0(+(1, n860_0)), ack(s(gen_s:0'2_0(0)), gen_s:0'2_0(+(1, n860_0))))) ->_IH ack(gen_s:0'2_0(0), plus(gen_s:0'2_0(+(1, n860_0)), *3_0)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (14) BOUNDS(1, INF)