NO proof of prog.inttrs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given IRSwT could be disproven: (0) IRSwT (1) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (2) IRSwT (3) IRSwTTerminationDigraphProof [EQUIVALENT, 786 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 26 ms] (7) IRSwT (8) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (9) IRSwT (10) TempFilterProof [SOUND, 71 ms] (11) IntTRS (12) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (13) YES (14) IRSwT (15) IntTRSCompressionProof [EQUIVALENT, 5 ms] (16) IRSwT (17) TempFilterProof [SOUND, 32 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 0 ms] (20) IntTRS (21) RankingReductionPairProof [EQUIVALENT, 0 ms] (22) YES (23) IRSwT (24) IntTRSCompressionProof [EQUIVALENT, 3 ms] (25) IRSwT (26) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (27) IRSwT (28) FilterProof [EQUIVALENT, 0 ms] (29) IntTRS (30) IntTRSCompressionProof [EQUIVALENT, 0 ms] (31) IntTRS (32) IntTRSPeriodicNontermProof [COMPLETE, 10 ms] (33) NO (34) IRSwT (35) IntTRSCompressionProof [EQUIVALENT, 2 ms] (36) IRSwT (37) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (38) IRSwT (39) FilterProof [EQUIVALENT, 0 ms] (40) IntTRS (41) IntTRSCompressionProof [EQUIVALENT, 0 ms] (42) IntTRS (43) RankingReductionPairProof [EQUIVALENT, 5 ms] (44) YES ---------------------------------------- (0) Obligation: Rules: f93_0_mk_Return(arg1, arg2, arg3) -> f148_0_main_InvokeMethod(arg1P, arg2P, arg3P) :|: arg2 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 f1_0_main_ConstantStackPush(x, x1, x2) -> f148_0_main_InvokeMethod(x3, x4, x5) :|: x1 = x4 && 0 <= x3 - 1 && 0 <= x - 1 && -1 <= x1 - 1 && x3 <= x f148_0_main_InvokeMethod(x6, x7, x8) -> f341_0_main_GE(x9, x10, x11) :|: 0 = x9 && -1 <= x7 - 1 && 0 <= x6 - 1 f341_0_main_GE(x12, x13, x14) -> f475_0_main_GE(x15, x16, x17) :|: 0 = x16 && x12 = x15 && x12 <= 2 f475_0_main_GE(x18, x19, x20) -> f341_0_main_GE(x21, x22, x23) :|: x18 + 1 = x21 && x20 <= x19 f475_0_main_GE(x24, x25, x26) -> f475_0_main_GE(x27, x28, x29) :|: x26 = x29 && x25 + 1 = x28 && x24 = x27 && x25 <= x26 - 1 && x24 <= 2 && 0 <= x26 - 1 f1_0_main_ConstantStackPush(x30, x31, x32) -> f165_0_mk_LE(x33, x34, x35) :|: x31 = x34 && x31 - 1 = x33 && -1 <= x31 - 1 && 0 <= x30 - 1 f148_0_main_InvokeMethod(x36, x37, x38) -> f165_0_mk_LE(x39, x42, x43) :|: x37 = x42 && x37 - 1 = x39 && 0 <= x36 - 1 f148_0_main_InvokeMethod(x44, x45, x48) -> f165_0_mk_LE(x49, x50, x51) :|: x45 = x50 && x45 - 1 = x49 && -1 <= x45 - 1 && 0 <= x44 - 1 f165_0_mk_LE(x52, x53, x54) -> f165_0_mk_LE(x55, x56, x57) :|: x52 = x56 && x52 - 1 = x55 && 0 <= x53 - 1 f341_0_main_GE(x58, x59, x60) -> f291_0_length_NULL(x61, x62, x63) :|: x58 <= 2 && -1 <= x62 - 1 && -1 <= x61 - 1 f291_0_length_NULL(x64, x65, x66) -> f291_0_length_NULL(x67, x68, x69) :|: -1 <= x68 - 1 && -1 <= x67 - 1 && 0 <= x65 - 1 && 0 <= x64 - 1 && x68 + 1 <= x65 && x68 + 1 <= x64 && x67 + 1 <= x65 && x67 + 1 <= x64 f475_0_main_GE(x70, x71, x72) -> f541_0_bubble_NULL(x73, x74, x75) :|: -1 <= x73 - 1 && -1 <= x74 - 1 && x70 <= 2 && x71 <= x72 - 1 && 0 <= x72 - 1 f541_0_bubble_NULL(x76, x77, x78) -> f541_0_bubble_NULL(x79, x80, x81) :|: x79 + 2 <= x76 && x82 <= x83 && x79 + 2 <= x77 && x80 + 2 <= x76 && x80 + 2 <= x77 && 2 <= x76 - 1 && 2 <= x77 - 1 && 0 <= x79 - 1 && 0 <= x80 - 1 f541_0_bubble_NULL(x84, x85, x86) -> f541_0_bubble_NULL(x87, x88, x89) :|: x87 <= x84 && x90 <= x91 - 1 && x87 <= x85 && x88 <= x84 && x88 <= x85 && 2 <= x84 - 1 && 2 <= x85 - 1 && 0 <= x87 - 1 && 0 <= x88 - 1 __init(x92, x93, x94) -> f1_0_main_ConstantStackPush(x95, x96, x97) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: f93_0_mk_Return(arg1, arg2, arg3) -> f148_0_main_InvokeMethod(arg1P, arg2P, arg3P) :|: arg2 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 f1_0_main_ConstantStackPush(x, x1, x2) -> f148_0_main_InvokeMethod(x3, x4, x5) :|: x1 = x4 && 0 <= x3 - 1 && 0 <= x - 1 && -1 <= x1 - 1 && x3 <= x f148_0_main_InvokeMethod(x6, x7, x8) -> f341_0_main_GE(x9, x10, x11) :|: 0 = x9 && -1 <= x7 - 1 && 0 <= x6 - 1 f341_0_main_GE(x12, x13, x14) -> f475_0_main_GE(x15, x16, x17) :|: 0 = x16 && x12 = x15 && x12 <= 2 f475_0_main_GE(x18, x19, x20) -> f341_0_main_GE(x21, x22, x23) :|: x18 + 1 = x21 && x20 <= x19 f475_0_main_GE(x24, x25, x26) -> f475_0_main_GE(x27, x28, x29) :|: x26 = x29 && x25 + 1 = x28 && x24 = x27 && x25 <= x26 - 1 && x24 <= 2 && 0 <= x26 - 1 f1_0_main_ConstantStackPush(x30, x31, x32) -> f165_0_mk_LE(x33, x34, x35) :|: x31 = x34 && x31 - 1 = x33 && -1 <= x31 - 1 && 0 <= x30 - 1 f148_0_main_InvokeMethod(x36, x37, x38) -> f165_0_mk_LE(x39, x42, x43) :|: x37 = x42 && x37 - 1 = x39 && 0 <= x36 - 1 f148_0_main_InvokeMethod(x44, x45, x48) -> f165_0_mk_LE(x49, x50, x51) :|: x45 = x50 && x45 - 1 = x49 && -1 <= x45 - 1 && 0 <= x44 - 1 f165_0_mk_LE(x52, x53, x54) -> f165_0_mk_LE(x55, x56, x57) :|: x52 = x56 && x52 - 1 = x55 && 0 <= x53 - 1 f341_0_main_GE(x58, x59, x60) -> f291_0_length_NULL(x61, x62, x63) :|: x58 <= 2 && -1 <= x62 - 1 && -1 <= x61 - 1 f291_0_length_NULL(x64, x65, x66) -> f291_0_length_NULL(x67, x68, x69) :|: -1 <= x68 - 1 && -1 <= x67 - 1 && 0 <= x65 - 1 && 0 <= x64 - 1 && x68 + 1 <= x65 && x68 + 1 <= x64 && x67 + 1 <= x65 && x67 + 1 <= x64 f475_0_main_GE(x70, x71, x72) -> f541_0_bubble_NULL(x73, x74, x75) :|: -1 <= x73 - 1 && -1 <= x74 - 1 && x70 <= 2 && x71 <= x72 - 1 && 0 <= x72 - 1 f541_0_bubble_NULL(x76, x77, x78) -> f541_0_bubble_NULL(x79, x80, x81) :|: x79 + 2 <= x76 && x82 <= x83 && x79 + 2 <= x77 && x80 + 2 <= x76 && x80 + 2 <= x77 && 2 <= x76 - 1 && 2 <= x77 - 1 && 0 <= x79 - 1 && 0 <= x80 - 1 f541_0_bubble_NULL(x84, x85, x86) -> f541_0_bubble_NULL(x87, x88, x89) :|: x87 <= x84 && x90 <= x91 - 1 && x87 <= x85 && x88 <= x84 && x88 <= x85 && 2 <= x84 - 1 && 2 <= x85 - 1 && 0 <= x87 - 1 && 0 <= x88 - 1 __init(x92, x93, x94) -> f1_0_main_ConstantStackPush(x95, x96, x97) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f93_0_mk_Return(arg1, arg2, arg3) -> f148_0_main_InvokeMethod(arg1P, arg2P, arg3P) :|: arg2 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 (2) f1_0_main_ConstantStackPush(x, x1, x2) -> f148_0_main_InvokeMethod(x3, x4, x5) :|: x1 = x4 && 0 <= x3 - 1 && 0 <= x - 1 && -1 <= x1 - 1 && x3 <= x (3) f148_0_main_InvokeMethod(x6, x7, x8) -> f341_0_main_GE(x9, x10, x11) :|: 0 = x9 && -1 <= x7 - 1 && 0 <= x6 - 1 (4) f341_0_main_GE(x12, x13, x14) -> f475_0_main_GE(x15, x16, x17) :|: 0 = x16 && x12 = x15 && x12 <= 2 (5) f475_0_main_GE(x18, x19, x20) -> f341_0_main_GE(x21, x22, x23) :|: x18 + 1 = x21 && x20 <= x19 (6) f475_0_main_GE(x24, x25, x26) -> f475_0_main_GE(x27, x28, x29) :|: x26 = x29 && x25 + 1 = x28 && x24 = x27 && x25 <= x26 - 1 && x24 <= 2 && 0 <= x26 - 1 (7) f1_0_main_ConstantStackPush(x30, x31, x32) -> f165_0_mk_LE(x33, x34, x35) :|: x31 = x34 && x31 - 1 = x33 && -1 <= x31 - 1 && 0 <= x30 - 1 (8) f148_0_main_InvokeMethod(x36, x37, x38) -> f165_0_mk_LE(x39, x42, x43) :|: x37 = x42 && x37 - 1 = x39 && 0 <= x36 - 1 (9) f148_0_main_InvokeMethod(x44, x45, x48) -> f165_0_mk_LE(x49, x50, x51) :|: x45 = x50 && x45 - 1 = x49 && -1 <= x45 - 1 && 0 <= x44 - 1 (10) f165_0_mk_LE(x52, x53, x54) -> f165_0_mk_LE(x55, x56, x57) :|: x52 = x56 && x52 - 1 = x55 && 0 <= x53 - 1 (11) f341_0_main_GE(x58, x59, x60) -> f291_0_length_NULL(x61, x62, x63) :|: x58 <= 2 && -1 <= x62 - 1 && -1 <= x61 - 1 (12) f291_0_length_NULL(x64, x65, x66) -> f291_0_length_NULL(x67, x68, x69) :|: -1 <= x68 - 1 && -1 <= x67 - 1 && 0 <= x65 - 1 && 0 <= x64 - 1 && x68 + 1 <= x65 && x68 + 1 <= x64 && x67 + 1 <= x65 && x67 + 1 <= x64 (13) f475_0_main_GE(x70, x71, x72) -> f541_0_bubble_NULL(x73, x74, x75) :|: -1 <= x73 - 1 && -1 <= x74 - 1 && x70 <= 2 && x71 <= x72 - 1 && 0 <= x72 - 1 (14) f541_0_bubble_NULL(x76, x77, x78) -> f541_0_bubble_NULL(x79, x80, x81) :|: x79 + 2 <= x76 && x82 <= x83 && x79 + 2 <= x77 && x80 + 2 <= x76 && x80 + 2 <= x77 && 2 <= x76 - 1 && 2 <= x77 - 1 && 0 <= x79 - 1 && 0 <= x80 - 1 (15) f541_0_bubble_NULL(x84, x85, x86) -> f541_0_bubble_NULL(x87, x88, x89) :|: x87 <= x84 && x90 <= x91 - 1 && x87 <= x85 && x88 <= x84 && x88 <= x85 && 2 <= x84 - 1 && 2 <= x85 - 1 && 0 <= x87 - 1 && 0 <= x88 - 1 (16) __init(x92, x93, x94) -> f1_0_main_ConstantStackPush(x95, x96, x97) :|: 0 <= 0 Arcs: (1) -> (3), (8), (9) (2) -> (3), (8), (9) (3) -> (4), (11) (4) -> (5), (6), (13) (5) -> (4), (11) (6) -> (5), (6), (13) (7) -> (10) (8) -> (10) (9) -> (10) (10) -> (10) (11) -> (12) (12) -> (12) (13) -> (14), (15) (14) -> (14), (15) (15) -> (14), (15) (16) -> (2), (7) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f165_0_mk_LE(x52, x53, x54) -> f165_0_mk_LE(x55, x56, x57) :|: x52 = x56 && x52 - 1 = x55 && 0 <= x53 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f165_0_mk_LE(x52:0, x53:0, x54:0) -> f165_0_mk_LE(x52:0 - 1, x52:0, x57:0) :|: x53:0 > 0 ---------------------------------------- (8) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f165_0_mk_LE(x1, x2, x3) -> f165_0_mk_LE(x1, x2) ---------------------------------------- (9) Obligation: Rules: f165_0_mk_LE(x52:0, x53:0) -> f165_0_mk_LE(x52:0 - 1, x52:0) :|: x53:0 > 0 ---------------------------------------- (10) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f165_0_mk_LE(VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (11) Obligation: Rules: f165_0_mk_LE(x52:0, x53:0) -> f165_0_mk_LE(c, x52:0) :|: c = x52:0 - 1 && x53:0 > 0 ---------------------------------------- (12) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f165_0_mk_LE(x, x1)] = x^2 + 2*x1 The following rules are decreasing: f165_0_mk_LE(x52:0, x53:0) -> f165_0_mk_LE(c, x52:0) :|: c = x52:0 - 1 && x53:0 > 0 The following rules are bounded: f165_0_mk_LE(x52:0, x53:0) -> f165_0_mk_LE(c, x52:0) :|: c = x52:0 - 1 && x53:0 > 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Termination digraph: Nodes: (1) f341_0_main_GE(x12, x13, x14) -> f475_0_main_GE(x15, x16, x17) :|: 0 = x16 && x12 = x15 && x12 <= 2 (2) f475_0_main_GE(x18, x19, x20) -> f341_0_main_GE(x21, x22, x23) :|: x18 + 1 = x21 && x20 <= x19 (3) f475_0_main_GE(x24, x25, x26) -> f475_0_main_GE(x27, x28, x29) :|: x26 = x29 && x25 + 1 = x28 && x24 = x27 && x25 <= x26 - 1 && x24 <= 2 && 0 <= x26 - 1 Arcs: (1) -> (2), (3) (2) -> (1) (3) -> (2), (3) This digraph is fully evaluated! ---------------------------------------- (15) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (16) Obligation: Rules: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, x25:0 + 1, x26:0) :|: x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0 f475_0_main_GE(x18:0, x19:0, x20:0) -> f475_0_main_GE(x18:0 + 1, 0, x17:0) :|: x20:0 <= x19:0 && x18:0 < 2 ---------------------------------------- (17) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f475_0_main_GE(INTEGER, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (18) Obligation: Rules: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, c, x26:0) :|: c = x25:0 + 1 && (x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0) f475_0_main_GE(x18:0, x19:0, x20:0) -> f475_0_main_GE(c1, c2, x17:0) :|: c2 = 0 && c1 = x18:0 + 1 && (x20:0 <= x19:0 && x18:0 < 2) ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f475_0_main_GE ] = -1*f475_0_main_GE_1 The following rules are decreasing: f475_0_main_GE(x18:0, x19:0, x20:0) -> f475_0_main_GE(c1, c2, x17:0) :|: c2 = 0 && c1 = x18:0 + 1 && (x20:0 <= x19:0 && x18:0 < 2) The following rules are bounded: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, c, x26:0) :|: c = x25:0 + 1 && (x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0) f475_0_main_GE(x18:0, x19:0, x20:0) -> f475_0_main_GE(c1, c2, x17:0) :|: c2 = 0 && c1 = x18:0 + 1 && (x20:0 <= x19:0 && x18:0 < 2) ---------------------------------------- (20) Obligation: Rules: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, c, x26:0) :|: c = x25:0 + 1 && (x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0) ---------------------------------------- (21) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f475_0_main_GE ] = f475_0_main_GE_3 + -1*f475_0_main_GE_2 The following rules are decreasing: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, c, x26:0) :|: c = x25:0 + 1 && (x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0) The following rules are bounded: f475_0_main_GE(x24:0, x25:0, x26:0) -> f475_0_main_GE(x24:0, c, x26:0) :|: c = x25:0 + 1 && (x24:0 < 3 && x26:0 - 1 >= x25:0 && x26:0 > 0) ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Termination digraph: Nodes: (1) f541_0_bubble_NULL(x76, x77, x78) -> f541_0_bubble_NULL(x79, x80, x81) :|: x79 + 2 <= x76 && x82 <= x83 && x79 + 2 <= x77 && x80 + 2 <= x76 && x80 + 2 <= x77 && 2 <= x76 - 1 && 2 <= x77 - 1 && 0 <= x79 - 1 && 0 <= x80 - 1 (2) f541_0_bubble_NULL(x84, x85, x86) -> f541_0_bubble_NULL(x87, x88, x89) :|: x87 <= x84 && x90 <= x91 - 1 && x87 <= x85 && x88 <= x84 && x88 <= x85 && 2 <= x84 - 1 && 2 <= x85 - 1 && 0 <= x87 - 1 && 0 <= x88 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f541_0_bubble_NULL(x76:0, x77:0, x78:0) -> f541_0_bubble_NULL(x79:0, x80:0, x81:0) :|: x79:0 > 0 && x80:0 > 0 && x77:0 > 2 && x76:0 > 2 && x80:0 + 2 <= x77:0 && x80:0 + 2 <= x76:0 && x79:0 + 2 <= x77:0 && x83:0 >= x82:0 && x79:0 + 2 <= x76:0 f541_0_bubble_NULL(x84:0, x85:0, x86:0) -> f541_0_bubble_NULL(x87:0, x88:0, x89:0) :|: x87:0 > 0 && x88:0 > 0 && x85:0 > 2 && x84:0 > 2 && x88:0 <= x85:0 && x88:0 <= x84:0 && x87:0 <= x85:0 && x91:0 - 1 >= x90:0 && x87:0 <= x84:0 ---------------------------------------- (26) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f541_0_bubble_NULL(x1, x2, x3) -> f541_0_bubble_NULL(x1, x2) ---------------------------------------- (27) Obligation: Rules: f541_0_bubble_NULL(x76:0, x77:0) -> f541_0_bubble_NULL(x79:0, x80:0) :|: x79:0 > 0 && x80:0 > 0 && x77:0 > 2 && x76:0 > 2 && x80:0 + 2 <= x77:0 && x80:0 + 2 <= x76:0 && x79:0 + 2 <= x77:0 && x83:0 >= x82:0 && x79:0 + 2 <= x76:0 f541_0_bubble_NULL(x84:0, x85:0) -> f541_0_bubble_NULL(x87:0, x88:0) :|: x87:0 > 0 && x88:0 > 0 && x85:0 > 2 && x84:0 > 2 && x88:0 <= x85:0 && x88:0 <= x84:0 && x87:0 <= x85:0 && x91:0 - 1 >= x90:0 && x87:0 <= x84:0 ---------------------------------------- (28) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f541_0_bubble_NULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (29) Obligation: Rules: f541_0_bubble_NULL(x76:0, x77:0) -> f541_0_bubble_NULL(x79:0, x80:0) :|: x79:0 > 0 && x80:0 > 0 && x77:0 > 2 && x76:0 > 2 && x80:0 + 2 <= x77:0 && x80:0 + 2 <= x76:0 && x79:0 + 2 <= x77:0 && x83:0 >= x82:0 && x79:0 + 2 <= x76:0 f541_0_bubble_NULL(x84:0, x85:0) -> f541_0_bubble_NULL(x87:0, x88:0) :|: x87:0 > 0 && x88:0 > 0 && x85:0 > 2 && x84:0 > 2 && x88:0 <= x85:0 && x88:0 <= x84:0 && x87:0 <= x85:0 && x91:0 - 1 >= x90:0 && x87:0 <= x84:0 ---------------------------------------- (30) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (31) Obligation: Rules: f541_0_bubble_NULL(x76:0:0, x77:0:0) -> f541_0_bubble_NULL(x79:0:0, x80:0:0) :|: x83:0:0 >= x82:0:0 && x79:0:0 + 2 <= x76:0:0 && x79:0:0 + 2 <= x77:0:0 && x80:0:0 + 2 <= x76:0:0 && x80:0:0 + 2 <= x77:0:0 && x76:0:0 > 2 && x77:0:0 > 2 && x80:0:0 > 0 && x79:0:0 > 0 f541_0_bubble_NULL(x84:0:0, x85:0:0) -> f541_0_bubble_NULL(x87:0:0, x88:0:0) :|: x91:0:0 - 1 >= x90:0:0 && x87:0:0 <= x84:0:0 && x87:0:0 <= x85:0:0 && x88:0:0 <= x84:0:0 && x88:0:0 <= x85:0:0 && x84:0:0 > 2 && x85:0:0 > 2 && x88:0:0 > 0 && x87:0:0 > 0 ---------------------------------------- (32) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x76:0:0, x77:0:0) -> f(1, x79:0:0, x80:0:0) :|: pc = 1 && (x83:0:0 >= x82:0:0 && x79:0:0 + 2 <= x76:0:0 && x79:0:0 + 2 <= x77:0:0 && x80:0:0 + 2 <= x76:0:0 && x80:0:0 + 2 <= x77:0:0 && x76:0:0 > 2 && x77:0:0 > 2 && x80:0:0 > 0 && x79:0:0 > 0) f(pc, x84:0:0, x85:0:0) -> f(1, x87:0:0, x88:0:0) :|: pc = 1 && (x91:0:0 - 1 >= x90:0:0 && x87:0:0 <= x84:0:0 && x87:0:0 <= x85:0:0 && x88:0:0 <= x84:0:0 && x88:0:0 <= x85:0:0 && x84:0:0 > 2 && x85:0:0 > 2 && x88:0:0 > 0 && x87:0:0 > 0) Witness term starting non-terminating reduction: f(1, 6, 6) ---------------------------------------- (33) NO ---------------------------------------- (34) Obligation: Termination digraph: Nodes: (1) f291_0_length_NULL(x64, x65, x66) -> f291_0_length_NULL(x67, x68, x69) :|: -1 <= x68 - 1 && -1 <= x67 - 1 && 0 <= x65 - 1 && 0 <= x64 - 1 && x68 + 1 <= x65 && x68 + 1 <= x64 && x67 + 1 <= x65 && x67 + 1 <= x64 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (35) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (36) Obligation: Rules: f291_0_length_NULL(x64:0, x65:0, x66:0) -> f291_0_length_NULL(x67:0, x68:0, x69:0) :|: x67:0 + 1 <= x65:0 && x67:0 + 1 <= x64:0 && x68:0 + 1 <= x64:0 && x68:0 + 1 <= x65:0 && x64:0 > 0 && x65:0 > 0 && x67:0 > -1 && x68:0 > -1 ---------------------------------------- (37) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f291_0_length_NULL(x1, x2, x3) -> f291_0_length_NULL(x1, x2) ---------------------------------------- (38) Obligation: Rules: f291_0_length_NULL(x64:0, x65:0) -> f291_0_length_NULL(x67:0, x68:0) :|: x67:0 + 1 <= x65:0 && x67:0 + 1 <= x64:0 && x68:0 + 1 <= x64:0 && x68:0 + 1 <= x65:0 && x64:0 > 0 && x65:0 > 0 && x67:0 > -1 && x68:0 > -1 ---------------------------------------- (39) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f291_0_length_NULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (40) Obligation: Rules: f291_0_length_NULL(x64:0, x65:0) -> f291_0_length_NULL(x67:0, x68:0) :|: x67:0 + 1 <= x65:0 && x67:0 + 1 <= x64:0 && x68:0 + 1 <= x64:0 && x68:0 + 1 <= x65:0 && x64:0 > 0 && x65:0 > 0 && x67:0 > -1 && x68:0 > -1 ---------------------------------------- (41) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (42) Obligation: Rules: f291_0_length_NULL(x64:0:0, x65:0:0) -> f291_0_length_NULL(x67:0:0, x68:0:0) :|: x67:0:0 > -1 && x68:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 0 && x68:0:0 + 1 <= x65:0:0 && x68:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x65:0:0 ---------------------------------------- (43) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f291_0_length_NULL ] = f291_0_length_NULL_1 The following rules are decreasing: f291_0_length_NULL(x64:0:0, x65:0:0) -> f291_0_length_NULL(x67:0:0, x68:0:0) :|: x67:0:0 > -1 && x68:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 0 && x68:0:0 + 1 <= x65:0:0 && x68:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x65:0:0 The following rules are bounded: f291_0_length_NULL(x64:0:0, x65:0:0) -> f291_0_length_NULL(x67:0:0, x68:0:0) :|: x67:0:0 > -1 && x68:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 0 && x68:0:0 + 1 <= x65:0:0 && x68:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x64:0:0 && x67:0:0 + 1 <= x65:0:0 ---------------------------------------- (44) YES