WORST_CASE(Omega(n^1),O(n^1)) proof of input_UmDrCyfhTH.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). (0) CpxTRS (1) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (2) CpxTRS (3) CpxTrsMatchBoundsTAProof [FINISHED, 35 ms] (4) BOUNDS(1, n^1) (5) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CdtProblem (7) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxRelTRS (9) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 7 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 281 ms] (16) BEST (17) proven lower bound (18) LowerBoundPropagationProof [FINISHED, 0 ms] (19) BOUNDS(n^1, INF) (20) typed CpxTrs (21) RewriteLemmaProof [LOWER BOUND(ID), 49 ms] (22) typed CpxTrs (23) RewriteLemmaProof [LOWER BOUND(ID), 121 ms] (24) typed CpxTrs (25) RewriteLemmaProof [LOWER BOUND(ID), 22 ms] (26) typed CpxTrs (27) RewriteLemmaProof [LOWER BOUND(ID), 35 ms] (28) typed CpxTrs (29) RewriteLemmaProof [LOWER BOUND(ID), 58 ms] (30) BOUNDS(1, INF) ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). The TRS R consists of the following rules: norm(nil) -> 0 norm(g(x, y)) -> s(norm(x)) f(x, nil) -> g(nil, x) f(x, g(y, z)) -> g(f(x, y), z) rem(nil, y) -> nil rem(g(x, y), 0) -> g(x, y) rem(g(x, y), s(z)) -> rem(x, z) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: norm(nil) -> 0 norm(g(x, y)) -> s(norm(x)) f(x, nil) -> g(nil, x) f(x, g(y, z)) -> g(f(x, y), z) rem(nil, y) -> nil rem(g(x, y), 0) -> g(x, y) rem(g(x, y), s(z)) -> rem(x, z) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) CpxTrsMatchBoundsTAProof (FINISHED) 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 1. The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: final states : [1, 2, 3] transitions: nil0() -> 0 00() -> 0 g0(0, 0) -> 0 s0(0) -> 0 norm0(0) -> 1 f0(0, 0) -> 2 rem0(0, 0) -> 3 01() -> 1 norm1(0) -> 4 s1(4) -> 1 nil1() -> 5 g1(5, 0) -> 2 f1(0, 0) -> 6 g1(6, 0) -> 2 nil1() -> 3 g1(0, 0) -> 3 rem1(0, 0) -> 3 01() -> 4 s1(4) -> 4 g1(5, 0) -> 6 g1(6, 0) -> 6 ---------------------------------------- (4) BOUNDS(1, n^1) ---------------------------------------- (5) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: norm(nil) -> 0 norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0) -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Tuples: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0) -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) S tuples: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0) -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) K tuples:none Defined Rule Symbols: norm_1, f_2, rem_2 Defined Pair Symbols: NORM_1, F_2, REM_2 Compound Symbols: c, c1_1, c2, c3_1, c4, c5, c6_1 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0) -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) The (relative) TRS S consists of the following rules: norm(nil) -> 0 norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0) -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) The (relative) TRS S consists of the following rules: norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: NORM, F, REM, norm, f, rem ---------------------------------------- (14) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: NORM, F, REM, norm, f, rem ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) Induction Base: NORM(gen_nil:g9_7(0)) ->_R^Omega(1) c Induction Step: NORM(gen_nil:g9_7(+(n14_7, 1))) ->_R^Omega(1) c1(NORM(gen_nil:g9_7(n14_7))) ->_IH c1(gen_c:c18_7(c15_7)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (16) Complex Obligation (BEST) ---------------------------------------- (17) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: NORM, F, REM, norm, f, rem ---------------------------------------- (18) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (19) BOUNDS(n^1, INF) ---------------------------------------- (20) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Lemmas: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: F, REM, norm, f, rem ---------------------------------------- (21) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: F(hole_b5_7, gen_nil:g9_7(n283_7)) -> gen_c2:c310_7(n283_7), rt in Omega(1 + n283_7) Induction Base: F(hole_b5_7, gen_nil:g9_7(0)) ->_R^Omega(1) c2 Induction Step: F(hole_b5_7, gen_nil:g9_7(+(n283_7, 1))) ->_R^Omega(1) c3(F(hole_b5_7, gen_nil:g9_7(n283_7))) ->_IH c3(gen_c2:c310_7(c284_7)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (22) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Lemmas: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) F(hole_b5_7, gen_nil:g9_7(n283_7)) -> gen_c2:c310_7(n283_7), rt in Omega(1 + n283_7) Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: REM, norm, f, rem ---------------------------------------- (23) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: REM(gen_nil:g9_7(n651_7), gen_0':s12_7(n651_7)) -> gen_c4:c5:c611_7(n651_7), rt in Omega(1 + n651_7) Induction Base: REM(gen_nil:g9_7(0), gen_0':s12_7(0)) ->_R^Omega(1) c4 Induction Step: REM(gen_nil:g9_7(+(n651_7, 1)), gen_0':s12_7(+(n651_7, 1))) ->_R^Omega(1) c6(REM(gen_nil:g9_7(n651_7), gen_0':s12_7(n651_7))) ->_IH c6(gen_c4:c5:c611_7(c652_7)) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (24) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Lemmas: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) F(hole_b5_7, gen_nil:g9_7(n283_7)) -> gen_c2:c310_7(n283_7), rt in Omega(1 + n283_7) REM(gen_nil:g9_7(n651_7), gen_0':s12_7(n651_7)) -> gen_c4:c5:c611_7(n651_7), rt in Omega(1 + n651_7) Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: norm, f, rem ---------------------------------------- (25) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: norm(gen_nil:g9_7(n1365_7)) -> gen_0':s12_7(n1365_7), rt in Omega(0) Induction Base: norm(gen_nil:g9_7(0)) ->_R^Omega(0) 0' Induction Step: norm(gen_nil:g9_7(+(n1365_7, 1))) ->_R^Omega(0) s(norm(gen_nil:g9_7(n1365_7))) ->_IH s(gen_0':s12_7(c1366_7)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (26) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Lemmas: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) F(hole_b5_7, gen_nil:g9_7(n283_7)) -> gen_c2:c310_7(n283_7), rt in Omega(1 + n283_7) REM(gen_nil:g9_7(n651_7), gen_0':s12_7(n651_7)) -> gen_c4:c5:c611_7(n651_7), rt in Omega(1 + n651_7) norm(gen_nil:g9_7(n1365_7)) -> gen_0':s12_7(n1365_7), rt in Omega(0) Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: f, rem ---------------------------------------- (27) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: f(hole_a3_7, gen_nil:g9_7(n1782_7)) -> gen_nil:g9_7(+(1, n1782_7)), rt in Omega(0) Induction Base: f(hole_a3_7, gen_nil:g9_7(0)) ->_R^Omega(0) g(nil, hole_a3_7) Induction Step: f(hole_a3_7, gen_nil:g9_7(+(n1782_7, 1))) ->_R^Omega(0) g(f(hole_a3_7, gen_nil:g9_7(n1782_7)), hole_a3_7) ->_IH g(gen_nil:g9_7(+(1, c1783_7)), hole_a3_7) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (28) Obligation: Innermost TRS: Rules: NORM(nil) -> c NORM(g(z0, z1)) -> c1(NORM(z0)) F(z0, nil) -> c2 F(z0, g(z1, z2)) -> c3(F(z0, z1)) REM(nil, z0) -> c4 REM(g(z0, z1), 0') -> c5 REM(g(z0, z1), s(z2)) -> c6(REM(z0, z2)) norm(nil) -> 0' norm(g(z0, z1)) -> s(norm(z0)) f(z0, nil) -> g(nil, z0) f(z0, g(z1, z2)) -> g(f(z0, z1), z2) rem(nil, z0) -> nil rem(g(z0, z1), 0') -> g(z0, z1) rem(g(z0, z1), s(z2)) -> rem(z0, z2) Types: NORM :: nil:g -> c:c1 nil :: nil:g c :: c:c1 g :: nil:g -> a -> nil:g c1 :: c:c1 -> c:c1 F :: b -> nil:g -> c2:c3 c2 :: c2:c3 c3 :: c2:c3 -> c2:c3 REM :: nil:g -> 0':s -> c4:c5:c6 c4 :: c4:c5:c6 0' :: 0':s c5 :: c4:c5:c6 s :: 0':s -> 0':s c6 :: c4:c5:c6 -> c4:c5:c6 norm :: nil:g -> 0':s f :: a -> nil:g -> nil:g rem :: nil:g -> 0':s -> nil:g hole_c:c11_7 :: c:c1 hole_nil:g2_7 :: nil:g hole_a3_7 :: a hole_c2:c34_7 :: c2:c3 hole_b5_7 :: b hole_c4:c5:c66_7 :: c4:c5:c6 hole_0':s7_7 :: 0':s gen_c:c18_7 :: Nat -> c:c1 gen_nil:g9_7 :: Nat -> nil:g gen_c2:c310_7 :: Nat -> c2:c3 gen_c4:c5:c611_7 :: Nat -> c4:c5:c6 gen_0':s12_7 :: Nat -> 0':s Lemmas: NORM(gen_nil:g9_7(n14_7)) -> gen_c:c18_7(n14_7), rt in Omega(1 + n14_7) F(hole_b5_7, gen_nil:g9_7(n283_7)) -> gen_c2:c310_7(n283_7), rt in Omega(1 + n283_7) REM(gen_nil:g9_7(n651_7), gen_0':s12_7(n651_7)) -> gen_c4:c5:c611_7(n651_7), rt in Omega(1 + n651_7) norm(gen_nil:g9_7(n1365_7)) -> gen_0':s12_7(n1365_7), rt in Omega(0) f(hole_a3_7, gen_nil:g9_7(n1782_7)) -> gen_nil:g9_7(+(1, n1782_7)), rt in Omega(0) Generator Equations: gen_c:c18_7(0) <=> c gen_c:c18_7(+(x, 1)) <=> c1(gen_c:c18_7(x)) gen_nil:g9_7(0) <=> nil gen_nil:g9_7(+(x, 1)) <=> g(gen_nil:g9_7(x), hole_a3_7) gen_c2:c310_7(0) <=> c2 gen_c2:c310_7(+(x, 1)) <=> c3(gen_c2:c310_7(x)) gen_c4:c5:c611_7(0) <=> c4 gen_c4:c5:c611_7(+(x, 1)) <=> c6(gen_c4:c5:c611_7(x)) gen_0':s12_7(0) <=> 0' gen_0':s12_7(+(x, 1)) <=> s(gen_0':s12_7(x)) The following defined symbols remain to be analysed: rem ---------------------------------------- (29) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: rem(gen_nil:g9_7(n2129_7), gen_0':s12_7(n2129_7)) -> gen_nil:g9_7(0), rt in Omega(0) Induction Base: rem(gen_nil:g9_7(0), gen_0':s12_7(0)) ->_R^Omega(0) nil Induction Step: rem(gen_nil:g9_7(+(n2129_7, 1)), gen_0':s12_7(+(n2129_7, 1))) ->_R^Omega(0) rem(gen_nil:g9_7(n2129_7), gen_0':s12_7(n2129_7)) ->_IH gen_nil:g9_7(0) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (30) BOUNDS(1, INF)