6.42/2.60 WORST_CASE(Omega(n^1), O(n^1)) 6.75/2.67 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.75/2.67 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.75/2.67 6.75/2.67 6.75/2.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.75/2.67 6.75/2.67 (0) CpxTRS 6.75/2.67 (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] 6.75/2.67 (2) CpxTRS 6.75/2.67 (3) CpxTrsMatchBoundsProof [FINISHED, 0 ms] 6.75/2.67 (4) BOUNDS(1, n^1) 6.75/2.67 (5) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 6.75/2.67 (6) CpxTRS 6.75/2.67 (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 6.75/2.67 (8) typed CpxTrs 6.75/2.67 (9) OrderProof [LOWER BOUND(ID), 0 ms] 6.75/2.67 (10) typed CpxTrs 6.75/2.67 (11) RewriteLemmaProof [LOWER BOUND(ID), 432 ms] 6.75/2.67 (12) proven lower bound 6.75/2.67 (13) LowerBoundPropagationProof [FINISHED, 0 ms] 6.75/2.67 (14) BOUNDS(n^1, INF) 6.75/2.67 6.75/2.67 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (0) 6.75/2.67 Obligation: 6.75/2.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 6.75/2.67 6.75/2.67 6.75/2.67 The TRS R consists of the following rules: 6.75/2.67 6.75/2.67 f(a) -> f(c(a)) 6.75/2.67 f(c(X)) -> X 6.75/2.67 f(c(a)) -> f(d(b)) 6.75/2.67 f(a) -> f(d(a)) 6.75/2.67 f(d(X)) -> X 6.75/2.67 f(c(b)) -> f(d(a)) 6.75/2.67 e(g(X)) -> e(X) 6.75/2.67 6.75/2.67 S is empty. 6.75/2.67 Rewrite Strategy: FULL 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (1) RelTrsToTrsProof (UPPER BOUND(ID)) 6.75/2.67 transformed relative TRS to TRS 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (2) 6.75/2.67 Obligation: 6.75/2.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 6.75/2.67 6.75/2.67 6.75/2.67 The TRS R consists of the following rules: 6.75/2.67 6.75/2.67 f(a) -> f(c(a)) 6.75/2.67 f(c(X)) -> X 6.75/2.67 f(c(a)) -> f(d(b)) 6.75/2.67 f(a) -> f(d(a)) 6.75/2.67 f(d(X)) -> X 6.75/2.67 f(c(b)) -> f(d(a)) 6.75/2.67 e(g(X)) -> e(X) 6.75/2.67 6.75/2.67 S is empty. 6.75/2.67 Rewrite Strategy: FULL 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (3) CpxTrsMatchBoundsProof (FINISHED) 6.75/2.67 A linear upper bound on the runtime complexity of the TRS R could be shown with a Match Bound [MATCHBOUNDS1,MATCHBOUNDS2] of 3. 6.75/2.67 The certificate found is represented by the following graph. 6.75/2.67 6.75/2.67 "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 6.75/2.67 {(1,2,[f_1|0, e_1|0, a|1, c_1|1, d_1|1, b|1, g_1|1, e_1|1, a|2, b|2, b|3]), (1,3,[f_1|1]), (1,5,[f_1|1]), (1,7,[f_1|1]), (1,9,[f_1|2]), (2,2,[a|0, c_1|0, d_1|0, b|0, g_1|0]), (3,4,[c_1|1]), (4,2,[a|1]), (5,6,[d_1|1]), (6,2,[a|1]), (7,8,[d_1|1]), (8,2,[b|1]), (9,10,[d_1|2]), (10,2,[b|2])}" 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (4) 6.75/2.67 BOUNDS(1, n^1) 6.75/2.67 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (5) RenamingProof (BOTH BOUNDS(ID, ID)) 6.75/2.67 Renamed function symbols to avoid clashes with predefined symbol. 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (6) 6.75/2.67 Obligation: 6.75/2.67 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 6.75/2.67 6.75/2.67 6.75/2.67 The TRS R consists of the following rules: 6.75/2.67 6.75/2.67 f(a) -> f(c(a)) 6.75/2.67 f(c(X)) -> X 6.75/2.67 f(c(a)) -> f(d(b)) 6.75/2.67 f(a) -> f(d(a)) 6.75/2.67 f(d(X)) -> X 6.75/2.67 f(c(b)) -> f(d(a)) 6.75/2.67 e(g(X)) -> e(X) 6.75/2.67 6.75/2.67 S is empty. 6.75/2.67 Rewrite Strategy: FULL 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 6.75/2.67 Infered types. 6.75/2.67 ---------------------------------------- 6.75/2.67 6.75/2.67 (8) 6.75/2.67 Obligation: 6.75/2.67 TRS: 6.75/2.67 Rules: 6.75/2.67 f(a) -> f(c(a)) 6.75/2.67 f(c(X)) -> X 6.75/2.67 f(c(a)) -> f(d(b)) 6.75/2.67 f(a) -> f(d(a)) 6.75/2.67 f(d(X)) -> X 6.75/2.67 f(c(b)) -> f(d(a)) 6.75/2.67 e(g(X)) -> e(X) 6.75/2.67 6.75/2.67 Types: 6.75/2.67 f :: a:c:b:d -> a:c:b:d 6.75/2.67 a :: a:c:b:d 6.75/2.68 c :: a:c:b:d -> a:c:b:d 6.75/2.68 d :: a:c:b:d -> a:c:b:d 6.75/2.68 b :: a:c:b:d 6.75/2.68 e :: g -> e 6.75/2.68 g :: g -> g 6.75/2.68 hole_a:c:b:d1_0 :: a:c:b:d 6.75/2.68 hole_e2_0 :: e 6.75/2.68 hole_g3_0 :: g 6.75/2.68 gen_a:c:b:d4_0 :: Nat -> a:c:b:d 6.75/2.68 gen_g5_0 :: Nat -> g 6.75/2.68 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (9) OrderProof (LOWER BOUND(ID)) 6.75/2.68 Heuristically decided to analyse the following defined symbols: 6.75/2.68 f, e 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (10) 6.75/2.68 Obligation: 6.75/2.68 TRS: 6.75/2.68 Rules: 6.75/2.68 f(a) -> f(c(a)) 6.75/2.68 f(c(X)) -> X 6.75/2.68 f(c(a)) -> f(d(b)) 6.75/2.68 f(a) -> f(d(a)) 6.75/2.68 f(d(X)) -> X 6.75/2.68 f(c(b)) -> f(d(a)) 6.75/2.68 e(g(X)) -> e(X) 6.75/2.68 6.75/2.68 Types: 6.75/2.68 f :: a:c:b:d -> a:c:b:d 6.75/2.68 a :: a:c:b:d 6.75/2.68 c :: a:c:b:d -> a:c:b:d 6.75/2.68 d :: a:c:b:d -> a:c:b:d 6.75/2.68 b :: a:c:b:d 6.75/2.68 e :: g -> e 6.75/2.68 g :: g -> g 6.75/2.68 hole_a:c:b:d1_0 :: a:c:b:d 6.75/2.68 hole_e2_0 :: e 6.75/2.68 hole_g3_0 :: g 6.75/2.68 gen_a:c:b:d4_0 :: Nat -> a:c:b:d 6.75/2.68 gen_g5_0 :: Nat -> g 6.75/2.68 6.75/2.68 6.75/2.68 Generator Equations: 6.75/2.68 gen_a:c:b:d4_0(0) <=> b 6.75/2.68 gen_a:c:b:d4_0(+(x, 1)) <=> c(gen_a:c:b:d4_0(x)) 6.75/2.68 gen_g5_0(0) <=> hole_g3_0 6.75/2.68 gen_g5_0(+(x, 1)) <=> g(gen_g5_0(x)) 6.75/2.68 6.75/2.68 6.75/2.68 The following defined symbols remain to be analysed: 6.75/2.68 f, e 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (11) RewriteLemmaProof (LOWER BOUND(ID)) 6.75/2.68 Proved the following rewrite lemma: 6.75/2.68 e(gen_g5_0(+(1, n43_0))) -> *6_0, rt in Omega(n43_0) 6.75/2.68 6.75/2.68 Induction Base: 6.75/2.68 e(gen_g5_0(+(1, 0))) 6.75/2.68 6.75/2.68 Induction Step: 6.75/2.68 e(gen_g5_0(+(1, +(n43_0, 1)))) ->_R^Omega(1) 6.75/2.68 e(gen_g5_0(+(1, n43_0))) ->_IH 6.75/2.68 *6_0 6.75/2.68 6.75/2.68 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (12) 6.75/2.68 Obligation: 6.75/2.68 Proved the lower bound n^1 for the following obligation: 6.75/2.68 6.75/2.68 TRS: 6.75/2.68 Rules: 6.75/2.68 f(a) -> f(c(a)) 6.75/2.68 f(c(X)) -> X 6.75/2.68 f(c(a)) -> f(d(b)) 6.75/2.68 f(a) -> f(d(a)) 6.75/2.68 f(d(X)) -> X 6.75/2.68 f(c(b)) -> f(d(a)) 6.75/2.68 e(g(X)) -> e(X) 6.75/2.68 6.75/2.68 Types: 6.75/2.68 f :: a:c:b:d -> a:c:b:d 6.75/2.68 a :: a:c:b:d 6.75/2.68 c :: a:c:b:d -> a:c:b:d 6.75/2.68 d :: a:c:b:d -> a:c:b:d 6.75/2.68 b :: a:c:b:d 6.75/2.68 e :: g -> e 6.75/2.68 g :: g -> g 6.75/2.68 hole_a:c:b:d1_0 :: a:c:b:d 6.75/2.68 hole_e2_0 :: e 6.75/2.68 hole_g3_0 :: g 6.75/2.68 gen_a:c:b:d4_0 :: Nat -> a:c:b:d 6.75/2.68 gen_g5_0 :: Nat -> g 6.75/2.68 6.75/2.68 6.75/2.68 Generator Equations: 6.75/2.68 gen_a:c:b:d4_0(0) <=> b 6.75/2.68 gen_a:c:b:d4_0(+(x, 1)) <=> c(gen_a:c:b:d4_0(x)) 6.75/2.68 gen_g5_0(0) <=> hole_g3_0 6.75/2.68 gen_g5_0(+(x, 1)) <=> g(gen_g5_0(x)) 6.75/2.68 6.75/2.68 6.75/2.68 The following defined symbols remain to be analysed: 6.75/2.68 e 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (13) LowerBoundPropagationProof (FINISHED) 6.75/2.68 Propagated lower bound. 6.75/2.68 ---------------------------------------- 6.75/2.68 6.75/2.68 (14) 6.75/2.68 BOUNDS(n^1, INF) 6.92/2.71 EOF