YES proof of prog.inttrs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given IRSwT could be proven: (0) IRSwT (1) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (2) IRSwT (3) IRSwTTerminationDigraphProof [EQUIVALENT, 1905 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 12 ms] (7) IRSwT (8) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (9) IRSwT (10) TempFilterProof [SOUND, 61 ms] (11) IntTRS (12) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (13) AND (14) IntTRS (15) RankingReductionPairProof [EQUIVALENT, 6 ms] (16) YES (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (19) YES (20) IRSwT (21) IntTRSCompressionProof [EQUIVALENT, 43 ms] (22) IRSwT (23) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (24) IRSwT (25) TempFilterProof [SOUND, 39 ms] (26) IntTRS (27) RankingReductionPairProof [EQUIVALENT, 0 ms] (28) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4) -> f1843_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P) :|: -1 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg1P <= arg1 f323_0_createTree_Return(x, x1, x2, x3) -> f1843_0_main_InvokeMethod(x4, x5, x6, x7) :|: 2 = x6 && -1 <= x5 - 1 && 0 <= x4 - 1 && -1 <= x1 - 1 && 0 <= x - 1 && x5 <= x1 && x4 - 1 <= x1 && x4 <= x f521_0_createNode_Return(x8, x9, x10, x11) -> f931_0_random_ArrayAccess(x12, x13, x14, x15) :|: 0 <= x12 - 1 f1_0_main_Load(x16, x17, x18, x19) -> f931_0_random_ArrayAccess(x20, x21, x22, x23) :|: 0 <= x20 - 1 && 0 <= x16 - 1 && x20 <= x16 f588_0_createNode_Return(x24, x26, x27, x28) -> f977_0_random_ArrayAccess(x29, x31, x32, x33) :|: 0 <= x29 - 1 f1_0_main_Load(x34, x35, x36, x37) -> f977_0_random_ArrayAccess(x38, x39, x40, x41) :|: 0 <= x38 - 1 && 0 <= x34 - 1 && x38 <= x34 f977_0_random_ArrayAccess(x42, x43, x44, x46) -> f2251_0_createTree_LE(x47, x48, x49, x50) :|: 0 <= x51 - 1 && -1 <= x48 - 1 && x47 - 3 <= x42 && 0 <= x42 - 1 && 3 <= x47 - 1 && x51 + 1 = x50 f931_0_random_ArrayAccess(x52, x53, x54, x55) -> f2251_0_createTree_LE(x56, x57, x58, x60) :|: 0 <= x61 - 1 && -1 <= x57 - 1 && x56 - 1 <= x52 && 0 <= x52 - 1 && 1 <= x56 - 1 && x61 + 1 = x60 f2251_0_createTree_LE(x62, x63, x64, x65) -> f2251_0_createTree_LE(x66, x67, x68, x69) :|: x65 = x69 && x64 = x68 && x63 - 1 = x67 && -1 <= x66 - 1 && 1 <= x62 - 1 && 0 <= x63 - 1 && x66 + 2 <= x62 f2251_0_createTree_LE(x70, x71, x72, x73) -> f2251_0_createTree_LE(x74, x75, x76, x77) :|: 0 <= x71 - 1 && 0 <= x73 - 1 && 0 <= x78 - 1 && x74 - 2 <= x70 && 2 <= x70 - 1 && 3 <= x74 - 1 && x71 - 1 = x75 && x72 = x76 f2251_0_createTree_LE(x79, x80, x81, x82) -> f2251_0_createTree_LE(x83, x84, x85, x86) :|: 0 <= x80 - 1 && 0 <= x82 - 1 && 0 <= x87 - 1 && x83 - 3 <= x79 && 2 <= x79 - 1 && 5 <= x83 - 1 && x80 - 1 = x84 && x81 = x85 f1_0_main_Load(x88, x89, x90, x91) -> f1257_0_random_ArrayAccess(x92, x94, x95, x96) :|: 0 = x95 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x88 - 1 && x94 <= x88 && -1 <= x89 - 1 && x92 <= x88 f2251_0_createTree_LE(x97, x99, x100, x101) -> f1257_0_random_ArrayAccess(x102, x103, x104, x105) :|: x101 = x104 && 0 <= x103 - 1 && 2 <= x97 - 1 && x103 + 2 <= x97 && -1 <= x100 - 1 && 0 <= x101 - 1 && 0 <= x99 - 1 f2251_0_createTree_LE(x106, x107, x108, x109) -> f1257_0_random_ArrayAccess(x110, x111, x112, x113) :|: 0 <= x111 - 1 && 2 <= x106 - 1 && x111 + 2 <= x106 && -1 <= x108 - 1 && 0 <= x112 - 1 && 0 <= x109 - 1 && 0 <= x107 - 1 f1843_0_main_InvokeMethod(x114, x115, x116, x117) -> f2233_0_randomlyDuplicate_NULL(x118, x119, x120, x121) :|: x116 = x120 && -1 <= x118 - 1 && -1 <= x115 - 1 && 0 <= x114 - 1 && x118 <= x115 f2233_0_randomlyDuplicate_NULL(x122, x123, x124, x125) -> f2233_0_randomlyDuplicate_NULL(x126, x127, x128, x129) :|: -1 <= x123 - 1 && -1 <= x124 - 1 && x130 <= 42 && -1 <= x130 - 1 && x126 + 1 <= x122 && 0 <= x122 - 1 && -1 <= x126 - 1 && x123 = x127 && x124 + 1 = x128 f2233_0_randomlyDuplicate_NULL(x131, x132, x133, x134) -> f2233_0_randomlyDuplicate_NULL(x135, x136, x137, x138) :|: -1 <= x132 - 1 && 42 <= x139 - 1 && -1 <= x133 - 1 && x135 + 1 <= x131 && 0 <= x131 - 1 && -1 <= x135 - 1 && x132 = x136 && x133 + 1 = x137 __init(x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4) -> f1843_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P) :|: -1 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg1P <= arg1 f323_0_createTree_Return(x, x1, x2, x3) -> f1843_0_main_InvokeMethod(x4, x5, x6, x7) :|: 2 = x6 && -1 <= x5 - 1 && 0 <= x4 - 1 && -1 <= x1 - 1 && 0 <= x - 1 && x5 <= x1 && x4 - 1 <= x1 && x4 <= x f521_0_createNode_Return(x8, x9, x10, x11) -> f931_0_random_ArrayAccess(x12, x13, x14, x15) :|: 0 <= x12 - 1 f1_0_main_Load(x16, x17, x18, x19) -> f931_0_random_ArrayAccess(x20, x21, x22, x23) :|: 0 <= x20 - 1 && 0 <= x16 - 1 && x20 <= x16 f588_0_createNode_Return(x24, x26, x27, x28) -> f977_0_random_ArrayAccess(x29, x31, x32, x33) :|: 0 <= x29 - 1 f1_0_main_Load(x34, x35, x36, x37) -> f977_0_random_ArrayAccess(x38, x39, x40, x41) :|: 0 <= x38 - 1 && 0 <= x34 - 1 && x38 <= x34 f977_0_random_ArrayAccess(x42, x43, x44, x46) -> f2251_0_createTree_LE(x47, x48, x49, x50) :|: 0 <= x51 - 1 && -1 <= x48 - 1 && x47 - 3 <= x42 && 0 <= x42 - 1 && 3 <= x47 - 1 && x51 + 1 = x50 f931_0_random_ArrayAccess(x52, x53, x54, x55) -> f2251_0_createTree_LE(x56, x57, x58, x60) :|: 0 <= x61 - 1 && -1 <= x57 - 1 && x56 - 1 <= x52 && 0 <= x52 - 1 && 1 <= x56 - 1 && x61 + 1 = x60 f2251_0_createTree_LE(x62, x63, x64, x65) -> f2251_0_createTree_LE(x66, x67, x68, x69) :|: x65 = x69 && x64 = x68 && x63 - 1 = x67 && -1 <= x66 - 1 && 1 <= x62 - 1 && 0 <= x63 - 1 && x66 + 2 <= x62 f2251_0_createTree_LE(x70, x71, x72, x73) -> f2251_0_createTree_LE(x74, x75, x76, x77) :|: 0 <= x71 - 1 && 0 <= x73 - 1 && 0 <= x78 - 1 && x74 - 2 <= x70 && 2 <= x70 - 1 && 3 <= x74 - 1 && x71 - 1 = x75 && x72 = x76 f2251_0_createTree_LE(x79, x80, x81, x82) -> f2251_0_createTree_LE(x83, x84, x85, x86) :|: 0 <= x80 - 1 && 0 <= x82 - 1 && 0 <= x87 - 1 && x83 - 3 <= x79 && 2 <= x79 - 1 && 5 <= x83 - 1 && x80 - 1 = x84 && x81 = x85 f1_0_main_Load(x88, x89, x90, x91) -> f1257_0_random_ArrayAccess(x92, x94, x95, x96) :|: 0 = x95 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x88 - 1 && x94 <= x88 && -1 <= x89 - 1 && x92 <= x88 f2251_0_createTree_LE(x97, x99, x100, x101) -> f1257_0_random_ArrayAccess(x102, x103, x104, x105) :|: x101 = x104 && 0 <= x103 - 1 && 2 <= x97 - 1 && x103 + 2 <= x97 && -1 <= x100 - 1 && 0 <= x101 - 1 && 0 <= x99 - 1 f2251_0_createTree_LE(x106, x107, x108, x109) -> f1257_0_random_ArrayAccess(x110, x111, x112, x113) :|: 0 <= x111 - 1 && 2 <= x106 - 1 && x111 + 2 <= x106 && -1 <= x108 - 1 && 0 <= x112 - 1 && 0 <= x109 - 1 && 0 <= x107 - 1 f1843_0_main_InvokeMethod(x114, x115, x116, x117) -> f2233_0_randomlyDuplicate_NULL(x118, x119, x120, x121) :|: x116 = x120 && -1 <= x118 - 1 && -1 <= x115 - 1 && 0 <= x114 - 1 && x118 <= x115 f2233_0_randomlyDuplicate_NULL(x122, x123, x124, x125) -> f2233_0_randomlyDuplicate_NULL(x126, x127, x128, x129) :|: -1 <= x123 - 1 && -1 <= x124 - 1 && x130 <= 42 && -1 <= x130 - 1 && x126 + 1 <= x122 && 0 <= x122 - 1 && -1 <= x126 - 1 && x123 = x127 && x124 + 1 = x128 f2233_0_randomlyDuplicate_NULL(x131, x132, x133, x134) -> f2233_0_randomlyDuplicate_NULL(x135, x136, x137, x138) :|: -1 <= x132 - 1 && 42 <= x139 - 1 && -1 <= x133 - 1 && x135 + 1 <= x131 && 0 <= x131 - 1 && -1 <= x135 - 1 && x132 = x136 && x133 + 1 = x137 __init(x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1_0_main_Load(arg1, arg2, arg3, arg4) -> f1843_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P) :|: -1 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg1P <= arg1 (2) f323_0_createTree_Return(x, x1, x2, x3) -> f1843_0_main_InvokeMethod(x4, x5, x6, x7) :|: 2 = x6 && -1 <= x5 - 1 && 0 <= x4 - 1 && -1 <= x1 - 1 && 0 <= x - 1 && x5 <= x1 && x4 - 1 <= x1 && x4 <= x (3) f521_0_createNode_Return(x8, x9, x10, x11) -> f931_0_random_ArrayAccess(x12, x13, x14, x15) :|: 0 <= x12 - 1 (4) f1_0_main_Load(x16, x17, x18, x19) -> f931_0_random_ArrayAccess(x20, x21, x22, x23) :|: 0 <= x20 - 1 && 0 <= x16 - 1 && x20 <= x16 (5) f588_0_createNode_Return(x24, x26, x27, x28) -> f977_0_random_ArrayAccess(x29, x31, x32, x33) :|: 0 <= x29 - 1 (6) f1_0_main_Load(x34, x35, x36, x37) -> f977_0_random_ArrayAccess(x38, x39, x40, x41) :|: 0 <= x38 - 1 && 0 <= x34 - 1 && x38 <= x34 (7) f977_0_random_ArrayAccess(x42, x43, x44, x46) -> f2251_0_createTree_LE(x47, x48, x49, x50) :|: 0 <= x51 - 1 && -1 <= x48 - 1 && x47 - 3 <= x42 && 0 <= x42 - 1 && 3 <= x47 - 1 && x51 + 1 = x50 (8) f931_0_random_ArrayAccess(x52, x53, x54, x55) -> f2251_0_createTree_LE(x56, x57, x58, x60) :|: 0 <= x61 - 1 && -1 <= x57 - 1 && x56 - 1 <= x52 && 0 <= x52 - 1 && 1 <= x56 - 1 && x61 + 1 = x60 (9) f2251_0_createTree_LE(x62, x63, x64, x65) -> f2251_0_createTree_LE(x66, x67, x68, x69) :|: x65 = x69 && x64 = x68 && x63 - 1 = x67 && -1 <= x66 - 1 && 1 <= x62 - 1 && 0 <= x63 - 1 && x66 + 2 <= x62 (10) f2251_0_createTree_LE(x70, x71, x72, x73) -> f2251_0_createTree_LE(x74, x75, x76, x77) :|: 0 <= x71 - 1 && 0 <= x73 - 1 && 0 <= x78 - 1 && x74 - 2 <= x70 && 2 <= x70 - 1 && 3 <= x74 - 1 && x71 - 1 = x75 && x72 = x76 (11) f2251_0_createTree_LE(x79, x80, x81, x82) -> f2251_0_createTree_LE(x83, x84, x85, x86) :|: 0 <= x80 - 1 && 0 <= x82 - 1 && 0 <= x87 - 1 && x83 - 3 <= x79 && 2 <= x79 - 1 && 5 <= x83 - 1 && x80 - 1 = x84 && x81 = x85 (12) f1_0_main_Load(x88, x89, x90, x91) -> f1257_0_random_ArrayAccess(x92, x94, x95, x96) :|: 0 = x95 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x88 - 1 && x94 <= x88 && -1 <= x89 - 1 && x92 <= x88 (13) f2251_0_createTree_LE(x97, x99, x100, x101) -> f1257_0_random_ArrayAccess(x102, x103, x104, x105) :|: x101 = x104 && 0 <= x103 - 1 && 2 <= x97 - 1 && x103 + 2 <= x97 && -1 <= x100 - 1 && 0 <= x101 - 1 && 0 <= x99 - 1 (14) f2251_0_createTree_LE(x106, x107, x108, x109) -> f1257_0_random_ArrayAccess(x110, x111, x112, x113) :|: 0 <= x111 - 1 && 2 <= x106 - 1 && x111 + 2 <= x106 && -1 <= x108 - 1 && 0 <= x112 - 1 && 0 <= x109 - 1 && 0 <= x107 - 1 (15) f1843_0_main_InvokeMethod(x114, x115, x116, x117) -> f2233_0_randomlyDuplicate_NULL(x118, x119, x120, x121) :|: x116 = x120 && -1 <= x118 - 1 && -1 <= x115 - 1 && 0 <= x114 - 1 && x118 <= x115 (16) f2233_0_randomlyDuplicate_NULL(x122, x123, x124, x125) -> f2233_0_randomlyDuplicate_NULL(x126, x127, x128, x129) :|: -1 <= x123 - 1 && -1 <= x124 - 1 && x130 <= 42 && -1 <= x130 - 1 && x126 + 1 <= x122 && 0 <= x122 - 1 && -1 <= x126 - 1 && x123 = x127 && x124 + 1 = x128 (17) f2233_0_randomlyDuplicate_NULL(x131, x132, x133, x134) -> f2233_0_randomlyDuplicate_NULL(x135, x136, x137, x138) :|: -1 <= x132 - 1 && 42 <= x139 - 1 && -1 <= x133 - 1 && x135 + 1 <= x131 && 0 <= x131 - 1 && -1 <= x135 - 1 && x132 = x136 && x133 + 1 = x137 (18) __init(x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147) :|: 0 <= 0 Arcs: (1) -> (15) (2) -> (15) (3) -> (8) (4) -> (8) (5) -> (7) (6) -> (7) (7) -> (9), (10), (11), (13), (14) (8) -> (9), (10), (11), (13), (14) (9) -> (9), (10), (11), (13), (14) (10) -> (9), (10), (11), (13), (14) (11) -> (9), (10), (11), (13), (14) (15) -> (16), (17) (16) -> (16), (17) (17) -> (16), (17) (18) -> (1), (4), (6), (12) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f2251_0_createTree_LE(x62, x63, x64, x65) -> f2251_0_createTree_LE(x66, x67, x68, x69) :|: x65 = x69 && x64 = x68 && x63 - 1 = x67 && -1 <= x66 - 1 && 1 <= x62 - 1 && 0 <= x63 - 1 && x66 + 2 <= x62 (2) f2251_0_createTree_LE(x70, x71, x72, x73) -> f2251_0_createTree_LE(x74, x75, x76, x77) :|: 0 <= x71 - 1 && 0 <= x73 - 1 && 0 <= x78 - 1 && x74 - 2 <= x70 && 2 <= x70 - 1 && 3 <= x74 - 1 && x71 - 1 = x75 && x72 = x76 (3) f2251_0_createTree_LE(x79, x80, x81, x82) -> f2251_0_createTree_LE(x83, x84, x85, x86) :|: 0 <= x80 - 1 && 0 <= x82 - 1 && 0 <= x87 - 1 && x83 - 3 <= x79 && 2 <= x79 - 1 && 5 <= x83 - 1 && x80 - 1 = x84 && x81 = x85 Arcs: (1) -> (1), (2), (3) (2) -> (1), (2), (3) (3) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f2251_0_createTree_LE(x70:0, x71:0, x72:0, x73:0) -> f2251_0_createTree_LE(x74:0, x71:0 - 1, x72:0, x77:0) :|: x70:0 > 2 && x74:0 > 3 && x74:0 - 2 <= x70:0 && x78:0 > 0 && x73:0 > 0 && x71:0 > 0 f2251_0_createTree_LE(x79:0, x80:0, x81:0, x82:0) -> f2251_0_createTree_LE(x83:0, x80:0 - 1, x81:0, x86:0) :|: x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0 f2251_0_createTree_LE(x62:0, x63:0, x64:0, x65:0) -> f2251_0_createTree_LE(x66:0, x63:0 - 1, x64:0, x65:0) :|: x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1 ---------------------------------------- (8) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f2251_0_createTree_LE(x1, x2, x3, x4) -> f2251_0_createTree_LE(x1, x2, x4) ---------------------------------------- (9) Obligation: Rules: f2251_0_createTree_LE(x70:0, x71:0, x73:0) -> f2251_0_createTree_LE(x74:0, x71:0 - 1, x77:0) :|: x70:0 > 2 && x74:0 > 3 && x74:0 - 2 <= x70:0 && x78:0 > 0 && x73:0 > 0 && x71:0 > 0 f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, x80:0 - 1, x86:0) :|: x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0 f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, x63:0 - 1, x65:0) :|: x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1 ---------------------------------------- (10) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f2251_0_createTree_LE(INTEGER, INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (11) Obligation: Rules: f2251_0_createTree_LE(x70:0, x71:0, x73:0) -> f2251_0_createTree_LE(x74:0, c, x77:0) :|: c = x71:0 - 1 && (x70:0 > 2 && x74:0 > 3 && x74:0 - 2 <= x70:0 && x78:0 > 0 && x73:0 > 0 && x71:0 > 0) f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, c1, x86:0) :|: c1 = x80:0 - 1 && (x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0) f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, c2, x65:0) :|: c2 = x63:0 - 1 && (x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1) ---------------------------------------- (12) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f2251_0_createTree_LE(x, x1, x2)] = -6 + x + 3*x1 The following rules are decreasing: f2251_0_createTree_LE(x70:0, x71:0, x73:0) -> f2251_0_createTree_LE(x74:0, c, x77:0) :|: c = x71:0 - 1 && (x70:0 > 2 && x74:0 > 3 && x74:0 - 2 <= x70:0 && x78:0 > 0 && x73:0 > 0 && x71:0 > 0) f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, c2, x65:0) :|: c2 = x63:0 - 1 && (x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1) The following rules are bounded: f2251_0_createTree_LE(x70:0, x71:0, x73:0) -> f2251_0_createTree_LE(x74:0, c, x77:0) :|: c = x71:0 - 1 && (x70:0 > 2 && x74:0 > 3 && x74:0 - 2 <= x70:0 && x78:0 > 0 && x73:0 > 0 && x71:0 > 0) f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, c1, x86:0) :|: c1 = x80:0 - 1 && (x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0) ---------------------------------------- (13) Complex Obligation (AND) ---------------------------------------- (14) Obligation: Rules: f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, c1, x86:0) :|: c1 = x80:0 - 1 && (x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0) ---------------------------------------- (15) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f2251_0_createTree_LE ] = f2251_0_createTree_LE_2 The following rules are decreasing: f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, c1, x86:0) :|: c1 = x80:0 - 1 && (x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0) The following rules are bounded: f2251_0_createTree_LE(x79:0, x80:0, x82:0) -> f2251_0_createTree_LE(x83:0, c1, x86:0) :|: c1 = x80:0 - 1 && (x79:0 > 2 && x83:0 > 5 && x83:0 - 3 <= x79:0 && x87:0 > 0 && x82:0 > 0 && x80:0 > 0) ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Rules: f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, c2, x65:0) :|: c2 = x63:0 - 1 && (x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1) ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f2251_0_createTree_LE(x, x1, x2)] = x1 The following rules are decreasing: f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, c2, x65:0) :|: c2 = x63:0 - 1 && (x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1) The following rules are bounded: f2251_0_createTree_LE(x62:0, x63:0, x65:0) -> f2251_0_createTree_LE(x66:0, c2, x65:0) :|: c2 = x63:0 - 1 && (x63:0 > 0 && x66:0 + 2 <= x62:0 && x66:0 > -1 && x62:0 > 1) ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Termination digraph: Nodes: (1) f2233_0_randomlyDuplicate_NULL(x122, x123, x124, x125) -> f2233_0_randomlyDuplicate_NULL(x126, x127, x128, x129) :|: -1 <= x123 - 1 && -1 <= x124 - 1 && x130 <= 42 && -1 <= x130 - 1 && x126 + 1 <= x122 && 0 <= x122 - 1 && -1 <= x126 - 1 && x123 = x127 && x124 + 1 = x128 (2) f2233_0_randomlyDuplicate_NULL(x131, x132, x133, x134) -> f2233_0_randomlyDuplicate_NULL(x135, x136, x137, x138) :|: -1 <= x132 - 1 && 42 <= x139 - 1 && -1 <= x133 - 1 && x135 + 1 <= x131 && 0 <= x131 - 1 && -1 <= x135 - 1 && x132 = x136 && x133 + 1 = x137 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (21) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (22) Obligation: Rules: f2233_0_randomlyDuplicate_NULL(x122:0, x123:0, x124:0, x125:0) -> f2233_0_randomlyDuplicate_NULL(x126:0, x123:0, x124:0 + 1, x129:0) :|: x122:0 > 0 && x126:0 > -1 && x126:0 + 1 <= x122:0 && x130:0 > -1 && x130:0 < 43 && x124:0 > -1 && x123:0 > -1 f2233_0_randomlyDuplicate_NULL(x131:0, x132:0, x133:0, x134:0) -> f2233_0_randomlyDuplicate_NULL(x135:0, x132:0, x133:0 + 1, x138:0) :|: x131:0 > 0 && x135:0 > -1 && x135:0 + 1 <= x131:0 && x133:0 > -1 && x139:0 > 42 && x132:0 > -1 ---------------------------------------- (23) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f2233_0_randomlyDuplicate_NULL(x1, x2, x3, x4) -> f2233_0_randomlyDuplicate_NULL(x1, x2, x3) ---------------------------------------- (24) Obligation: Rules: f2233_0_randomlyDuplicate_NULL(x122:0, x123:0, x124:0) -> f2233_0_randomlyDuplicate_NULL(x126:0, x123:0, x124:0 + 1) :|: x122:0 > 0 && x126:0 > -1 && x126:0 + 1 <= x122:0 && x130:0 > -1 && x130:0 < 43 && x124:0 > -1 && x123:0 > -1 f2233_0_randomlyDuplicate_NULL(x131:0, x132:0, x133:0) -> f2233_0_randomlyDuplicate_NULL(x135:0, x132:0, x133:0 + 1) :|: x131:0 > 0 && x135:0 > -1 && x135:0 + 1 <= x131:0 && x133:0 > -1 && x139:0 > 42 && x132:0 > -1 ---------------------------------------- (25) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f2233_0_randomlyDuplicate_NULL(INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (26) Obligation: Rules: f2233_0_randomlyDuplicate_NULL(x122:0, x123:0, x124:0) -> f2233_0_randomlyDuplicate_NULL(x126:0, x123:0, c) :|: c = x124:0 + 1 && (x122:0 > 0 && x126:0 > -1 && x126:0 + 1 <= x122:0 && x130:0 > -1 && x130:0 < 43 && x124:0 > -1 && x123:0 > -1) f2233_0_randomlyDuplicate_NULL(x131:0, x132:0, x133:0) -> f2233_0_randomlyDuplicate_NULL(x135:0, x132:0, c1) :|: c1 = x133:0 + 1 && (x131:0 > 0 && x135:0 > -1 && x135:0 + 1 <= x131:0 && x133:0 > -1 && x139:0 > 42 && x132:0 > -1) ---------------------------------------- (27) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f2233_0_randomlyDuplicate_NULL ] = f2233_0_randomlyDuplicate_NULL_1 The following rules are decreasing: f2233_0_randomlyDuplicate_NULL(x122:0, x123:0, x124:0) -> f2233_0_randomlyDuplicate_NULL(x126:0, x123:0, c) :|: c = x124:0 + 1 && (x122:0 > 0 && x126:0 > -1 && x126:0 + 1 <= x122:0 && x130:0 > -1 && x130:0 < 43 && x124:0 > -1 && x123:0 > -1) f2233_0_randomlyDuplicate_NULL(x131:0, x132:0, x133:0) -> f2233_0_randomlyDuplicate_NULL(x135:0, x132:0, c1) :|: c1 = x133:0 + 1 && (x131:0 > 0 && x135:0 > -1 && x135:0 + 1 <= x131:0 && x133:0 > -1 && x139:0 > 42 && x132:0 > -1) The following rules are bounded: f2233_0_randomlyDuplicate_NULL(x122:0, x123:0, x124:0) -> f2233_0_randomlyDuplicate_NULL(x126:0, x123:0, c) :|: c = x124:0 + 1 && (x122:0 > 0 && x126:0 > -1 && x126:0 + 1 <= x122:0 && x130:0 > -1 && x130:0 < 43 && x124:0 > -1 && x123:0 > -1) f2233_0_randomlyDuplicate_NULL(x131:0, x132:0, x133:0) -> f2233_0_randomlyDuplicate_NULL(x135:0, x132:0, c1) :|: c1 = x133:0 + 1 && (x131:0 > 0 && x135:0 > -1 && x135:0 + 1 <= x131:0 && x133:0 > -1 && x139:0 > 42 && x132:0 > -1) ---------------------------------------- (28) YES