/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(NON_POLY, ?) proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(INF, INF). (0) CpxIntTrs (1) Loat Proof [FINISHED, 2144 ms] (2) BOUNDS(INF, INF) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: f0(A, B, C, D, E, F, G, H) -> Com_1(f15(10, 35, 285, I, I, 0, G, H)) :|: TRUE f15(A, B, C, D, E, F, G, H) -> Com_1(f25(A, B, C, D, E, F, I, 1)) :|: A >= F + 1 f25(A, B, C, D, E, F, G, H) -> Com_1(f25(A, B, C, D, E, F, I, H + 1)) :|: E >= H + 1 f41(A, B, C, D, E, F, G, H) -> Com_1(f15(A, B, C, D, E, F + 1, G, H)) :|: E >= B f41(A, B, C, D, E, F, G, H) -> Com_1(f15(A, B, C, D, E + 1, F + 1, G, H)) :|: B >= E + 1 f25(A, B, C, D, E, F, G, H) -> Com_1(f41(A, B, C, D, E, F, G, H)) :|: H >= E && I >= J + 1 f25(A, B, C, D, E, F, G, H) -> Com_1(f41(A, B, C, D, E, F, G, H)) :|: H >= E f25(A, B, C, D, E, F, G, H) -> Com_1(f15(A, B, C, D, E - 1, F + 1, G, H)) :|: H >= E f15(A, B, C, D, E, F, G, H) -> Com_1(f48(A, B, C, D, E, F, G, H)) :|: F >= A The start-symbols are:[f0_8] ---------------------------------------- (1) Loat Proof (FINISHED) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 1: f15 -> f25 : G'=free_1, H'=1, [ A>=1+F ], cost: 1 8: f15 -> f48 : [ F>=A ], cost: 1 2: f25 -> f25 : G'=free_2, H'=1+H, [ E>=1+H ], cost: 1 5: f25 -> f41 : [ H>=E && free_4>=1+free_3 ], cost: 1 6: f25 -> f41 : [ H>=E ], cost: 1 7: f25 -> f15 : E'=-1+E, F'=1+F, [ H>=E ], cost: 1 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 Removed unreachable and leaf rules: Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 1: f15 -> f25 : G'=free_1, H'=1, [ A>=1+F ], cost: 1 2: f25 -> f25 : G'=free_2, H'=1+H, [ E>=1+H ], cost: 1 5: f25 -> f41 : [ H>=E && free_4>=1+free_3 ], cost: 1 6: f25 -> f41 : [ H>=E ], cost: 1 7: f25 -> f15 : E'=-1+E, F'=1+F, [ H>=E ], cost: 1 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Simplified all rules, resulting in: Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 1: f15 -> f25 : G'=free_1, H'=1, [ A>=1+F ], cost: 1 2: f25 -> f25 : G'=free_2, H'=1+H, [ E>=1+H ], cost: 1 6: f25 -> f41 : [ H>=E ], cost: 1 7: f25 -> f15 : E'=-1+E, F'=1+F, [ H>=E ], cost: 1 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 2. Accelerating the following rules: 2: f25 -> f25 : G'=free_2, H'=1+H, [ E>=1+H ], cost: 1 Accelerated rule 2 with metering function -H+E, yielding the new rule 9. Removing the simple loops: 2. Accelerated all simple loops using metering functions (where possible): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 1: f15 -> f25 : G'=free_1, H'=1, [ A>=1+F ], cost: 1 6: f25 -> f41 : [ H>=E ], cost: 1 7: f25 -> f15 : E'=-1+E, F'=1+F, [ H>=E ], cost: 1 9: f25 -> f25 : G'=free_2, H'=E, [ E>=1+H ], cost: -H+E 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Chained accelerated rules (with incoming rules): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 1: f15 -> f25 : G'=free_1, H'=1, [ A>=1+F ], cost: 1 10: f15 -> f25 : G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: E 6: f25 -> f41 : [ H>=E ], cost: 1 7: f25 -> f15 : E'=-1+E, F'=1+F, [ H>=E ], cost: 1 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Eliminated locations (on tree-shaped paths): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 11: f15 -> f41 : G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: 2 12: f15 -> f15 : E'=-1+E, F'=1+F, G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: 2 13: f15 -> f41 : G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E 14: f15 -> f15 : E'=-1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Accelerating simple loops of location 1. Accelerating the following rules: 12: f15 -> f15 : E'=-1+E, F'=1+F, G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: 2 14: f15 -> f15 : E'=-1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E Accelerated rule 12 with metering function -F+A, yielding the new rule 15. Found no metering function for rule 14. Removing the simple loops: 12. Accelerated all simple loops using metering functions (where possible): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 11: f15 -> f41 : G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: 2 13: f15 -> f41 : G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E 14: f15 -> f15 : E'=-1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E 15: f15 -> f15 : E'=F-A+E, F'=A, G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: -2*F+2*A 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 Chained accelerated rules (with incoming rules): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 16: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ free>=2 ], cost: 2+free 19: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-10+free, F'=10, G'=free_1, H'=1, [ 1>=free ], cost: 21 11: f15 -> f41 : G'=free_1, H'=1, [ A>=1+F && 1>=E ], cost: 2 13: f15 -> f41 : G'=free_2, H'=E, [ A>=1+F && E>=2 ], cost: 1+E 3: f41 -> f15 : F'=1+F, [ E>=B ], cost: 1 4: f41 -> f15 : E'=1+E, F'=1+F, [ B>=1+E ], cost: 1 17: f41 -> f15 : E'=-1+E, F'=2+F, G'=free_2, H'=E, [ E>=B && A>=2+F && E>=2 ], cost: 2+E 18: f41 -> f15 : F'=2+F, G'=free_2, H'=1+E, [ B>=1+E && A>=2+F && 1+E>=2 ], cost: 3+E 20: f41 -> f15 : E'=1+F-A+E, F'=A, G'=free_1, H'=1, [ E>=B && A>=2+F && 1>=E ], cost: -1-2*F+2*A 21: f41 -> f15 : E'=2+F-A+E, F'=A, G'=free_1, H'=1, [ B>=1+E && A>=2+F && 1>=1+E ], cost: -1-2*F+2*A Eliminated locations (on tree-shaped paths): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 16: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ free>=2 ], cost: 2+free 19: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-10+free, F'=10, G'=free_1, H'=1, [ 1>=free ], cost: 21 22: f15 -> f15 : F'=1+F, G'=free_1, H'=1, [ A>=1+F && 1>=E && E>=B ], cost: 3 23: f15 -> f15 : E'=1+E, F'=1+F, G'=free_1, H'=1, [ A>=1+F && 1>=E && B>=1+E ], cost: 3 24: f15 -> f15 : F'=2+F, G'=free_2, H'=1+E, [ 1>=E && B>=1+E && A>=2+F && 1+E>=2 ], cost: 5+E 25: f15 -> f15 : E'=1+F-A+E, F'=A, G'=free_1, H'=1, [ 1>=E && E>=B && A>=2+F ], cost: 1-2*F+2*A 26: f15 -> f15 : E'=2+F-A+E, F'=A, G'=free_1, H'=1, [ B>=1+E && A>=2+F && 1>=1+E ], cost: 1-2*F+2*A 27: f15 -> f15 : F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && E>=B ], cost: 2+E 28: f15 -> f15 : E'=1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && B>=1+E ], cost: 2+E 29: f15 -> f15 : E'=-1+E, F'=2+F, G'=free_2, H'=E, [ E>=2 && E>=B && A>=2+F ], cost: 3+2*E 30: f15 -> f15 : F'=2+F, G'=free_2, H'=1+E, [ E>=2 && B>=1+E && A>=2+F ], cost: 4+2*E 31: f15 -> [7] : [ A>=1+F && E>=2 ], cost: 1+E Applied pruning (of leafs and parallel rules): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 16: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ free>=2 ], cost: 2+free 19: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-10+free, F'=10, G'=free_1, H'=1, [ 1>=free ], cost: 21 25: f15 -> f15 : E'=1+F-A+E, F'=A, G'=free_1, H'=1, [ 1>=E && E>=B && A>=2+F ], cost: 1-2*F+2*A 26: f15 -> f15 : E'=2+F-A+E, F'=A, G'=free_1, H'=1, [ B>=1+E && A>=2+F && 1>=1+E ], cost: 1-2*F+2*A 27: f15 -> f15 : F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && E>=B ], cost: 2+E 28: f15 -> f15 : E'=1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && B>=1+E ], cost: 2+E 30: f15 -> f15 : F'=2+F, G'=free_2, H'=1+E, [ E>=2 && B>=1+E && A>=2+F ], cost: 4+2*E 31: f15 -> [7] : [ A>=1+F && E>=2 ], cost: 1+E Accelerating simple loops of location 1. Accelerating the following rules: 25: f15 -> f15 : E'=1+F-A+E, F'=A, G'=free_1, H'=1, [ 1>=E && E>=B && A>=2+F ], cost: 1-2*F+2*A 26: f15 -> f15 : E'=2+F-A+E, F'=A, G'=free_1, H'=1, [ B>=1+E && A>=2+F && 1>=1+E ], cost: 1-2*F+2*A 27: f15 -> f15 : F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && E>=B ], cost: 2+E 28: f15 -> f15 : E'=1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && B>=1+E ], cost: 2+E 30: f15 -> f15 : F'=2+F, G'=free_2, H'=1+E, [ E>=2 && B>=1+E && A>=2+F ], cost: 4+2*E Found no metering function for rule 25. Found no metering function for rule 26. Accelerated rule 27 with metering function -F+A, yielding the new rule 32. Found no metering function for rule 28. Accelerated rule 30 with metering function meter (where 2*meter==-1-F+A), yielding the new rule 33. During metering: Instantiating temporary variables by {meter==1} During metering: Instantiating temporary variables by {meter==1} Removing the simple loops: 27 30. Accelerated all simple loops using metering functions (where possible): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 16: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ free>=2 ], cost: 2+free 19: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-10+free, F'=10, G'=free_1, H'=1, [ 1>=free ], cost: 21 25: f15 -> f15 : E'=1+F-A+E, F'=A, G'=free_1, H'=1, [ 1>=E && E>=B && A>=2+F ], cost: 1-2*F+2*A 26: f15 -> f15 : E'=2+F-A+E, F'=A, G'=free_1, H'=1, [ B>=1+E && A>=2+F && 1>=1+E ], cost: 1-2*F+2*A 28: f15 -> f15 : E'=1+E, F'=1+F, G'=free_2, H'=E, [ A>=1+F && E>=2 && B>=1+E ], cost: 2+E 31: f15 -> [7] : [ A>=1+F && E>=2 ], cost: 1+E 32: f15 -> f15 : F'=A, G'=free_2, H'=E, [ A>=1+F && E>=2 && E>=B ], cost: -2*F+2*A-(F-A)*E 33: f15 -> f15 : F'=F+2*meter, G'=free_2, H'=1+E, [ E>=2 && B>=1+E && A>=2+F && 2*meter==-1-F+A && meter>=1 ], cost: 2*meter*E+4*meter Chained accelerated rules (with incoming rules): Start location: f0 0: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [], cost: 1 16: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ free>=2 ], cost: 2+free 19: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-10+free, F'=10, G'=free_1, H'=1, [ 1>=free ], cost: 21 34: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-8+free, F'=10, G'=free_1, H'=1, [ 1>=1+free ], cost: 22 35: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=1+free, F'=1, G'=free_2, H'=free, [ free>=2 && 35>=1+free ], cost: 3+free 36: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=2, G'=free_2, H'=-1+free, [ -1+free>=2 && 35>=free ], cost: 3+2*free 37: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=free, F'=10, G'=free_2, H'=free, [ free>=35 ], cost: 21+10*free 38: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=10, G'=free_2, H'=-1+free, [ -1+free>=35 ], cost: 11+10*free 39: f0 -> f15 : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=9, G'=free_2, H'=free, [ -1+free>=2 && 35>=free ], cost: 10+9*free 31: f15 -> [7] : [ A>=1+F && E>=2 ], cost: 1+E Eliminated locations (on tree-shaped paths): Start location: f0 40: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [ free>=2 ], cost: 2+free 41: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ -1+free>=2 ], cost: 2+2*free 42: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=1+free, F'=1, G'=free_2, H'=free, [ free>=2 && 35>=1+free ], cost: 5+2*free 43: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=free, F'=2, G'=free_2, H'=-1+free, [ -1+free>=2 && 35>=free ], cost: 4+3*free 44: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=9, G'=free_2, H'=free, [ -1+free>=2 && 35>=free ], cost: 10+10*free 45: f0 -> [9] : [ free>=35 ], cost: 21+10*free 46: f0 -> [9] : [ -1+free>=35 ], cost: 11+10*free ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: f0 40: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=free, F'=0, [ free>=2 ], cost: 2+free 41: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=1, G'=free_2, H'=free, [ -1+free>=2 ], cost: 2+2*free 42: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=1+free, F'=1, G'=free_2, H'=free, [ free>=2 && 35>=1+free ], cost: 5+2*free 43: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=free, F'=2, G'=free_2, H'=-1+free, [ -1+free>=2 && 35>=free ], cost: 4+3*free 44: f0 -> [7] : A'=10, B'=35, C'=285, D'=free, E'=-1+free, F'=9, G'=free_2, H'=free, [ -1+free>=2 && 35>=free ], cost: 10+10*free 45: f0 -> [9] : [ free>=35 ], cost: 21+10*free 46: f0 -> [9] : [ -1+free>=35 ], cost: 11+10*free Computing asymptotic complexity for rule 40 Solved the limit problem by the following transformations: Created initial limit problem: 2+free (+), -1+free (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {free==n} resulting limit problem: [solved] Solution: free / n Resulting cost 2+n has complexity: Unbounded Found new complexity Unbounded. Obtained the following overall complexity (w.r.t. the length of the input n): Complexity: Unbounded Cpx degree: Unbounded Solved cost: 2+n Rule cost: 2+free Rule guard: [ free>=2 ] WORST_CASE(INF,?) ---------------------------------------- (2) BOUNDS(INF, INF)