1046.43/291.52 WORST_CASE(Omega(n^1), O(n^1)) 1046.43/291.53 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 1046.43/291.53 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 1046.43/291.53 1046.43/291.53 1046.43/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 1046.43/291.53 1046.43/291.53 (0) CpxTRS 1046.43/291.53 (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 0 ms] 1046.43/291.53 (2) CpxTRS 1046.43/291.53 (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] 1046.43/291.53 (4) CpxTRS 1046.43/291.53 (5) CpxTrsMatchBoundsTAProof [FINISHED, 62 ms] 1046.43/291.53 (6) BOUNDS(1, n^1) 1046.43/291.53 (7) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 1046.43/291.53 (8) CpxTRS 1046.43/291.53 (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 1046.43/291.53 (10) typed CpxTrs 1046.43/291.53 (11) OrderProof [LOWER BOUND(ID), 0 ms] 1046.43/291.53 (12) typed CpxTrs 1046.43/291.53 (13) RewriteLemmaProof [LOWER BOUND(ID), 471 ms] 1046.43/291.53 (14) BEST 1046.43/291.53 (15) proven lower bound 1046.43/291.53 (16) LowerBoundPropagationProof [FINISHED, 0 ms] 1046.43/291.53 (17) BOUNDS(n^1, INF) 1046.43/291.53 (18) typed CpxTrs 1046.43/291.53 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (0) 1046.43/291.53 Obligation: 1046.43/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 1046.43/291.53 1046.43/291.53 1046.43/291.53 The TRS R consists of the following rules: 1046.43/291.53 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 S is empty. 1046.43/291.53 Rewrite Strategy: FULL 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) 1046.43/291.53 The following defined symbols can occur below the 0th argument of top: active, start, proper, top, f, check, match 1046.43/291.53 The following defined symbols can occur below the 0th argument of active: active, start, proper, top, f, check, match 1046.43/291.53 The following defined symbols can occur below the 0th argument of f: active, start, proper, top, f, check, match 1046.43/291.53 The following defined symbols can occur below the 0th argument of start: active, start, proper, top, f, check, match 1046.43/291.53 The following defined symbols can occur below the 0th argument of match: active, start, proper, top, f, check, match 1046.43/291.53 The following defined symbols can occur below the 0th argument of check: active, start, proper, top, f, check, match 1046.43/291.53 1046.43/291.53 Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (2) 1046.43/291.53 Obligation: 1046.43/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 1046.43/291.53 1046.43/291.53 1046.43/291.53 The TRS R consists of the following rules: 1046.43/291.53 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 S is empty. 1046.43/291.53 Rewrite Strategy: FULL 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (3) RelTrsToTrsProof (UPPER BOUND(ID)) 1046.43/291.53 transformed relative TRS to TRS 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (4) 1046.43/291.53 Obligation: 1046.43/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 1046.43/291.53 1046.43/291.53 1046.43/291.53 The TRS R consists of the following rules: 1046.43/291.53 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 S is empty. 1046.43/291.53 Rewrite Strategy: FULL 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (5) CpxTrsMatchBoundsTAProof (FINISHED) 1046.43/291.53 A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 3. 1046.43/291.53 1046.43/291.53 The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: 1046.43/291.53 final states : [1, 2, 3, 4, 5, 6, 7] 1046.43/291.53 transitions: 1046.43/291.53 mark0(0) -> 0 1046.43/291.53 c0() -> 0 1046.43/291.53 X0() -> 0 1046.43/291.53 ok0(0) -> 0 1046.43/291.53 found0(0) -> 0 1046.43/291.53 active0(0) -> 1 1046.43/291.53 top0(0) -> 2 1046.43/291.53 check0(0) -> 3 1046.43/291.53 match0(0, 0) -> 4 1046.43/291.53 proper0(0) -> 5 1046.43/291.53 f0(0) -> 6 1046.43/291.53 start0(0) -> 7 1046.43/291.53 check1(0) -> 8 1046.43/291.53 top1(8) -> 2 1046.43/291.53 X1() -> 11 1046.43/291.53 f1(11) -> 10 1046.43/291.53 match1(10, 0) -> 9 1046.43/291.53 start1(9) -> 3 1046.43/291.53 proper1(0) -> 4 1046.43/291.53 c1() -> 12 1046.43/291.53 ok1(12) -> 5 1046.43/291.53 f1(0) -> 13 1046.43/291.53 ok1(13) -> 6 1046.43/291.53 found1(0) -> 7 1046.43/291.53 f1(0) -> 14 1046.43/291.53 found1(14) -> 6 1046.43/291.53 active1(0) -> 15 1046.43/291.53 top1(15) -> 2 1046.43/291.53 f1(0) -> 16 1046.43/291.53 mark1(16) -> 6 1046.43/291.53 c1() -> 18 1046.43/291.53 mark1(18) -> 17 1046.43/291.53 top1(17) -> 2 1046.43/291.53 X2() -> 21 1046.43/291.53 f2(21) -> 20 1046.43/291.53 match2(20, 0) -> 19 1046.43/291.53 start2(19) -> 8 1046.43/291.53 ok1(12) -> 4 1046.43/291.53 ok1(13) -> 13 1046.43/291.53 ok1(13) -> 14 1046.43/291.53 ok1(13) -> 16 1046.43/291.53 found1(14) -> 13 1046.43/291.53 found1(14) -> 14 1046.43/291.53 found1(14) -> 16 1046.43/291.53 mark1(16) -> 13 1046.43/291.53 mark1(16) -> 14 1046.43/291.53 mark1(16) -> 16 1046.43/291.53 check2(18) -> 22 1046.43/291.53 top2(22) -> 2 1046.43/291.53 X3() -> 25 1046.43/291.53 f3(25) -> 24 1046.43/291.53 match3(24, 18) -> 23 1046.43/291.53 start3(23) -> 22 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (6) 1046.43/291.53 BOUNDS(1, n^1) 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (7) RenamingProof (BOTH BOUNDS(ID, ID)) 1046.43/291.53 Renamed function symbols to avoid clashes with predefined symbol. 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (8) 1046.43/291.53 Obligation: 1046.43/291.53 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 1046.43/291.53 1046.43/291.53 1046.43/291.53 The TRS R consists of the following rules: 1046.43/291.53 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 S is empty. 1046.43/291.53 Rewrite Strategy: FULL 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 1046.43/291.53 Infered types. 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (10) 1046.43/291.53 Obligation: 1046.43/291.53 TRS: 1046.43/291.53 Rules: 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 Types: 1046.43/291.53 active :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 f :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 mark :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 top :: mark:c:X:ok:found -> top 1046.43/291.53 c :: mark:c:X:ok:found 1046.43/291.53 check :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 start :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 match :: mark:c:X:ok:found -> mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 X :: mark:c:X:ok:found 1046.43/291.53 proper :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 ok :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 found :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 hole_mark:c:X:ok:found1_0 :: mark:c:X:ok:found 1046.43/291.53 hole_top2_0 :: top 1046.43/291.53 gen_mark:c:X:ok:found3_0 :: Nat -> mark:c:X:ok:found 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (11) OrderProof (LOWER BOUND(ID)) 1046.43/291.53 Heuristically decided to analyse the following defined symbols: 1046.43/291.53 top, check, f, match, proper, active 1046.43/291.53 1046.43/291.53 They will be analysed ascendingly in the following order: 1046.43/291.53 check < top 1046.43/291.53 active < top 1046.43/291.53 f < check 1046.43/291.53 match < check 1046.43/291.53 f < match 1046.43/291.53 f < proper 1046.43/291.53 f < active 1046.43/291.53 proper < match 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (12) 1046.43/291.53 Obligation: 1046.43/291.53 TRS: 1046.43/291.53 Rules: 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 Types: 1046.43/291.53 active :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 f :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 mark :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 top :: mark:c:X:ok:found -> top 1046.43/291.53 c :: mark:c:X:ok:found 1046.43/291.53 check :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 start :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 match :: mark:c:X:ok:found -> mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 X :: mark:c:X:ok:found 1046.43/291.53 proper :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 ok :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 found :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 hole_mark:c:X:ok:found1_0 :: mark:c:X:ok:found 1046.43/291.53 hole_top2_0 :: top 1046.43/291.53 gen_mark:c:X:ok:found3_0 :: Nat -> mark:c:X:ok:found 1046.43/291.53 1046.43/291.53 1046.43/291.53 Generator Equations: 1046.43/291.53 gen_mark:c:X:ok:found3_0(0) <=> c 1046.43/291.53 gen_mark:c:X:ok:found3_0(+(x, 1)) <=> mark(gen_mark:c:X:ok:found3_0(x)) 1046.43/291.53 1046.43/291.53 1046.43/291.53 The following defined symbols remain to be analysed: 1046.43/291.53 f, top, check, match, proper, active 1046.43/291.53 1046.43/291.53 They will be analysed ascendingly in the following order: 1046.43/291.53 check < top 1046.43/291.53 active < top 1046.43/291.53 f < check 1046.43/291.53 match < check 1046.43/291.53 f < match 1046.43/291.53 f < proper 1046.43/291.53 f < active 1046.43/291.53 proper < match 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (13) RewriteLemmaProof (LOWER BOUND(ID)) 1046.43/291.53 Proved the following rewrite lemma: 1046.43/291.53 f(gen_mark:c:X:ok:found3_0(+(1, n5_0))) -> *4_0, rt in Omega(n5_0) 1046.43/291.53 1046.43/291.53 Induction Base: 1046.43/291.53 f(gen_mark:c:X:ok:found3_0(+(1, 0))) 1046.43/291.53 1046.43/291.53 Induction Step: 1046.43/291.53 f(gen_mark:c:X:ok:found3_0(+(1, +(n5_0, 1)))) ->_R^Omega(1) 1046.43/291.53 mark(f(gen_mark:c:X:ok:found3_0(+(1, n5_0)))) ->_IH 1046.43/291.53 mark(*4_0) 1046.43/291.53 1046.43/291.53 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (14) 1046.43/291.53 Complex Obligation (BEST) 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (15) 1046.43/291.53 Obligation: 1046.43/291.53 Proved the lower bound n^1 for the following obligation: 1046.43/291.53 1046.43/291.53 TRS: 1046.43/291.53 Rules: 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 Types: 1046.43/291.53 active :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 f :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 mark :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 top :: mark:c:X:ok:found -> top 1046.43/291.53 c :: mark:c:X:ok:found 1046.43/291.53 check :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 start :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 match :: mark:c:X:ok:found -> mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 X :: mark:c:X:ok:found 1046.43/291.53 proper :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 ok :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 found :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 hole_mark:c:X:ok:found1_0 :: mark:c:X:ok:found 1046.43/291.53 hole_top2_0 :: top 1046.43/291.53 gen_mark:c:X:ok:found3_0 :: Nat -> mark:c:X:ok:found 1046.43/291.53 1046.43/291.53 1046.43/291.53 Generator Equations: 1046.43/291.53 gen_mark:c:X:ok:found3_0(0) <=> c 1046.43/291.53 gen_mark:c:X:ok:found3_0(+(x, 1)) <=> mark(gen_mark:c:X:ok:found3_0(x)) 1046.43/291.53 1046.43/291.53 1046.43/291.53 The following defined symbols remain to be analysed: 1046.43/291.53 f, top, check, match, proper, active 1046.43/291.53 1046.43/291.53 They will be analysed ascendingly in the following order: 1046.43/291.53 check < top 1046.43/291.53 active < top 1046.43/291.53 f < check 1046.43/291.53 match < check 1046.43/291.53 f < match 1046.43/291.53 f < proper 1046.43/291.53 f < active 1046.43/291.53 proper < match 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (16) LowerBoundPropagationProof (FINISHED) 1046.43/291.53 Propagated lower bound. 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (17) 1046.43/291.53 BOUNDS(n^1, INF) 1046.43/291.53 1046.43/291.53 ---------------------------------------- 1046.43/291.53 1046.43/291.53 (18) 1046.43/291.53 Obligation: 1046.43/291.53 TRS: 1046.43/291.53 Rules: 1046.43/291.53 active(f(x)) -> mark(x) 1046.43/291.53 top(active(c)) -> top(mark(c)) 1046.43/291.53 top(mark(x)) -> top(check(x)) 1046.43/291.53 check(f(x)) -> f(check(x)) 1046.43/291.53 check(x) -> start(match(f(X), x)) 1046.43/291.53 match(f(x), f(y)) -> f(match(x, y)) 1046.43/291.53 match(X, x) -> proper(x) 1046.43/291.53 proper(c) -> ok(c) 1046.43/291.53 proper(f(x)) -> f(proper(x)) 1046.43/291.53 f(ok(x)) -> ok(f(x)) 1046.43/291.53 start(ok(x)) -> found(x) 1046.43/291.53 f(found(x)) -> found(f(x)) 1046.43/291.53 top(found(x)) -> top(active(x)) 1046.43/291.53 active(f(x)) -> f(active(x)) 1046.43/291.53 f(mark(x)) -> mark(f(x)) 1046.43/291.53 1046.43/291.53 Types: 1046.43/291.53 active :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 f :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 mark :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 top :: mark:c:X:ok:found -> top 1046.43/291.53 c :: mark:c:X:ok:found 1046.43/291.53 check :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 start :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 match :: mark:c:X:ok:found -> mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 X :: mark:c:X:ok:found 1046.43/291.53 proper :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 ok :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 found :: mark:c:X:ok:found -> mark:c:X:ok:found 1046.43/291.53 hole_mark:c:X:ok:found1_0 :: mark:c:X:ok:found 1046.43/291.53 hole_top2_0 :: top 1046.43/291.53 gen_mark:c:X:ok:found3_0 :: Nat -> mark:c:X:ok:found 1046.43/291.53 1046.43/291.53 1046.43/291.53 Lemmas: 1046.43/291.53 f(gen_mark:c:X:ok:found3_0(+(1, n5_0))) -> *4_0, rt in Omega(n5_0) 1046.43/291.53 1046.43/291.53 1046.43/291.53 Generator Equations: 1046.43/291.53 gen_mark:c:X:ok:found3_0(0) <=> c 1046.43/291.53 gen_mark:c:X:ok:found3_0(+(x, 1)) <=> mark(gen_mark:c:X:ok:found3_0(x)) 1046.43/291.53 1046.43/291.53 1046.43/291.53 The following defined symbols remain to be analysed: 1046.43/291.53 proper, top, check, match, active 1046.43/291.53 1046.43/291.53 They will be analysed ascendingly in the following order: 1046.43/291.53 check < top 1046.43/291.53 active < top 1046.43/291.53 match < check 1046.43/291.53 proper < match 1046.52/291.59 EOF