22.49/8.20 WORST_CASE(Omega(n^1), O(n^1)) 22.72/8.21 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 22.72/8.21 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 22.72/8.21 22.72/8.21 22.72/8.21 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.72/8.21 22.72/8.21 (0) CpxTRS 22.72/8.21 (1) RcToIrcProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (2) CpxTRS 22.72/8.21 (3) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (4) CpxWeightedTrs 22.72/8.21 (5) CpxWeightedTrsRenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (6) CpxWeightedTrs 22.72/8.21 (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (8) CpxTypedWeightedTrs 22.72/8.21 (9) CompletionProof [UPPER BOUND(ID), 0 ms] 22.72/8.21 (10) CpxTypedWeightedCompleteTrs 22.72/8.21 (11) NarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (12) CpxTypedWeightedCompleteTrs 22.72/8.21 (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] 22.72/8.21 (14) CpxRNTS 22.72/8.21 (15) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (16) CpxRNTS 22.72/8.21 (17) CpxRntsAnalysisOrderProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (18) CpxRNTS 22.72/8.21 (19) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 22.72/8.21 (20) CpxRNTS 22.72/8.21 (21) IntTrsBoundProof [UPPER BOUND(ID), 344 ms] 22.72/8.21 (22) CpxRNTS 22.72/8.21 (23) IntTrsBoundProof [UPPER BOUND(ID), 107 ms] 22.72/8.21 (24) CpxRNTS 22.72/8.21 (25) ResultPropagationProof [UPPER BOUND(ID), 0 ms] 22.72/8.21 (26) CpxRNTS 22.72/8.21 (27) IntTrsBoundProof [UPPER BOUND(ID), 1197 ms] 22.72/8.21 (28) CpxRNTS 22.72/8.21 (29) IntTrsBoundProof [UPPER BOUND(ID), 587 ms] 22.72/8.21 (30) CpxRNTS 22.72/8.21 (31) FinalProof [FINISHED, 0 ms] 22.72/8.21 (32) BOUNDS(1, n^1) 22.72/8.21 (33) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (34) CpxTRS 22.72/8.21 (35) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] 22.72/8.21 (36) typed CpxTrs 22.72/8.21 (37) OrderProof [LOWER BOUND(ID), 0 ms] 22.72/8.21 (38) typed CpxTrs 22.72/8.21 (39) RewriteLemmaProof [LOWER BOUND(ID), 409 ms] 22.72/8.21 (40) proven lower bound 22.72/8.21 (41) LowerBoundPropagationProof [FINISHED, 0 ms] 22.72/8.21 (42) BOUNDS(n^1, INF) 22.72/8.21 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (0) 22.72/8.21 Obligation: 22.72/8.21 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 22.72/8.21 22.72/8.21 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(=(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 =(nil, nil) -> true 22.72/8.21 =(.(x, y), nil) -> false 22.72/8.21 =(nil, .(y, z)) -> false 22.72/8.21 =(.(x, y), .(u, v)) -> and(=(x, u), =(y, v)) 22.72/8.21 22.72/8.21 S is empty. 22.72/8.21 Rewrite Strategy: FULL 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (1) RcToIrcProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Converted rc-obligation to irc-obligation. 22.72/8.21 22.72/8.21 The duplicating contexts are: 22.72/8.21 del(.([], .(y, z))) 22.72/8.21 del(.(x, .([], z))) 22.72/8.21 22.72/8.21 22.72/8.21 The defined contexts are: 22.72/8.21 f([], x1, x2, x3) 22.72/8.21 22.72/8.21 22.72/8.21 As the TRS is an overlay system and the defined contexts and the duplicating contexts don't overlap, we have rc = irc. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (2) 22.72/8.21 Obligation: 22.72/8.21 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 22.72/8.21 22.72/8.21 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(=(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 =(nil, nil) -> true 22.72/8.21 =(.(x, y), nil) -> false 22.72/8.21 =(nil, .(y, z)) -> false 22.72/8.21 =(.(x, y), .(u, v)) -> and(=(x, u), =(y, v)) 22.72/8.21 22.72/8.21 S is empty. 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (3) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Transformed relative TRS to weighted TRS 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (4) 22.72/8.21 Obligation: 22.72/8.21 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 22.72/8.21 22.72/8.21 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(=(x, y), x, y, z) [1] 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) [1] 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) [1] 22.72/8.21 =(nil, nil) -> true [1] 22.72/8.21 =(.(x, y), nil) -> false [1] 22.72/8.21 =(nil, .(y, z)) -> false [1] 22.72/8.21 =(.(x, y), .(u, v)) -> and(=(x, u), =(y, v)) [1] 22.72/8.21 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (5) CpxWeightedTrsRenamingProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Renamed defined symbols to avoid conflicts with arithmetic symbols: 22.72/8.21 22.72/8.21 = => eq 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (6) 22.72/8.21 Obligation: 22.72/8.21 The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, n^1). 22.72/8.21 22.72/8.21 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) [1] 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) [1] 22.72/8.21 eq(nil, nil) -> true [1] 22.72/8.21 eq(.(x, y), nil) -> false [1] 22.72/8.21 eq(nil, .(y, z)) -> false [1] 22.72/8.21 eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] 22.72/8.21 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Infered types. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (8) 22.72/8.21 Obligation: 22.72/8.21 Runtime Complexity Weighted TRS with Types. 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) [1] 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) [1] 22.72/8.21 eq(nil, nil) -> true [1] 22.72/8.21 eq(.(x, y), nil) -> false [1] 22.72/8.21 eq(nil, .(y, z)) -> false [1] 22.72/8.21 eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] 22.72/8.21 22.72/8.21 The TRS has the following type information: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 eq :: .:nil:u:v -> .:nil:u:v -> true:false:and 22.72/8.21 true :: true:false:and 22.72/8.21 false :: true:false:and 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and -> true:false:and -> true:false:and 22.72/8.21 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (9) CompletionProof (UPPER BOUND(ID)) 22.72/8.21 The transformation into a RNTS is sound, since: 22.72/8.21 22.72/8.21 (a) The obligation is a constructor system where every type has a constant constructor, 22.72/8.21 22.72/8.21 (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: 22.72/8.21 22.72/8.21 del_1 22.72/8.21 f_4 22.72/8.21 22.72/8.21 (c) The following functions are completely defined: 22.72/8.21 22.72/8.21 eq_2 22.72/8.21 22.72/8.21 Due to the following rules being added: 22.72/8.21 22.72/8.21 eq(v0, v1) -> null_eq [0] 22.72/8.21 22.72/8.21 And the following fresh constants: null_eq 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (10) 22.72/8.21 Obligation: 22.72/8.21 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 22.72/8.21 22.72/8.21 Runtime Complexity Weighted TRS with Types. 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(eq(x, y), x, y, z) [1] 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) [1] 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) [1] 22.72/8.21 eq(nil, nil) -> true [1] 22.72/8.21 eq(.(x, y), nil) -> false [1] 22.72/8.21 eq(nil, .(y, z)) -> false [1] 22.72/8.21 eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] 22.72/8.21 eq(v0, v1) -> null_eq [0] 22.72/8.21 22.72/8.21 The TRS has the following type information: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 eq :: .:nil:u:v -> .:nil:u:v -> true:false:and:null_eq 22.72/8.21 true :: true:false:and:null_eq 22.72/8.21 false :: true:false:and:null_eq 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and:null_eq -> true:false:and:null_eq -> true:false:and:null_eq 22.72/8.21 null_eq :: true:false:and:null_eq 22.72/8.21 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (11) NarrowingProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Narrowed the inner basic terms of all right-hand sides by a single narrowing step. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (12) 22.72/8.21 Obligation: 22.72/8.21 Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: 22.72/8.21 22.72/8.21 Runtime Complexity Weighted TRS with Types. 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(nil, .(nil, z))) -> f(true, nil, nil, z) [2] 22.72/8.21 del(.(.(x', y'), .(nil, z))) -> f(false, .(x', y'), nil, z) [2] 22.72/8.21 del(.(nil, .(.(y'', z'), z))) -> f(false, nil, .(y'', z'), z) [2] 22.72/8.21 del(.(.(x'', y1), .(.(u, v), z))) -> f(and(eq(x'', u), eq(y1, v)), .(x'', y1), .(u, v), z) [2] 22.72/8.21 del(.(x, .(y, z))) -> f(null_eq, x, y, z) [1] 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) [1] 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) [1] 22.72/8.21 eq(nil, nil) -> true [1] 22.72/8.21 eq(.(x, y), nil) -> false [1] 22.72/8.21 eq(nil, .(y, z)) -> false [1] 22.72/8.21 eq(.(x, y), .(u, v)) -> and(eq(x, u), eq(y, v)) [1] 22.72/8.21 eq(v0, v1) -> null_eq [0] 22.72/8.21 22.72/8.21 The TRS has the following type information: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and:null_eq -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 eq :: .:nil:u:v -> .:nil:u:v -> true:false:and:null_eq 22.72/8.21 true :: true:false:and:null_eq 22.72/8.21 false :: true:false:and:null_eq 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and:null_eq -> true:false:and:null_eq -> true:false:and:null_eq 22.72/8.21 null_eq :: true:false:and:null_eq 22.72/8.21 22.72/8.21 Rewrite Strategy: INNERMOST 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) 22.72/8.21 Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. 22.72/8.21 The constant constructors are abstracted as follows: 22.72/8.21 22.72/8.21 true => 1 22.72/8.21 false => 0 22.72/8.21 nil => 0 22.72/8.21 u => 1 22.72/8.21 v => 2 22.72/8.21 null_eq => 0 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (14) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z) :|: z >= 0, z'' = 1 + 0 + (1 + 0 + z) 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' = v0, v0 >= 0, z1 = v1, v1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + y + z) :|: z2 = y, z >= 0, z3 = z, x >= 0, y >= 0, z'' = 1, z1 = x 22.72/8.21 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 22.72/8.21 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (15) SimplificationProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Simplified the RNTS by moving equalities from the constraints into the right-hand sides. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (16) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (17) CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Found the following analysis order by SCC decomposition: 22.72/8.21 22.72/8.21 { eq } 22.72/8.21 { del, f } 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (18) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {eq}, {del,f} 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (19) ResultPropagationProof (UPPER BOUND(ID)) 22.72/8.21 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (20) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {eq}, {del,f} 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (21) IntTrsBoundProof (UPPER BOUND(ID)) 22.72/8.21 22.72/8.21 Computed SIZE bound using CoFloCo for: eq 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(1) with polynomial bound: 1 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (22) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {eq}, {del,f} 22.72/8.21 Previous analysis results are: 22.72/8.21 eq: runtime: ?, size: O(1) [1] 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (23) IntTrsBoundProof (UPPER BOUND(ID)) 22.72/8.21 22.72/8.21 Computed RUNTIME bound using CoFloCo for: eq 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(1) with polynomial bound: 3 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (24) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 + eq(x, 1) + eq(y, 2) :|: z'' = 1 + x + y, x >= 0, y >= 0, z1 = 1 + 1 + 2 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {del,f} 22.72/8.21 Previous analysis results are: 22.72/8.21 eq: runtime: O(1) [3], size: O(1) [1] 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (25) ResultPropagationProof (UPPER BOUND(ID)) 22.72/8.21 Applied inner abstraction using the recently inferred runtime/size bounds where possible. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (26) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 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 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {del,f} 22.72/8.21 Previous analysis results are: 22.72/8.21 eq: runtime: O(1) [3], size: O(1) [1] 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (27) IntTrsBoundProof (UPPER BOUND(ID)) 22.72/8.21 22.72/8.21 Computed SIZE bound using CoFloCo for: del 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(1) with polynomial bound: 0 22.72/8.21 22.72/8.21 Computed SIZE bound using CoFloCo for: f 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(n^1) with polynomial bound: 1 + z1 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (28) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 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 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: {del,f} 22.72/8.21 Previous analysis results are: 22.72/8.21 eq: runtime: O(1) [3], size: O(1) [1] 22.72/8.21 del: runtime: ?, size: O(1) [0] 22.72/8.21 f: runtime: ?, size: O(n^1) [1 + z1] 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (29) IntTrsBoundProof (UPPER BOUND(ID)) 22.72/8.21 22.72/8.21 Computed RUNTIME bound using KoAT for: del 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(n^1) with polynomial bound: 34*z'' 22.72/8.21 22.72/8.21 Computed RUNTIME bound using CoFloCo for: f 22.72/8.21 after applying outer abstraction to obtain an ITS, 22.72/8.21 resulting in: O(n^1) with polynomial bound: 35 + 34*z2 + 34*z3 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (30) 22.72/8.21 Obligation: 22.72/8.21 Complexity RNTS consisting of the following rules: 22.72/8.21 22.72/8.21 del(z'') -{ 2 }-> f(1, 0, 0, z'' - 2) :|: z'' - 2 >= 0 22.72/8.21 del(z'') -{ 1 }-> f(0, x, y, z) :|: z >= 0, x >= 0, y >= 0, z'' = 1 + x + (1 + y + z) 22.72/8.21 del(z'') -{ 2 }-> f(0, 0, 1 + y'' + z', z) :|: z >= 0, z'' = 1 + 0 + (1 + (1 + y'' + z') + z), z' >= 0, y'' >= 0 22.72/8.21 del(z'') -{ 2 }-> f(0, 1 + x' + y', 0, z) :|: z >= 0, x' >= 0, y' >= 0, z'' = 1 + (1 + x' + y') + (1 + 0 + z) 22.72/8.21 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) 22.72/8.21 eq(z'', z1) -{ 1 }-> 1 :|: z'' = 0, z1 = 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z1 = 0, z'' = 1 + x + y, x >= 0, y >= 0 22.72/8.21 eq(z'', z1) -{ 1 }-> 0 :|: z'' = 0, z >= 0, z1 = 1 + y + z, y >= 0 22.72/8.21 eq(z'', z1) -{ 0 }-> 0 :|: z'' >= 0, z1 >= 0 22.72/8.21 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 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> del(1 + z2 + z3) :|: z3 >= 0, z1 >= 0, z2 >= 0, z'' = 1 22.72/8.21 f(z'', z1, z2, z3) -{ 1 }-> 1 + z1 + del(1 + z2 + z3) :|: z'' = 0, z3 >= 0, z1 >= 0, z2 >= 0 22.72/8.21 22.72/8.21 Function symbols to be analyzed: 22.72/8.21 Previous analysis results are: 22.72/8.21 eq: runtime: O(1) [3], size: O(1) [1] 22.72/8.21 del: runtime: O(n^1) [34*z''], size: O(1) [0] 22.72/8.21 f: runtime: O(n^1) [35 + 34*z2 + 34*z3], size: O(n^1) [1 + z1] 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (31) FinalProof (FINISHED) 22.72/8.21 Computed overall runtime complexity 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (32) 22.72/8.21 BOUNDS(1, n^1) 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (33) RenamingProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Renamed function symbols to avoid clashes with predefined symbol. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (34) 22.72/8.21 Obligation: 22.72/8.21 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 22.72/8.21 22.72/8.21 22.72/8.21 The TRS R consists of the following rules: 22.72/8.21 22.72/8.21 del(.(x, .(y, z))) -> f(='(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 ='(nil, nil) -> true 22.72/8.21 ='(.(x, y), nil) -> false 22.72/8.21 ='(nil, .(y, z)) -> false 22.72/8.21 ='(.(x, y), .(u, v)) -> and(='(x, u), ='(y, v)) 22.72/8.21 22.72/8.21 S is empty. 22.72/8.21 Rewrite Strategy: FULL 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (35) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 22.72/8.21 Infered types. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (36) 22.72/8.21 Obligation: 22.72/8.21 TRS: 22.72/8.21 Rules: 22.72/8.21 del(.(x, .(y, z))) -> f(='(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 ='(nil, nil) -> true 22.72/8.21 ='(.(x, y), nil) -> false 22.72/8.21 ='(nil, .(y, z)) -> false 22.72/8.21 ='(.(x, y), .(u, v)) -> and(='(x, u), ='(y, v)) 22.72/8.21 22.72/8.21 Types: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 =' :: .:nil:u:v -> .:nil:u:v -> true:false:and 22.72/8.21 true :: true:false:and 22.72/8.21 false :: true:false:and 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and -> true:false:and -> true:false:and 22.72/8.21 hole_.:nil:u:v1_0 :: .:nil:u:v 22.72/8.21 hole_true:false:and2_0 :: true:false:and 22.72/8.21 gen_.:nil:u:v3_0 :: Nat -> .:nil:u:v 22.72/8.21 gen_true:false:and4_0 :: Nat -> true:false:and 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (37) OrderProof (LOWER BOUND(ID)) 22.72/8.21 Heuristically decided to analyse the following defined symbols: 22.72/8.21 del, =' 22.72/8.21 22.72/8.21 They will be analysed ascendingly in the following order: 22.72/8.21 =' < del 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (38) 22.72/8.21 Obligation: 22.72/8.21 TRS: 22.72/8.21 Rules: 22.72/8.21 del(.(x, .(y, z))) -> f(='(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 ='(nil, nil) -> true 22.72/8.21 ='(.(x, y), nil) -> false 22.72/8.21 ='(nil, .(y, z)) -> false 22.72/8.21 ='(.(x, y), .(u, v)) -> and(='(x, u), ='(y, v)) 22.72/8.21 22.72/8.21 Types: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 =' :: .:nil:u:v -> .:nil:u:v -> true:false:and 22.72/8.21 true :: true:false:and 22.72/8.21 false :: true:false:and 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and -> true:false:and -> true:false:and 22.72/8.21 hole_.:nil:u:v1_0 :: .:nil:u:v 22.72/8.21 hole_true:false:and2_0 :: true:false:and 22.72/8.21 gen_.:nil:u:v3_0 :: Nat -> .:nil:u:v 22.72/8.21 gen_true:false:and4_0 :: Nat -> true:false:and 22.72/8.21 22.72/8.21 22.72/8.21 Generator Equations: 22.72/8.21 gen_.:nil:u:v3_0(0) <=> nil 22.72/8.21 gen_.:nil:u:v3_0(+(x, 1)) <=> .(nil, gen_.:nil:u:v3_0(x)) 22.72/8.21 gen_true:false:and4_0(0) <=> false 22.72/8.21 gen_true:false:and4_0(+(x, 1)) <=> and(false, gen_true:false:and4_0(x)) 22.72/8.21 22.72/8.21 22.72/8.21 The following defined symbols remain to be analysed: 22.72/8.21 =', del 22.72/8.21 22.72/8.21 They will be analysed ascendingly in the following order: 22.72/8.21 =' < del 22.72/8.21 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (39) RewriteLemmaProof (LOWER BOUND(ID)) 22.72/8.21 Proved the following rewrite lemma: 22.72/8.21 del(gen_.:nil:u:v3_0(+(2, n56_0))) -> *5_0, rt in Omega(n56_0) 22.72/8.21 22.72/8.21 Induction Base: 22.72/8.21 del(gen_.:nil:u:v3_0(+(2, 0))) 22.72/8.21 22.72/8.21 Induction Step: 22.72/8.21 del(gen_.:nil:u:v3_0(+(2, +(n56_0, 1)))) ->_R^Omega(1) 22.72/8.21 f(='(nil, nil), nil, nil, gen_.:nil:u:v3_0(+(1, n56_0))) ->_R^Omega(1) 22.72/8.21 f(true, nil, nil, gen_.:nil:u:v3_0(+(1, n56_0))) ->_R^Omega(1) 22.72/8.21 del(.(nil, gen_.:nil:u:v3_0(+(1, n56_0)))) ->_IH 22.72/8.21 *5_0 22.72/8.21 22.72/8.21 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (40) 22.72/8.21 Obligation: 22.72/8.21 Proved the lower bound n^1 for the following obligation: 22.72/8.21 22.72/8.21 TRS: 22.72/8.21 Rules: 22.72/8.21 del(.(x, .(y, z))) -> f(='(x, y), x, y, z) 22.72/8.21 f(true, x, y, z) -> del(.(y, z)) 22.72/8.21 f(false, x, y, z) -> .(x, del(.(y, z))) 22.72/8.21 ='(nil, nil) -> true 22.72/8.21 ='(.(x, y), nil) -> false 22.72/8.21 ='(nil, .(y, z)) -> false 22.72/8.21 ='(.(x, y), .(u, v)) -> and(='(x, u), ='(y, v)) 22.72/8.21 22.72/8.21 Types: 22.72/8.21 del :: .:nil:u:v -> .:nil:u:v 22.72/8.21 . :: .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 f :: true:false:and -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v -> .:nil:u:v 22.72/8.21 =' :: .:nil:u:v -> .:nil:u:v -> true:false:and 22.72/8.21 true :: true:false:and 22.72/8.21 false :: true:false:and 22.72/8.21 nil :: .:nil:u:v 22.72/8.21 u :: .:nil:u:v 22.72/8.21 v :: .:nil:u:v 22.72/8.21 and :: true:false:and -> true:false:and -> true:false:and 22.72/8.21 hole_.:nil:u:v1_0 :: .:nil:u:v 22.72/8.21 hole_true:false:and2_0 :: true:false:and 22.72/8.21 gen_.:nil:u:v3_0 :: Nat -> .:nil:u:v 22.72/8.21 gen_true:false:and4_0 :: Nat -> true:false:and 22.72/8.21 22.72/8.21 22.72/8.21 Generator Equations: 22.72/8.21 gen_.:nil:u:v3_0(0) <=> nil 22.72/8.21 gen_.:nil:u:v3_0(+(x, 1)) <=> .(nil, gen_.:nil:u:v3_0(x)) 22.72/8.21 gen_true:false:and4_0(0) <=> false 22.72/8.21 gen_true:false:and4_0(+(x, 1)) <=> and(false, gen_true:false:and4_0(x)) 22.72/8.21 22.72/8.21 22.72/8.21 The following defined symbols remain to be analysed: 22.72/8.21 del 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (41) LowerBoundPropagationProof (FINISHED) 22.72/8.21 Propagated lower bound. 22.72/8.21 ---------------------------------------- 22.72/8.21 22.72/8.21 (42) 22.72/8.21 BOUNDS(n^1, INF) 22.72/8.24 EOF