WORST_CASE(INF,?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P_1, arg2'=arg2P_1, [ x12_1>-1 && arg2>1 && -2*x14_1+x13_1==1 && x13_1>-1 && arg1>0 && arg1==arg1P_1 && arg2==arg2P_1 ], cost: 1 3: f1_0_main_Load -> f1_0_main_Load\' : arg1'=arg1P_4, arg2'=arg2P_4, [ x22_1>-1 && arg2>1 && x23_1>-1 && -2*x24_1+x23_1==0 && arg1>0 && arg1==arg1P_4 && arg2==arg2P_4 ], cost: 1 1: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=arg1P_2, arg2'=arg2P_2, [ arg1P_2>-1 && arg2>1 && -2*x19_1+x18_1==1 && x18_1>-1 && arg1>0 && -2*x19_1+x18_1<2 && -2*x19_1+x18_1>=0 ], cost: 1 4: f1_0_main_Load\' -> f146_0_even_EQ : arg1'=arg1P_5, arg2'=arg2P_5, [ x27_1>-1 && arg2>1 && x28_1>-1 && -2*x29_1+x28_1==0 && arg1>0 && -2*x29_1+x28_1<2 && -2*x29_1+x28_1>=0 && -x27_1==arg1P_5 ], cost: 1 2: f122_0_even_EQ -> f146_0_even_EQ : arg1'=arg1P_3, arg2'=arg2P_3, [ 0==arg1 && 0==arg1P_3 ], cost: 1 5: f122_0_even_EQ -> f122_0_even_EQ : arg1'=arg1P_6, arg2'=arg2P_6, [ arg1>1 && -2+arg1==arg1P_6 ], cost: 1 6: f146_0_even_EQ -> f146_0_even_EQ : arg1'=arg1P_7, arg2'=arg2P_7, [ arg1<0 && arg1<3 && -2+arg1==arg1P_7 ], cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 1+2*x14_1>-1 && arg1>0 ], cost: 1 3: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 2*x24_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=arg1P_2, arg2'=arg2P_2, [ arg1P_2>-1 && arg2>1 && 1+2*x19_1>-1 && arg1>0 ], cost: 1 4: f1_0_main_Load\' -> f146_0_even_EQ : arg1'=-x27_1, arg2'=arg2P_5, [ x27_1>-1 && arg2>1 && 2*x29_1>-1 && arg1>0 ], cost: 1 2: f122_0_even_EQ -> f146_0_even_EQ : arg1'=0, arg2'=arg2P_3, [ 0==arg1 ], cost: 1 5: f122_0_even_EQ -> f122_0_even_EQ : arg1'=-2+arg1, arg2'=arg2P_6, [ arg1>1 ], cost: 1 6: f146_0_even_EQ -> f146_0_even_EQ : arg1'=-2+arg1, arg2'=arg2P_7, [ arg1<0 ], cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 2. Accelerating the following rules: 5: f122_0_even_EQ -> f122_0_even_EQ : arg1'=-2+arg1, arg2'=arg2P_6, [ arg1>1 ], cost: 1 Accelerated rule 5 with metering function meter (where 2*meter==-1+arg1), yielding the new rule 8. Removing the simple loops: 5. Accelerating simple loops of location 3. Accelerating the following rules: 6: f146_0_even_EQ -> f146_0_even_EQ : arg1'=-2+arg1, arg2'=arg2P_7, [ arg1<0 ], cost: 1 Accelerated rule 6 with NONTERM, yielding the new rule 9. Removing the simple loops: 6. Accelerated all simple loops using metering functions (where possible): Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 1+2*x14_1>-1 && arg1>0 ], cost: 1 3: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 2*x24_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=arg1P_2, arg2'=arg2P_2, [ arg1P_2>-1 && arg2>1 && 1+2*x19_1>-1 && arg1>0 ], cost: 1 4: f1_0_main_Load\' -> f146_0_even_EQ : arg1'=-x27_1, arg2'=arg2P_5, [ x27_1>-1 && arg2>1 && 2*x29_1>-1 && arg1>0 ], cost: 1 2: f122_0_even_EQ -> f146_0_even_EQ : arg1'=0, arg2'=arg2P_3, [ 0==arg1 ], cost: 1 8: f122_0_even_EQ -> f122_0_even_EQ : arg1'=arg1-2*meter, arg2'=arg2P_6, [ arg1>1 && 2*meter==-1+arg1 && meter>=1 ], cost: meter 9: f146_0_even_EQ -> [6] : [ arg1<0 ], cost: NONTERM 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 Chained accelerated rules (with incoming rules): Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 1+2*x14_1>-1 && arg1>0 ], cost: 1 3: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 2*x24_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=arg1P_2, arg2'=arg2P_2, [ arg1P_2>-1 && arg2>1 && 1+2*x19_1>-1 && arg1>0 ], cost: 1 4: f1_0_main_Load\' -> f146_0_even_EQ : arg1'=-x27_1, arg2'=arg2P_5, [ x27_1>-1 && arg2>1 && 2*x29_1>-1 && arg1>0 ], cost: 1 10: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2>1 && 1+2*x19_1>-1 && arg1>0 && 1+2*meter>1 && meter>=1 ], cost: 1+meter 11: f1_0_main_Load\' -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2>1 && 2*x29_1>-1 && arg1>0 && -x27_1<0 ], cost: NONTERM 2: f122_0_even_EQ -> f146_0_even_EQ : arg1'=0, arg2'=arg2P_3, [ 0==arg1 ], cost: 1 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 0: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 1+2*x14_1>-1 && arg1>0 ], cost: 1 3: f1_0_main_Load -> f1_0_main_Load\' : [ arg2>1 && 2*x24_1>-1 && arg1>0 ], cost: 1 10: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2>1 && 1+2*x19_1>-1 && arg1>0 && 1+2*meter>1 && meter>=1 ], cost: 1+meter 11: f1_0_main_Load\' -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2>1 && 2*x29_1>-1 && arg1>0 && -x27_1<0 ], cost: NONTERM 7: __init -> f1_0_main_Load : arg1'=arg1P_8, arg2'=arg2P_8, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: __init 10: f1_0_main_Load\' -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2>1 && 1+2*x19_1>-1 && arg1>0 && 1+2*meter>1 && meter>=1 ], cost: 1+meter 11: f1_0_main_Load\' -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2>1 && 2*x29_1>-1 && arg1>0 && -x27_1<0 ], cost: NONTERM 12: __init -> f1_0_main_Load\' : arg1'=arg1P_8, arg2'=arg2P_8, [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 ], cost: 2 13: __init -> f1_0_main_Load\' : arg1'=arg1P_8, arg2'=arg2P_8, [ arg2P_8>1 && 2*x24_1>-1 && arg1P_8>0 ], cost: 2 Eliminated locations (on tree-shaped paths): Start location: __init 14: __init -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 && 1+2*x19_1>-1 && 1+2*meter>1 && meter>=1 ], cost: 3+meter 15: __init -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 && 2*x29_1>-1 && -x27_1<0 ], cost: NONTERM 16: __init -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2P_8>1 && 2*x24_1>-1 && arg1P_8>0 && 1+2*x19_1>-1 && 1+2*meter>1 && meter>=1 ], cost: 3+meter 17: __init -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2P_8>1 && 2*x24_1>-1 && arg1P_8>0 && 2*x29_1>-1 && -x27_1<0 ], cost: NONTERM ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 14: __init -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 && 1+2*x19_1>-1 && 1+2*meter>1 && meter>=1 ], cost: 3+meter 15: __init -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 && 2*x29_1>-1 && -x27_1<0 ], cost: NONTERM 16: __init -> f122_0_even_EQ : arg1'=1, arg2'=arg2P_6, [ arg2P_8>1 && 2*x24_1>-1 && arg1P_8>0 && 1+2*x19_1>-1 && 1+2*meter>1 && meter>=1 ], cost: 3+meter 17: __init -> [6] : arg1'=-x27_1, arg2'=arg2P_5, [ arg2P_8>1 && 2*x24_1>-1 && arg1P_8>0 && 2*x29_1>-1 && -x27_1<0 ], cost: NONTERM Computing asymptotic complexity for rule 14 Solved the limit problem by the following transformations: Created initial limit problem: 2+2*x19_1 (+/+!), 2*meter (+/+!), 2+2*x14_1 (+/+!), 3+meter (+), -1+arg2P_8 (+/+!), arg1P_8 (+/+!) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {x19_1==n,arg2P_8==n,x14_1==n,meter==n,arg1P_8==n} resulting limit problem: [solved] Solution: x19_1 / n arg2P_8 / n x14_1 / n meter / n arg1P_8 / n Resulting cost 3+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: 3+n Rule cost: 3+meter Rule guard: [ arg2P_8>1 && 1+2*x14_1>-1 && arg1P_8>0 && 1+2*x19_1>-1 && 1+2*meter>1 ] WORST_CASE(INF,?)