WORST_CASE(?,O(n^1)) proof of input_lpFhQiZbA8.trs # AProVE Commit ID: 5b976082cb74a395683ed8cc7acf94bd611ab29f fuhs 20230524 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). (0) CpxTRS (1) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (2) CdtProblem (3) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CdtProblem (5) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CdtProblem (7) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CdtProblem (9) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTRS (11) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (12) CpxTRS (13) CpxTrsMatchBoundsTAProof [FINISHED, 0 ms] (14) BOUNDS(1, n^1) ---------------------------------------- (0) 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: f(0) -> true f(1) -> false f(s(x)) -> f(x) if(true, s(x), s(y)) -> s(x) if(false, s(x), s(y)) -> s(y) g(x, c(y)) -> c(g(x, y)) g(x, c(y)) -> g(x, if(f(x), c(g(s(x), y)), c(y))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: f(0) -> true f(1) -> false f(s(z0)) -> f(z0) if(true, s(z0), s(z1)) -> s(z0) if(false, s(z0), s(z1)) -> s(z1) g(z0, c(z1)) -> c(g(z0, z1)) g(z0, c(z1)) -> g(z0, if(f(z0), c(g(s(z0), z1)), c(z1))) Tuples: F(0) -> c1 F(1) -> c2 F(s(z0)) -> c3(F(z0)) IF(true, s(z0), s(z1)) -> c4 IF(false, s(z0), s(z1)) -> c5 G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), F(z0)) G(z0, c(z1)) -> c8(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), G(s(z0), z1)) S tuples: F(0) -> c1 F(1) -> c2 F(s(z0)) -> c3(F(z0)) IF(true, s(z0), s(z1)) -> c4 IF(false, s(z0), s(z1)) -> c5 G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), F(z0)) G(z0, c(z1)) -> c8(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), G(s(z0), z1)) K tuples:none Defined Rule Symbols: f_1, if_3, g_2 Defined Pair Symbols: F_1, IF_3, G_2 Compound Symbols: c1, c2, c3_1, c4, c5, c6_1, c7_3, c8_3 ---------------------------------------- (3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing nodes: IF(false, s(z0), s(z1)) -> c5 F(1) -> c2 F(0) -> c1 IF(true, s(z0), s(z1)) -> c4 ---------------------------------------- (4) Obligation: Complexity Dependency Tuples Problem Rules: f(0) -> true f(1) -> false f(s(z0)) -> f(z0) if(true, s(z0), s(z1)) -> s(z0) if(false, s(z0), s(z1)) -> s(z1) g(z0, c(z1)) -> c(g(z0, z1)) g(z0, c(z1)) -> g(z0, if(f(z0), c(g(s(z0), z1)), c(z1))) Tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), F(z0)) G(z0, c(z1)) -> c8(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), G(s(z0), z1)) S tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), F(z0)) G(z0, c(z1)) -> c8(G(z0, if(f(z0), c(g(s(z0), z1)), c(z1))), IF(f(z0), c(g(s(z0), z1)), c(z1)), G(s(z0), z1)) K tuples:none Defined Rule Symbols: f_1, if_3, g_2 Defined Pair Symbols: F_1, G_2 Compound Symbols: c3_1, c6_1, c7_3, c8_3 ---------------------------------------- (5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: f(0) -> true f(1) -> false f(s(z0)) -> f(z0) if(true, s(z0), s(z1)) -> s(z0) if(false, s(z0), s(z1)) -> s(z1) g(z0, c(z1)) -> c(g(z0, z1)) g(z0, c(z1)) -> g(z0, if(f(z0), c(g(s(z0), z1)), c(z1))) Tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) S tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) K tuples:none Defined Rule Symbols: f_1, if_3, g_2 Defined Pair Symbols: F_1, G_2 Compound Symbols: c3_1, c6_1, c7_1, c8_1 ---------------------------------------- (7) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: f(0) -> true f(1) -> false f(s(z0)) -> f(z0) if(true, s(z0), s(z1)) -> s(z0) if(false, s(z0), s(z1)) -> s(z1) g(z0, c(z1)) -> c(g(z0, z1)) g(z0, c(z1)) -> g(z0, if(f(z0), c(g(s(z0), z1)), c(z1))) ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules:none Tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) S tuples: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) K tuples:none Defined Rule Symbols:none Defined Pair Symbols: F_1, G_2 Compound Symbols: c3_1, c6_1, c7_1, c8_1 ---------------------------------------- (9) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (11) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (12) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: F(s(z0)) -> c3(F(z0)) G(z0, c(z1)) -> c6(G(z0, z1)) G(z0, c(z1)) -> c7(F(z0)) G(z0, c(z1)) -> c8(G(s(z0), z1)) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (13) 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 2. The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: final states : [1, 2] transitions: s0(0) -> 0 c30(0) -> 0 c0(0) -> 0 c60(0) -> 0 c70(0) -> 0 c80(0) -> 0 F0(0) -> 1 G0(0, 0) -> 2 F1(0) -> 3 c31(3) -> 1 G1(0, 0) -> 4 c61(4) -> 2 F1(0) -> 5 c71(5) -> 2 s1(0) -> 7 G1(7, 0) -> 6 c81(6) -> 2 c31(3) -> 3 c31(3) -> 5 c61(4) -> 4 G1(7, 0) -> 4 c61(4) -> 6 c71(5) -> 4 F1(7) -> 5 c71(5) -> 6 c81(6) -> 4 s1(7) -> 7 c81(6) -> 6 F2(0) -> 8 c32(8) -> 5 F2(7) -> 8 c31(3) -> 8 c32(8) -> 8 ---------------------------------------- (14) BOUNDS(1, n^1)