WORST_CASE(INF,?) ### Pre-processing the ITS problem ### Initial linear ITS problem Start location: __init 0: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ x4_1>-1 && arg2>1 && arg1P_1>-1 && x5_1>arg2P_1 && x5_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ x10_1>-1 && arg2>1 && arg2P_2<1 && arg1P_2>-1 && arg1>0 ], cost: 1 12: f1_0_main_Load -> f196_0_create_LE : arg1'=arg1P_13, arg2'=arg2P_13, [ x34_1>-1 && arg2>1 && x33_1>-1 && arg1>0 && -1+x33_1==arg1P_13 ], cost: 1 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg1'=arg1P_3, arg2'=arg2P_3, [ arg2>0 && arg1==arg1P_3 && 0==arg2P_3 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg1'=arg1P_4, arg2'=arg2P_4, [ arg1==arg1P_4 && 1==arg2P_4 ], cost: 1 4: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : arg1'=arg1P_5, arg2'=arg2P_5, [ -2*x25_1+arg1==0 && arg2>0 && x29_10 && arg1>=x36_1 && arg1==arg1P_5 && arg2==arg2P_5 ], cost: 1 6: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : arg1'=arg1P_7, arg2'=arg2P_7, [ -2*x44_1+arg1==1 && arg2>0 && x45_10 && arg1>=x46_1 && arg1==arg1P_7 && arg2==arg2P_7 ], cost: 1 8: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : arg1'=arg1P_9, arg2'=arg2P_9, [ -2*x54_1+arg1==1 && arg2>0 && x55_1=x56_1 && arg1==arg1P_9 && arg2==arg2P_9 ], cost: 1 10: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : arg1'=arg1P_11, arg2'=arg2P_11, [ -2*x64_1+arg1==0 && arg2>0 && x65_1=x66_1 && arg1==arg1P_11 && arg2==arg2P_11 ], cost: 1 5: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=arg2P_6, [ -2*x40_1+arg1==0 && arg2>0 && x41_1=arg1P_6 && x41_1>0 && -2*x40_1+arg1>=0 && -2*x40_1+arg1<2 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 0==arg2P_6 ], cost: 1 7: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=arg2P_8, [ arg1-2*x50_1==1 && arg2>0 && x51_1=arg1P_8 && x51_1>0 && arg1-2*x50_1>=0 && arg1-2*x50_1<2 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1==arg2P_8 ], cost: 1 9: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=arg2P_10, [ arg1-2*x60_1==1 && arg2>0 && arg1>=arg1P_10 && x61_1=0 && arg1-2*x60_1<2 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 && 1==arg2P_10 ], cost: 1 11: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=arg2P_12, [ -2*x70_1+arg1==0 && arg2>0 && arg1>=arg1P_12 && x71_1=0 && -2*x70_1+arg1<2 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 && 1==arg2P_12 ], cost: 1 13: f196_0_create_LE -> f196_0_create_LE : arg1'=arg1P_14, arg2'=arg2P_14, [ arg1>0 && -1+arg1==arg1P_14 ], cost: 1 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 Checking for constant complexity: The following rule is satisfiable with cost >= 1, yielding constant complexity: 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 Simplified all rules, resulting in: Start location: __init 0: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2>1 && arg1P_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2>1 && arg2P_2<1 && arg1P_2>-1 && arg1>0 ], cost: 1 12: f1_0_main_Load -> f196_0_create_LE : arg1'=-1+x33_1, arg2'=arg2P_13, [ arg2>1 && x33_1>-1 && arg1>0 ], cost: 1 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 4: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x25_1+arg1==0 && 1<=-1+arg2 ], cost: 1 6: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x44_1+arg1==1 && 1<=-1+arg2 ], cost: 1 8: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x54_1+arg1==1 && arg2>0 ], cost: 1 10: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x64_1+arg1==0 && arg2>0 ], cost: 1 5: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 1<=-1+arg2 ], cost: 1 7: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 1 9: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ arg1-2*x60_1==1 && arg2>0 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 1 11: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x70_1+arg1==0 && arg2>0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 1 13: f196_0_create_LE -> f196_0_create_LE : arg1'=-1+arg1, arg2'=arg2P_14, [ arg1>0 ], cost: 1 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 ### Simplification by acceleration and chaining ### Accelerating simple loops of location 4. Accelerating the following rules: 13: f196_0_create_LE -> f196_0_create_LE : arg1'=-1+arg1, arg2'=arg2P_14, [ arg1>0 ], cost: 1 Accelerated rule 13 with metering function arg1, yielding the new rule 15. Removing the simple loops: 13. Accelerated all simple loops using metering functions (where possible): Start location: __init 0: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2>1 && arg1P_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2>1 && arg2P_2<1 && arg1P_2>-1 && arg1>0 ], cost: 1 12: f1_0_main_Load -> f196_0_create_LE : arg1'=-1+x33_1, arg2'=arg2P_13, [ arg2>1 && x33_1>-1 && arg1>0 ], cost: 1 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 4: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x25_1+arg1==0 && 1<=-1+arg2 ], cost: 1 6: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x44_1+arg1==1 && 1<=-1+arg2 ], cost: 1 8: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x54_1+arg1==1 && arg2>0 ], cost: 1 10: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x64_1+arg1==0 && arg2>0 ], cost: 1 5: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 1<=-1+arg2 ], cost: 1 7: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 1 9: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ arg1-2*x60_1==1 && arg2>0 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 1 11: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x70_1+arg1==0 && arg2>0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 1 15: f196_0_create_LE -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg1>0 ], cost: arg1 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 Chained accelerated rules (with incoming rules): Start location: __init 0: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2>1 && arg1P_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2>1 && arg2P_2<1 && arg1P_2>-1 && arg1>0 ], cost: 1 12: f1_0_main_Load -> f196_0_create_LE : arg1'=-1+x33_1, arg2'=arg2P_13, [ arg2>1 && x33_1>-1 && arg1>0 ], cost: 1 16: f1_0_main_Load -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2>1 && arg1>0 && -1+x33_1>0 ], cost: x33_1 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 4: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x25_1+arg1==0 && 1<=-1+arg2 ], cost: 1 6: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x44_1+arg1==1 && 1<=-1+arg2 ], cost: 1 8: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x54_1+arg1==1 && arg2>0 ], cost: 1 10: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x64_1+arg1==0 && arg2>0 ], cost: 1 5: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 1<=-1+arg2 ], cost: 1 7: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 1 9: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ arg1-2*x60_1==1 && arg2>0 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 1 11: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x70_1+arg1==0 && arg2>0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 1 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 0: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2>1 && arg1P_1>-1 && arg1>0 ], cost: 1 1: f1_0_main_Load -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2>1 && arg2P_2<1 && arg1P_2>-1 && arg1>0 ], cost: 1 16: f1_0_main_Load -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2>1 && arg1>0 && -1+x33_1>0 ], cost: x33_1 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 4: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x25_1+arg1==0 && 1<=-1+arg2 ], cost: 1 6: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x44_1+arg1==1 && 1<=-1+arg2 ], cost: 1 8: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x54_1+arg1==1 && arg2>0 ], cost: 1 10: f951_0_slide93_EQ -> f951_0_slide93_EQ\' : [ -2*x64_1+arg1==0 && arg2>0 ], cost: 1 5: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 1<=-1+arg2 ], cost: 1 7: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 1 9: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ arg1-2*x60_1==1 && arg2>0 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 1 11: f951_0_slide93_EQ\' -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x70_1+arg1==0 && arg2>0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 1 14: __init -> f1_0_main_Load : arg1'=arg1P_15, arg2'=arg2P_15, [], cost: 1 Eliminated locations (on tree-shaped paths): Start location: __init 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 20: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 ], cost: 2 21: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x70_1+arg1==0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 2 22: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ -2*x44_1+arg1==1 && 1<=-1+arg2 && arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 ], cost: 2 23: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x44_1+arg1==1 && 1<=-1+arg2 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 24: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ -2*x54_1+arg1==1 && arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 2 25: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x54_1+arg1==1 && arg2>0 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 26: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x64_1+arg1==0 && -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 && 1<=-1+arg2 ], cost: 2 27: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x64_1+arg1==0 && arg2>0 && -2*x70_1+arg1==0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 2 17: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2P_15>1 && arg1P_1>-1 && arg1P_15>0 ], cost: 2 18: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2P_15>1 && arg2P_2<1 && arg1P_2>-1 && arg1P_15>0 ], cost: 2 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Applied pruning (of leafs and parallel rules): Start location: __init 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 20: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 ], cost: 2 21: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x70_1+arg1==0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 2 23: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x44_1+arg1==1 && 1<=-1+arg2 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 24: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ -2*x54_1+arg1==1 && arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 2 25: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x54_1+arg1==1 && arg2>0 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 17: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2P_15>1 && arg1P_1>-1 && arg1P_15>0 ], cost: 2 18: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2P_15>1 && arg2P_2<1 && arg1P_2>-1 && arg1P_15>0 ], cost: 2 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Accelerating simple loops of location 2. Accelerating the following rules: 20: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 ], cost: 2 21: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x70_1+arg1==0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 2 23: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x44_1+arg1==1 && 1<=-1+arg2 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 24: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ -2*x54_1+arg1==1 && arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 2 25: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x54_1+arg1==1 && arg2>0 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 Found no metering function for rule 20. Found no metering function for rule 21. Found no metering function for rule 23. Found no metering function for rule 24. Accelerated rule 25 with NONTERM (after strengthening guard), yielding the new rule 28. Removing the simple loops:. Accelerated all simple loops using metering functions (where possible): Start location: __init 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 20: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_6, arg2'=0, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x40_1+arg1==0 && arg1>=arg1P_6 && -2*arg1P_6+arg1<2 && -2*arg1P_6+arg1>=0 ], cost: 2 21: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_12, arg2'=1, [ -2*x25_1+arg1==0 && 1<=-1+arg2 && -2*x70_1+arg1==0 && arg1>=arg1P_12 && -2*arg1P_12+arg1<2 && -2*arg1P_12+arg1>=0 ], cost: 2 23: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x44_1+arg1==1 && 1<=-1+arg2 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 24: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_8, arg2'=1, [ -2*x54_1+arg1==1 && arg1-2*x50_1==1 && arg1>=arg1P_8 && -2*arg1P_8+arg1<2 && -2*arg1P_8+arg1>=0 && 1<=-1+arg2 ], cost: 2 25: f951_0_slide93_EQ -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x54_1+arg1==1 && arg2>0 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 2 28: f951_0_slide93_EQ -> [7] : [ -2*x54_1+arg1==1 && arg2>0 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 && -2*x54_1+arg1P_10==1 && -2*x60_1+arg1P_10==1 && -arg1P_10>=0 ], cost: NONTERM 17: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2P_15>1 && arg1P_1>-1 && arg1P_15>0 ], cost: 2 18: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2P_15>1 && arg2P_2<1 && arg1P_2>-1 && arg1P_15>0 ], cost: 2 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Chained accelerated rules (with incoming rules): Start location: __init 2: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=0, [ arg2>0 ], cost: 1 3: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg2'=1, [], cost: 1 29: f234_0_slide93_FieldAccess -> f951_0_slide93_EQ : arg1'=arg1P_10, arg2'=1, [ -2*x54_1+arg1==1 && arg1-2*x60_1==1 && arg1>=arg1P_10 && arg1-2*arg1P_10<2 && arg1-2*arg1P_10>=0 ], cost: 3 30: f234_0_slide93_FieldAccess -> [7] : arg2'=1, [ arg1-2*x60_1==1 && -2+arg1-4*x60_1<2 && -2+arg1-4*x60_1>=0 && -1-2*x60_1>=0 ], cost: NONTERM 17: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2P_15>1 && arg1P_1>-1 && arg1P_15>0 ], cost: 2 18: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2P_15>1 && arg2P_2<1 && arg1P_2>-1 && arg1P_15>0 ], cost: 2 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Removed unreachable locations (and leaf rules with constant cost): Start location: __init 30: f234_0_slide93_FieldAccess -> [7] : arg2'=1, [ arg1-2*x60_1==1 && -2+arg1-4*x60_1<2 && -2+arg1-4*x60_1>=0 && -1-2*x60_1>=0 ], cost: NONTERM 17: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_1, arg2'=arg2P_1, [ arg2P_15>1 && arg1P_1>-1 && arg1P_15>0 ], cost: 2 18: __init -> f234_0_slide93_FieldAccess : arg1'=arg1P_2, arg2'=arg2P_2, [ arg2P_15>1 && arg2P_2<1 && arg1P_2>-1 && arg1P_15>0 ], cost: 2 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Eliminated locations (on tree-shaped paths): Start location: __init 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Applied pruning (of leafs and parallel rules): Start location: __init 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 ### Computing asymptotic complexity ### Fully simplified ITS problem Start location: __init 19: __init -> f196_0_create_LE : arg1'=0, arg2'=arg2P_14, [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ], cost: 1+x33_1 Computing asymptotic complexity for rule 19 Solved the limit problem by the following transformations: Created initial limit problem: -1+x33_1 (+/+!), -1+arg2P_15 (+/+!), arg1P_15 (+/+!), 1+x33_1 (+) [not solved] removing all constraints (solved by SMT) resulting limit problem: [solved] applying transformation rule (C) using substitution {arg2P_15==n,x33_1==n,arg1P_15==n} resulting limit problem: [solved] Solution: arg2P_15 / n x33_1 / n arg1P_15 / n Resulting cost 1+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: 1+n Rule cost: 1+x33_1 Rule guard: [ arg2P_15>1 && arg1P_15>0 && -1+x33_1>0 ] WORST_CASE(INF,?)