WORST_CASE(?,O(n^1)) proof of input_TEmEnZ0Chq.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) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (2) CpxWeightedTrs (3) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxWeightedTrs (5) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (6) CpxTypedWeightedTrs (7) CompletionProof [UPPER BOUND(ID), 0 ms] (8) CpxTypedWeightedCompleteTrs (9) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 1 ms] (12) CpxRNTS (13) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxRNTS (15) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxRNTS (17) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (18) CpxRNTS (19) IntTrsBoundProof [UPPER BOUND(ID), 404 ms] (20) CpxRNTS (21) IntTrsBoundProof [UPPER BOUND(ID), 9 ms] (22) CpxRNTS (23) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (24) CpxRNTS (25) IntTrsBoundProof [UPPER BOUND(ID), 910 ms] (26) CpxRNTS (27) IntTrsBoundProof [UPPER BOUND(ID), 490 ms] (28) CpxRNTS (29) FinalProof [FINISHED, 0 ms] (30) 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: del(.(x, .(y, z))) -> f(=(x, y), x, y, z) f(true, x, y, z) -> del(.(y, z)) f(false, x, y, z) -> .(x, del(.(y, z))) =(nil, nil) -> true =(.(x, y), nil) -> false =(nil, .(y, z)) -> false =(.(x, y), .(u, v)) -> and(=(x, u), =(y, v)) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: del(.(x, .(y, z))) -> f(=(x, y), x, y, z) [1] f(true, x, y, z) -> del(.(y, z)) [1] f(false, x, y, z) -> .(x, del(.(y, z))) [1] =(nil, nil) -> true [1] =(.(x, y), nil) -> false [1] =(nil, .(y, z)) -> false [1] =(.(x, y), .(u, v)) -> and(=(x, u), =(y, v)) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (3) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) Renamed defined symbols to avoid conflicts with arithmetic symbols: = => eq ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] f(true, x, y, z) -> del(.(y, z)) [1] f(false, x, y, z) -> .(x, del(.(y, z))) [1] eq(nil, nil) -> true [1] eq(.(x, y), nil) -> false [1] eq(nil, .(y, z)) -> false [1] eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (5) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (6) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] f(true, x, y, z) -> del(.(y, z)) [1] f(false, x, y, z) -> .(x, del(.(y, z))) [1] eq(nil, nil) -> true [1] eq(.(x, y), nil) -> false [1] eq(nil, .(y, z)) -> false [1] eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] The TRS has the following type information: del :: .:nil:u:v -> .:nil:u:v . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v f :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v eq :: .:nil:u:v -> .:nil:u:v -> true:false:and true :: true:false:and false :: true:false:and nil :: .:nil:u:v u :: .:nil:u:v v :: .:nil:u:v and :: true:false:and -> true:false:and -> true:false:and Rewrite Strategy: INNERMOST ---------------------------------------- (7) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: del_1 f_4 (c) The following functions are completely defined: eq_2 Due to the following rules being added: eq(v0, v1) -> null_eq [0] And the following fresh constants: null_eq ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] f(true, x, y, z) -> del(.(y, z)) [1] f(false, x, y, z) -> .(x, del(.(y, z))) [1] eq(nil, nil) -> true [1] eq(.(x, y), nil) -> false [1] eq(nil, .(y, z)) -> false [1] eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] eq(v0, v1) -> null_eq [0] The TRS has the following type information: del :: .:nil:u:v -> .:nil:u:v . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v f :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v eq :: .:nil:u:v -> .:nil:u:v -> true:false:and:null_eq true :: true:false:and:null_eq false :: true:false:and:null_eq nil :: .:nil:u:v u :: .:nil:u:v v :: .:nil:u:v and :: true:false:and:null_eq -> true:false:and:null_eq -> true:false:and:null_eq null_eq :: true:false:and:null_eq Rewrite Strategy: INNERMOST ---------------------------------------- (9) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: del(.(nil, .(nil, z))) -> f(true, nil, nil, z) [2] del(.(.(x', y'), .(nil, z))) -> f(false, .(x', y'), nil, z) [2] del(.(nil, .(.(y'', z'), z))) -> f(false, nil, .(y'', z'), z) [2] del(.(.(x'', y1), .(.(u, v), z))) -> f(and(eq(x'', u), eq(y1, v)), .(x'', y1), .(u, v), z) [2] del(.(x, .(y, z))) -> f(null_eq, x, y, z) [1] f(true, x, y, z) -> del(.(y, z)) [1] f(false, x, y, z) -> .(x, del(.(y, z))) [1] eq(nil, nil) -> true [1] eq(.(x, y), nil) -> false [1] eq(nil, .(y, z)) -> false [1] eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] eq(v0, v1) -> null_eq [0] The TRS has the following type information: del :: .:nil:u:v -> .:nil:u:v . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v f :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v eq :: .:nil:u:v -> .:nil:u:v -> true:false:and:null_eq true :: true:false:and:null_eq false :: true:false:and:null_eq nil :: .:nil:u:v u :: .:nil:u:v v :: .:nil:u:v and :: true:false:and:null_eq -> true:false:and:null_eq -> true:false:and:null_eq null_eq :: true:false:and:null_eq Rewrite Strategy: INNERMOST ---------------------------------------- (11) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: true => 1 false => 0 nil => 0 u => 1 v => 2 null_eq => 0 ---------------------------------------- (12) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z) :|: z >= 0, z'' = 1 + 0 + (1 + 0 + z) del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' = v0, v0 >= 0, z1 = v1, v1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + y + z) :|: z2 = y, z >= 0, z3 = z, x >= 0, y >= 0, z'' = 1, z1 = x f(z'', z1, z2, z3) -{ 1 }-> 1 + x + del(1 + y + z) :|: z'' = 0, z2 = y, z >= 0, z3 = z, x >= 0, y >= 0, z1 = x ---------------------------------------- (13) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 ---------------------------------------- (15) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { eq } { del, f } ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {eq}, {del,f} ---------------------------------------- (17) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {eq}, {del,f} ---------------------------------------- (19) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: eq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 1 ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {eq}, {del,f} Previous analysis results are: eq: runtime: ?, size: O(1) [1] ---------------------------------------- (21) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using CoFloCo for: eq after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 3 ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 2 }-> f(1 + eq(x'', 1) + eq(y1, 2), 1 + x'' + y1, 1 + 1 + 2, z) :|: y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {del,f} Previous analysis results are: eq: runtime: O(1) [3], size: O(1) [1] ---------------------------------------- (23) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 8 }-> f(1 + s + s', 1 + x'' + y1, 1 + 1 + 2, z) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 7 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {del,f} Previous analysis results are: eq: runtime: O(1) [3], size: O(1) [1] ---------------------------------------- (25) IntTrsBoundProof (UPPER BOUND(ID)) Computed SIZE bound using CoFloCo for: del after applying outer abstraction to obtain an ITS, resulting in: O(1) with polynomial bound: 0 Computed SIZE bound using CoFloCo for: f after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 1 + z1 ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 8 }-> f(1 + s + s', 1 + x'' + y1, 1 + 1 + 2, z) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 7 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: {del,f} Previous analysis results are: eq: runtime: O(1) [3], size: O(1) [1] del: runtime: ?, size: O(1) [0] f: runtime: ?, size: O(n^1) [1 + z1] ---------------------------------------- (27) IntTrsBoundProof (UPPER BOUND(ID)) Computed RUNTIME bound using KoAT for: del after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 34*z'' Computed RUNTIME bound using CoFloCo for: f after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 35 + 34*z2 + 34*z3 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) del(z'') -{ 8 }-> f(1 + s + s', 1 + x'' + y1, 1 + 1 + 2, z) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, y1 >= 0, z >= 0, x'' >= 0, z'' = 1 + (1 + x'' + y1) + (1 + (1 + 1 + 2) + z) eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 eq(z'', z1) -{ 7 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 Function symbols to be analyzed: Previous analysis results are: eq: runtime: O(1) [3], size: O(1) [1] del: runtime: O(n^1) [34*z''], size: O(1) [0] f: runtime: O(n^1) [35 + 34*z2 + 34*z3], size: O(n^1) [1 + z1] ---------------------------------------- (29) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (30) BOUNDS(1, n^1)