WORST_CASE(?,O(n^1)) proof of input_OXf4v3QZwr.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 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) CpxRelTRS (11) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (12) CpxWeightedTrs (13) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxWeightedTrs (15) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxTypedWeightedTrs (17) CompletionProof [UPPER BOUND(ID), 0 ms] (18) CpxTypedWeightedCompleteTrs (19) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (20) CpxTypedWeightedCompleteTrs (21) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CpxRNTS (25) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CpxRNTS (27) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (28) CpxRNTS (29) IntTrsBoundProof [UPPER BOUND(ID), 266 ms] (30) CpxRNTS (31) IntTrsBoundProof [UPPER BOUND(ID), 119 ms] (32) CpxRNTS (33) ResultPropagationProof [UPPER BOUND(ID), 0 ms] (34) CpxRNTS (35) IntTrsBoundProof [UPPER BOUND(ID), 780 ms] (36) CpxRNTS (37) IntTrsBoundProof [UPPER BOUND(ID), 422 ms] (38) CpxRNTS (39) FinalProof [FINISHED, 0 ms] (40) 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) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (2) Obligation: Complexity Dependency Tuples Problem Rules: del(.(z0, .(z1, z2))) -> f(=(z0, z1), z0, z1, z2) f(true, z0, z1, z2) -> del(.(z1, z2)) f(false, z0, z1, z2) -> .(z0, del(.(z1, z2))) =(nil, nil) -> true =(.(z0, z1), nil) -> false =(nil, .(z0, z1)) -> false =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) Tuples: DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2), ='(z0, z1)) F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) ='(nil, nil) -> c3 ='(.(z0, z1), nil) -> c4 ='(nil, .(z0, z1)) -> c5 ='(.(z0, z1), .(u, v)) -> c6(='(z0, u)) ='(.(z0, z1), .(u, v)) -> c7(='(z1, v)) S tuples: DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2), ='(z0, z1)) F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) ='(nil, nil) -> c3 ='(.(z0, z1), nil) -> c4 ='(nil, .(z0, z1)) -> c5 ='(.(z0, z1), .(u, v)) -> c6(='(z0, u)) ='(.(z0, z1), .(u, v)) -> c7(='(z1, v)) K tuples:none Defined Rule Symbols: del_1, f_4, =_2 Defined Pair Symbols: DEL_1, F_4, ='_2 Compound Symbols: c_2, c1_1, c2_1, c3, c4, c5, c6_1, c7_1 ---------------------------------------- (3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing nodes: ='(.(z0, z1), .(u, v)) -> c6(='(z0, u)) ='(nil, .(z0, z1)) -> c5 ='(.(z0, z1), .(u, v)) -> c7(='(z1, v)) ='(nil, nil) -> c3 ='(.(z0, z1), nil) -> c4 ---------------------------------------- (4) Obligation: Complexity Dependency Tuples Problem Rules: del(.(z0, .(z1, z2))) -> f(=(z0, z1), z0, z1, z2) f(true, z0, z1, z2) -> del(.(z1, z2)) f(false, z0, z1, z2) -> .(z0, del(.(z1, z2))) =(nil, nil) -> true =(.(z0, z1), nil) -> false =(nil, .(z0, z1)) -> false =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) Tuples: DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2), ='(z0, z1)) F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) S tuples: DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2), ='(z0, z1)) F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) K tuples:none Defined Rule Symbols: del_1, f_4, =_2 Defined Pair Symbols: DEL_1, F_4 Compound Symbols: c_2, c1_1, c2_1 ---------------------------------------- (5) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (6) Obligation: Complexity Dependency Tuples Problem Rules: del(.(z0, .(z1, z2))) -> f(=(z0, z1), z0, z1, z2) f(true, z0, z1, z2) -> del(.(z1, z2)) f(false, z0, z1, z2) -> .(z0, del(.(z1, z2))) =(nil, nil) -> true =(.(z0, z1), nil) -> false =(nil, .(z0, z1)) -> false =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) Tuples: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) S tuples: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) K tuples:none Defined Rule Symbols: del_1, f_4, =_2 Defined Pair Symbols: F_4, DEL_1 Compound Symbols: c1_1, c2_1, c_1 ---------------------------------------- (7) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: del(.(z0, .(z1, z2))) -> f(=(z0, z1), z0, z1, z2) f(true, z0, z1, z2) -> del(.(z1, z2)) f(false, z0, z1, z2) -> .(z0, del(.(z1, z2))) ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: =(nil, nil) -> true =(.(z0, z1), nil) -> false =(nil, .(z0, z1)) -> false =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) Tuples: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) S tuples: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) K tuples:none Defined Rule Symbols: =_2 Defined Pair Symbols: F_4, DEL_1 Compound Symbols: c1_1, c2_1, c_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 CpxRelTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) The (relative) TRS S consists of the following rules: =(nil, nil) -> true =(.(z0, z1), nil) -> false =(nil, .(z0, z1)) -> false =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) Rewrite Strategy: INNERMOST ---------------------------------------- (11) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (12) 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: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) [1] F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) [1] DEL(.(z0, .(z1, z2))) -> c(F(=(z0, z1), z0, z1, z2)) [1] =(nil, nil) -> true [0] =(.(z0, z1), nil) -> false [0] =(nil, .(z0, z1)) -> false [0] =(.(z0, z1), .(u, v)) -> and(=(z0, u), =(z1, v)) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) Renamed defined symbols to avoid conflicts with arithmetic symbols: = => eq ---------------------------------------- (14) 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: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) [1] F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) [1] DEL(.(z0, .(z1, z2))) -> c(F(eq(z0, z1), z0, z1, z2)) [1] eq(nil, nil) -> true [0] eq(.(z0, z1), nil) -> false [0] eq(nil, .(z0, z1)) -> false [0] eq(.(z0, z1), .(u, v)) -> and(eq(z0, u), eq(z1, v)) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (15) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (16) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) [1] F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) [1] DEL(.(z0, .(z1, z2))) -> c(F(eq(z0, z1), z0, z1, z2)) [1] eq(nil, nil) -> true [0] eq(.(z0, z1), nil) -> false [0] eq(nil, .(z0, z1)) -> false [0] eq(.(z0, z1), .(u, v)) -> and(eq(z0, u), eq(z1, v)) [0] The TRS has the following type information: F :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> c1:c2 true :: true:false:and c1 :: c -> c1:c2 DEL :: .:nil:u:v -> c . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v false :: true:false:and c2 :: c -> c1:c2 c :: c1:c2 -> c eq :: .:nil:u:v -> .:nil:u:v -> 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 ---------------------------------------- (17) 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: F_4 DEL_1 (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, const, const1 ---------------------------------------- (18) 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: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) [1] F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) [1] DEL(.(z0, .(z1, z2))) -> c(F(eq(z0, z1), z0, z1, z2)) [1] eq(nil, nil) -> true [0] eq(.(z0, z1), nil) -> false [0] eq(nil, .(z0, z1)) -> false [0] eq(.(z0, z1), .(u, v)) -> and(eq(z0, u), eq(z1, v)) [0] eq(v0, v1) -> null_eq [0] The TRS has the following type information: F :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> c1:c2 true :: true:false:and:null_eq c1 :: c -> c1:c2 DEL :: .:nil:u:v -> c . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v false :: true:false:and:null_eq c2 :: c -> c1:c2 c :: c1:c2 -> c eq :: .:nil:u:v -> .:nil:u:v -> 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 const :: c1:c2 const1 :: c Rewrite Strategy: INNERMOST ---------------------------------------- (19) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (20) 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: F(true, z0, z1, z2) -> c1(DEL(.(z1, z2))) [1] F(false, z0, z1, z2) -> c2(DEL(.(z1, z2))) [1] DEL(.(nil, .(nil, z2))) -> c(F(true, nil, nil, z2)) [1] DEL(.(.(z0', z1'), .(nil, z2))) -> c(F(false, .(z0', z1'), nil, z2)) [1] DEL(.(nil, .(.(z0'', z1''), z2))) -> c(F(false, nil, .(z0'', z1''), z2)) [1] DEL(.(.(z01, z11), .(.(u, v), z2))) -> c(F(and(eq(z01, u), eq(z11, v)), .(z01, z11), .(u, v), z2)) [1] DEL(.(z0, .(z1, z2))) -> c(F(null_eq, z0, z1, z2)) [1] eq(nil, nil) -> true [0] eq(.(z0, z1), nil) -> false [0] eq(nil, .(z0, z1)) -> false [0] eq(.(z0, z1), .(u, v)) -> and(eq(z0, u), eq(z1, v)) [0] eq(v0, v1) -> null_eq [0] The TRS has the following type information: F :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> c1:c2 true :: true:false:and:null_eq c1 :: c -> c1:c2 DEL :: .:nil:u:v -> c . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v false :: true:false:and:null_eq c2 :: c -> c1:c2 c :: c1:c2 -> c eq :: .:nil:u:v -> .:nil:u:v -> 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 const :: c1:c2 const1 :: c Rewrite Strategy: INNERMOST ---------------------------------------- (21) 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 const => 0 const1 => 0 ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z2) :|: z = 1 + 0 + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z1 + z2) :|: z1 >= 0, z = 1, z0 >= 0, z3 = z2, z' = z0, z2 >= 0, z'' = z1 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z1 + z2) :|: z1 >= 0, z0 >= 0, z = 0, z3 = z2, z' = z0, z2 >= 0, z'' = z1 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 ---------------------------------------- (23) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (24) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 ---------------------------------------- (25) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) Found the following analysis order by SCC decomposition: { eq } { DEL, F } ---------------------------------------- (26) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {eq}, {DEL,F} ---------------------------------------- (27) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {eq}, {DEL,F} ---------------------------------------- (29) 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 ---------------------------------------- (30) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {eq}, {DEL,F} Previous analysis results are: eq: runtime: ?, size: O(1) [1] ---------------------------------------- (31) 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: 0 ---------------------------------------- (32) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + eq(z01, 1) + eq(z11, 2), 1 + z01 + z11, 1 + 1 + 2, z2) :|: z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + eq(z0, 1) + eq(z1, 2) :|: z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {DEL,F} Previous analysis results are: eq: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (33) ResultPropagationProof (UPPER BOUND(ID)) Applied inner abstraction using the recently inferred runtime/size bounds where possible. ---------------------------------------- (34) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + s + s', 1 + z01 + z11, 1 + 1 + 2, z2) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {DEL,F} Previous analysis results are: eq: runtime: O(1) [0], size: O(1) [1] ---------------------------------------- (35) 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(1) with polynomial bound: 1 ---------------------------------------- (36) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + s + s', 1 + z01 + z11, 1 + 1 + 2, z2) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: {DEL,F} Previous analysis results are: eq: runtime: O(1) [0], size: O(1) [1] DEL: runtime: ?, size: O(1) [0] F: runtime: ?, size: O(1) [1] ---------------------------------------- (37) 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: 14*z Computed RUNTIME bound using CoFloCo for: F after applying outer abstraction to obtain an ITS, resulting in: O(n^1) with polynomial bound: 15 + 14*z'' + 14*z3 ---------------------------------------- (38) Obligation: Complexity RNTS consisting of the following rules: DEL(z) -{ 1 }-> 1 + F(1, 0, 0, z - 2) :|: z - 2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, z0, z1, z2) :|: z1 >= 0, z = 1 + z0 + (1 + z1 + z2), z0 >= 0, z2 >= 0 DEL(z) -{ 1 }-> 1 + F(0, 0, 1 + z0'' + z1'', z2) :|: z = 1 + 0 + (1 + (1 + z0'' + z1'') + z2), z0'' >= 0, z2 >= 0, z1'' >= 0 DEL(z) -{ 1 }-> 1 + F(0, 1 + z0' + z1', 0, z2) :|: z0' >= 0, z1' >= 0, z = 1 + (1 + z0' + z1') + (1 + 0 + z2), z2 >= 0 DEL(z) -{ 1 }-> 1 + F(1 + s + s', 1 + z01 + z11, 1 + 1 + 2, z2) :|: s >= 0, s <= 1, s' >= 0, s' <= 1, z11 >= 0, z01 >= 0, z = 1 + (1 + z01 + z11) + (1 + (1 + 1 + 2) + z2), z2 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z = 1, z' >= 0, z3 >= 0 F(z, z', z'', z3) -{ 1 }-> 1 + DEL(1 + z'' + z3) :|: z'' >= 0, z' >= 0, z = 0, z3 >= 0 eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1, z' = 0 eq(z, z') -{ 0 }-> 0 :|: z' = 1 + z0 + z1, z1 >= 0, z0 >= 0, z = 0 eq(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 eq(z, z') -{ 0 }-> 1 + s'' + s1 :|: s'' >= 0, s'' <= 1, s1 >= 0, s1 <= 1, z1 >= 0, z0 >= 0, z' = 1 + 1 + 2, z = 1 + z0 + z1 Function symbols to be analyzed: Previous analysis results are: eq: runtime: O(1) [0], size: O(1) [1] DEL: runtime: O(n^1) [14*z], size: O(1) [0] F: runtime: O(n^1) [15 + 14*z'' + 14*z3], size: O(1) [1] ---------------------------------------- (39) FinalProof (FINISHED) Computed overall runtime complexity ---------------------------------------- (40) BOUNDS(1, n^1)