6.63/2.46 WORST_CASE(NON_POLY, ?) 6.63/2.47 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.63/2.47 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.63/2.47 6.63/2.47 6.63/2.47 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.63/2.47 6.63/2.47 (0) CpxTRS 6.63/2.47 (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 6.63/2.47 (2) CpxTRS 6.63/2.47 (3) SlicingProof [LOWER BOUND(ID), 0 ms] 6.63/2.47 (4) CpxTRS 6.63/2.47 (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 6.63/2.47 (6) typed CpxTrs 6.63/2.47 (7) OrderProof [LOWER BOUND(ID), 0 ms] 6.63/2.47 (8) typed CpxTrs 6.63/2.47 (9) RewriteLemmaProof [LOWER BOUND(ID), 214 ms] 6.63/2.47 (10) BEST 6.63/2.47 (11) proven lower bound 6.63/2.47 (12) LowerBoundPropagationProof [FINISHED, 0 ms] 6.63/2.47 (13) BOUNDS(n^1, INF) 6.63/2.47 (14) typed CpxTrs 6.63/2.47 (15) RewriteLemmaProof [FINISHED, 248 ms] 6.63/2.47 (16) BOUNDS(EXP, INF) 6.63/2.47 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (0) 6.63/2.47 Obligation: 6.63/2.47 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.63/2.47 6.63/2.47 6.63/2.47 The TRS R consists of the following rules: 6.63/2.47 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0, nil) -> 0 6.63/2.47 rev1(s(x), nil) -> s(x) 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 S is empty. 6.63/2.47 Rewrite Strategy: INNERMOST 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (1) RenamingProof (BOTH BOUNDS(ID, ID)) 6.63/2.47 Renamed function symbols to avoid clashes with predefined symbol. 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (2) 6.63/2.47 Obligation: 6.63/2.47 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.63/2.47 6.63/2.47 6.63/2.47 The TRS R consists of the following rules: 6.63/2.47 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s(x), nil) -> s(x) 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 S is empty. 6.63/2.47 Rewrite Strategy: INNERMOST 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (3) SlicingProof (LOWER BOUND(ID)) 6.63/2.47 Sliced the following arguments: 6.63/2.47 s/0 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (4) 6.63/2.47 Obligation: 6.63/2.47 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(EXP, INF). 6.63/2.47 6.63/2.47 6.63/2.47 The TRS R consists of the following rules: 6.63/2.47 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s, nil) -> s 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 S is empty. 6.63/2.47 Rewrite Strategy: INNERMOST 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 6.63/2.47 Infered types. 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (6) 6.63/2.47 Obligation: 6.63/2.47 Innermost TRS: 6.63/2.47 Rules: 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s, nil) -> s 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 Types: 6.63/2.47 rev :: nil:cons -> nil:cons 6.63/2.47 nil :: nil:cons 6.63/2.47 cons :: 0':s -> nil:cons -> nil:cons 6.63/2.47 rev1 :: 0':s -> nil:cons -> 0':s 6.63/2.47 rev2 :: 0':s -> nil:cons -> nil:cons 6.63/2.47 0' :: 0':s 6.63/2.47 s :: 0':s 6.63/2.47 hole_nil:cons1_0 :: nil:cons 6.63/2.47 hole_0':s2_0 :: 0':s 6.63/2.47 gen_nil:cons3_0 :: Nat -> nil:cons 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (7) OrderProof (LOWER BOUND(ID)) 6.63/2.47 Heuristically decided to analyse the following defined symbols: 6.63/2.47 rev, rev1, rev2 6.63/2.47 6.63/2.47 They will be analysed ascendingly in the following order: 6.63/2.47 rev1 < rev 6.63/2.47 rev = rev2 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (8) 6.63/2.47 Obligation: 6.63/2.47 Innermost TRS: 6.63/2.47 Rules: 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s, nil) -> s 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 Types: 6.63/2.47 rev :: nil:cons -> nil:cons 6.63/2.47 nil :: nil:cons 6.63/2.47 cons :: 0':s -> nil:cons -> nil:cons 6.63/2.47 rev1 :: 0':s -> nil:cons -> 0':s 6.63/2.47 rev2 :: 0':s -> nil:cons -> nil:cons 6.63/2.47 0' :: 0':s 6.63/2.47 s :: 0':s 6.63/2.47 hole_nil:cons1_0 :: nil:cons 6.63/2.47 hole_0':s2_0 :: 0':s 6.63/2.47 gen_nil:cons3_0 :: Nat -> nil:cons 6.63/2.47 6.63/2.47 6.63/2.47 Generator Equations: 6.63/2.47 gen_nil:cons3_0(0) <=> nil 6.63/2.47 gen_nil:cons3_0(+(x, 1)) <=> cons(0', gen_nil:cons3_0(x)) 6.63/2.47 6.63/2.47 6.63/2.47 The following defined symbols remain to be analysed: 6.63/2.47 rev1, rev, rev2 6.63/2.47 6.63/2.47 They will be analysed ascendingly in the following order: 6.63/2.47 rev1 < rev 6.63/2.47 rev = rev2 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (9) RewriteLemmaProof (LOWER BOUND(ID)) 6.63/2.47 Proved the following rewrite lemma: 6.63/2.47 rev1(0', gen_nil:cons3_0(n5_0)) -> 0', rt in Omega(1 + n5_0) 6.63/2.47 6.63/2.47 Induction Base: 6.63/2.47 rev1(0', gen_nil:cons3_0(0)) ->_R^Omega(1) 6.63/2.47 0' 6.63/2.47 6.63/2.47 Induction Step: 6.63/2.47 rev1(0', gen_nil:cons3_0(+(n5_0, 1))) ->_R^Omega(1) 6.63/2.47 rev1(0', gen_nil:cons3_0(n5_0)) ->_IH 6.63/2.47 0' 6.63/2.47 6.63/2.47 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (10) 6.63/2.47 Complex Obligation (BEST) 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (11) 6.63/2.47 Obligation: 6.63/2.47 Proved the lower bound n^1 for the following obligation: 6.63/2.47 6.63/2.47 Innermost TRS: 6.63/2.47 Rules: 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s, nil) -> s 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 Types: 6.63/2.47 rev :: nil:cons -> nil:cons 6.63/2.47 nil :: nil:cons 6.63/2.47 cons :: 0':s -> nil:cons -> nil:cons 6.63/2.47 rev1 :: 0':s -> nil:cons -> 0':s 6.63/2.47 rev2 :: 0':s -> nil:cons -> nil:cons 6.63/2.47 0' :: 0':s 6.63/2.47 s :: 0':s 6.63/2.47 hole_nil:cons1_0 :: nil:cons 6.63/2.47 hole_0':s2_0 :: 0':s 6.63/2.47 gen_nil:cons3_0 :: Nat -> nil:cons 6.63/2.47 6.63/2.47 6.63/2.47 Generator Equations: 6.63/2.47 gen_nil:cons3_0(0) <=> nil 6.63/2.47 gen_nil:cons3_0(+(x, 1)) <=> cons(0', gen_nil:cons3_0(x)) 6.63/2.47 6.63/2.47 6.63/2.47 The following defined symbols remain to be analysed: 6.63/2.47 rev1, rev, rev2 6.63/2.47 6.63/2.47 They will be analysed ascendingly in the following order: 6.63/2.47 rev1 < rev 6.63/2.47 rev = rev2 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (12) LowerBoundPropagationProof (FINISHED) 6.63/2.47 Propagated lower bound. 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (13) 6.63/2.47 BOUNDS(n^1, INF) 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (14) 6.63/2.47 Obligation: 6.63/2.47 Innermost TRS: 6.63/2.47 Rules: 6.63/2.47 rev(nil) -> nil 6.63/2.47 rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l)) 6.63/2.47 rev1(0', nil) -> 0' 6.63/2.47 rev1(s, nil) -> s 6.63/2.47 rev1(x, cons(y, l)) -> rev1(y, l) 6.63/2.47 rev2(x, nil) -> nil 6.63/2.47 rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l))) 6.63/2.47 6.63/2.47 Types: 6.63/2.47 rev :: nil:cons -> nil:cons 6.63/2.47 nil :: nil:cons 6.63/2.47 cons :: 0':s -> nil:cons -> nil:cons 6.63/2.47 rev1 :: 0':s -> nil:cons -> 0':s 6.63/2.47 rev2 :: 0':s -> nil:cons -> nil:cons 6.63/2.47 0' :: 0':s 6.63/2.47 s :: 0':s 6.63/2.47 hole_nil:cons1_0 :: nil:cons 6.63/2.47 hole_0':s2_0 :: 0':s 6.63/2.47 gen_nil:cons3_0 :: Nat -> nil:cons 6.63/2.47 6.63/2.47 6.63/2.47 Lemmas: 6.63/2.47 rev1(0', gen_nil:cons3_0(n5_0)) -> 0', rt in Omega(1 + n5_0) 6.63/2.47 6.63/2.47 6.63/2.47 Generator Equations: 6.63/2.47 gen_nil:cons3_0(0) <=> nil 6.63/2.47 gen_nil:cons3_0(+(x, 1)) <=> cons(0', gen_nil:cons3_0(x)) 6.63/2.47 6.63/2.47 6.63/2.47 The following defined symbols remain to be analysed: 6.63/2.47 rev2, rev 6.63/2.47 6.63/2.47 They will be analysed ascendingly in the following order: 6.63/2.47 rev = rev2 6.63/2.47 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (15) RewriteLemmaProof (FINISHED) 6.63/2.47 Proved the following rewrite lemma: 6.63/2.47 rev2(0', gen_nil:cons3_0(n203_0)) -> gen_nil:cons3_0(n203_0), rt in Omega(EXP) 6.63/2.47 6.63/2.47 Induction Base: 6.63/2.47 rev2(0', gen_nil:cons3_0(0)) ->_R^Omega(1) 6.63/2.47 nil 6.63/2.47 6.63/2.47 Induction Step: 6.63/2.47 rev2(0', gen_nil:cons3_0(+(n203_0, 1))) ->_R^Omega(1) 6.63/2.47 rev(cons(0', rev2(0', gen_nil:cons3_0(n203_0)))) ->_IH 6.63/2.47 rev(cons(0', gen_nil:cons3_0(c204_0))) ->_R^Omega(1) 6.63/2.47 cons(rev1(0', gen_nil:cons3_0(n203_0)), rev2(0', gen_nil:cons3_0(n203_0))) ->_L^Omega(1 + n203_0) 6.63/2.47 cons(0', rev2(0', gen_nil:cons3_0(n203_0))) ->_IH 6.63/2.47 cons(0', gen_nil:cons3_0(c204_0)) 6.63/2.47 6.63/2.47 We have rt in EXP and sz in O(n). Thus, we have irc_R in EXP 6.63/2.47 ---------------------------------------- 6.63/2.47 6.63/2.47 (16) 6.63/2.47 BOUNDS(EXP, INF) 6.63/2.51 EOF