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, 3093 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 12 ms] (7) IRSwT (8) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (9) IRSwT (10) FilterProof [EQUIVALENT, 0 ms] (11) IntTRS (12) IntTRSCompressionProof [EQUIVALENT, 0 ms] (13) IntTRS (14) RankingReductionPairProof [EQUIVALENT, 1 ms] (15) YES (16) IRSwT (17) IntTRSCompressionProof [EQUIVALENT, 23 ms] (18) IRSwT (19) TempFilterProof [SOUND, 101 ms] (20) IntTRS (21) PolynomialOrderProcessor [EQUIVALENT, 23 ms] (22) IntTRS (23) RankingReductionPairProof [EQUIVALENT, 0 ms] (24) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4, arg5, arg6) -> f499_0_createTree_GT(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: 1 = arg3P && arg2 = arg2P && 0 <= arg1 - 1 && 0 <= arg2 - 1 && -1 <= arg1P - 1 f1_0_main_Load(x, x1, x2, x3, x4, x5) -> f1061_0_main_InvokeMethod(x6, x7, x9, x10, x11, x12) :|: -1 <= x13 - 1 && 0 <= x1 - 1 && x6 <= x && 0 <= x - 1 && 0 <= x6 - 1 && -1 <= x7 - 1 f350_0_createTree_Return(x15, x16, x17, x18, x19, x20) -> f1061_0_main_InvokeMethod(x21, x22, x23, x24, x25, x26) :|: x16 = x23 && -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x15 - 1 && x22 + 1 <= x15 && x21 <= x15 f1061_0_main_InvokeMethod(x27, x28, x29, x30, x31, x32) -> f1079_0_mirror_NULL(x33, x34, x35, x36, x37, x38) :|: 0 <= x39 - 1 && 1 <= x29 - 1 && x33 <= x28 && 0 <= x27 - 1 && -1 <= x28 - 1 && -1 <= x33 - 1 && x29 = x34 f499_0_createTree_GT(x40, x41, x42, x43, x44, x45) -> f1039_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: x42 + 1 = x51 && x41 = x50 && 0 = x48 && x40 - 1 = x47 && x40 = x46 && -1 <= x49 - 1 && x42 <= x41 - 1 && 0 <= x42 - 1 && 0 <= x40 - 1 && -1 <= x41 - 1 f1039_0_createTree_GE(x52, x53, x54, x55, x56, x57) -> f499_0_createTree_GT(x58, x59, x60, x61, x62, x63) :|: x57 = x60 && x56 = x59 && x53 - 1 = x58 && x53 - 1 <= x53 - 1 && -1 <= x53 - 1 && x53 - 1 <= x52 - 1 && x53 <= x52 - 1 && 1 <= x57 - 1 && 0 <= x52 - 1 && x54 <= x55 - 1 && 0 <= x55 - 1 f1039_0_createTree_GE(x64, x65, x66, x67, x68, x69) -> f1039_0_createTree_GE(x70, x71, x72, x73, x74, x75) :|: x69 = x75 && x68 = x74 && x67 = x73 && x66 + 1 = x72 && x65 = x71 && x64 = x70 && x65 - 1 <= x65 - 1 && -1 <= x65 - 1 && x65 - 1 <= x64 - 1 && x65 <= x64 - 1 && 1 <= x69 - 1 && 0 <= x64 - 1 && x66 <= x67 - 1 && 0 <= x67 - 1 f1039_0_createTree_GE(x76, x77, x78, x79, x80, x81) -> f1039_0_createTree_GE(x82, x83, x84, x85, x86, x87) :|: x80 = x86 && x79 = x85 && x78 + 1 = x84 && x77 = x83 && x76 = x82 && x77 - 1 <= x77 - 1 && -1 <= x77 - 1 && x77 - 1 <= x76 - 1 && x77 <= x76 - 1 && 1 <= x81 - 1 && 0 <= x76 - 1 && x78 <= x79 - 1 && 0 <= x79 - 1 f1079_0_mirror_NULL(x88, x89, x90, x91, x92, x93) -> f1079_0_mirror_NULL(x94, x95, x96, x97, x98, x99) :|: x89 = x95 && 0 <= x94 - 1 && 2 <= x88 - 1 && 1 <= x89 - 1 && x94 + 2 <= x88 f1079_0_mirror_NULL(x100, x101, x102, x103, x104, x105) -> f1079_0_mirror_NULL(x106, x107, x108, x109, x110, x111) :|: x101 = x107 && -1 <= x106 - 1 && 3 <= x100 - 1 && 1 <= x101 - 1 && x106 + 4 <= x100 f1079_0_mirror_NULL(x112, x113, x114, x115, x116, x117) -> f1400_0_mirror_FieldAccess(x118, x119, x120, x121, x122, x123) :|: x113 = x122 && -1 <= x120 - 1 && 2 <= x119 - 1 && 1 <= x118 - 1 && 2 <= x112 - 1 && x120 + 2 <= x112 && 1 <= x113 - 1 && x118 <= x112 f1079_0_mirror_NULL(x124, x125, x126, x127, x128, x129) -> f1400_0_mirror_FieldAccess(x130, x131, x132, x133, x134, x135) :|: x125 = x134 && -1 <= x132 - 1 && 5 <= x131 - 1 && 1 <= x130 - 1 && 2 <= x124 - 1 && x132 + 2 <= x124 && 1 <= x125 - 1 && x130 <= x124 f1400_0_mirror_FieldAccess(x136, x137, x138, x139, x140, x141) -> f1079_0_mirror_NULL(x142, x143, x144, x145, x146, x147) :|: x140 = x143 && -1 <= x142 - 1 && 0 <= x138 - 1 && 0 <= x137 - 1 && 2 <= x136 - 1 && x142 + 1 <= x138 && 1 <= x140 - 1 && x142 + 3 <= x136 f1400_0_mirror_FieldAccess(x148, x149, x150, x151, x152, x153) -> f1463_0_mirror_FieldAccess(x154, x155, x156, x157, x158, x159) :|: 3 <= x155 - 1 && 0 <= x154 - 1 && 1 <= x150 - 1 && 0 <= x149 - 1 && 3 <= x148 - 1 && x155 - 2 <= x150 && x155 - 3 <= x149 && x155 <= x148 && 1 <= x152 - 1 && x154 <= x149 f1400_0_mirror_FieldAccess(x160, x161, x162, x163, x164, x165) -> f1463_0_mirror_FieldAccess(x166, x167, x168, x169, x170, x171) :|: 5 <= x167 - 1 && 0 <= x166 - 1 && 3 <= x162 - 1 && 0 <= x161 - 1 && 5 <= x160 - 1 && x167 - 2 <= x162 && x167 <= x160 && 1 <= x164 - 1 && x166 <= x161 f1400_0_mirror_FieldAccess(x172, x173, x174, x175, x176, x177) -> f1463_0_mirror_FieldAccess(x178, x179, x180, x181, x182, x183) :|: 5 <= x179 - 1 && 0 <= x178 - 1 && 0 <= x174 - 1 && 0 <= x173 - 1 && 2 <= x172 - 1 && 1 <= x176 - 1 && x178 <= x173 __init(x184, x185, x186, x187, x188, x189) -> f1_0_main_Load(x190, x191, x192, x193, x194, x195) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5, arg6) ---------------------------------------- (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, arg5, arg6) -> f499_0_createTree_GT(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: 1 = arg3P && arg2 = arg2P && 0 <= arg1 - 1 && 0 <= arg2 - 1 && -1 <= arg1P - 1 f1_0_main_Load(x, x1, x2, x3, x4, x5) -> f1061_0_main_InvokeMethod(x6, x7, x9, x10, x11, x12) :|: -1 <= x13 - 1 && 0 <= x1 - 1 && x6 <= x && 0 <= x - 1 && 0 <= x6 - 1 && -1 <= x7 - 1 f350_0_createTree_Return(x15, x16, x17, x18, x19, x20) -> f1061_0_main_InvokeMethod(x21, x22, x23, x24, x25, x26) :|: x16 = x23 && -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x15 - 1 && x22 + 1 <= x15 && x21 <= x15 f1061_0_main_InvokeMethod(x27, x28, x29, x30, x31, x32) -> f1079_0_mirror_NULL(x33, x34, x35, x36, x37, x38) :|: 0 <= x39 - 1 && 1 <= x29 - 1 && x33 <= x28 && 0 <= x27 - 1 && -1 <= x28 - 1 && -1 <= x33 - 1 && x29 = x34 f499_0_createTree_GT(x40, x41, x42, x43, x44, x45) -> f1039_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: x42 + 1 = x51 && x41 = x50 && 0 = x48 && x40 - 1 = x47 && x40 = x46 && -1 <= x49 - 1 && x42 <= x41 - 1 && 0 <= x42 - 1 && 0 <= x40 - 1 && -1 <= x41 - 1 f1039_0_createTree_GE(x52, x53, x54, x55, x56, x57) -> f499_0_createTree_GT(x58, x59, x60, x61, x62, x63) :|: x57 = x60 && x56 = x59 && x53 - 1 = x58 && x53 - 1 <= x53 - 1 && -1 <= x53 - 1 && x53 - 1 <= x52 - 1 && x53 <= x52 - 1 && 1 <= x57 - 1 && 0 <= x52 - 1 && x54 <= x55 - 1 && 0 <= x55 - 1 f1039_0_createTree_GE(x64, x65, x66, x67, x68, x69) -> f1039_0_createTree_GE(x70, x71, x72, x73, x74, x75) :|: x69 = x75 && x68 = x74 && x67 = x73 && x66 + 1 = x72 && x65 = x71 && x64 = x70 && x65 - 1 <= x65 - 1 && -1 <= x65 - 1 && x65 - 1 <= x64 - 1 && x65 <= x64 - 1 && 1 <= x69 - 1 && 0 <= x64 - 1 && x66 <= x67 - 1 && 0 <= x67 - 1 f1039_0_createTree_GE(x76, x77, x78, x79, x80, x81) -> f1039_0_createTree_GE(x82, x83, x84, x85, x86, x87) :|: x80 = x86 && x79 = x85 && x78 + 1 = x84 && x77 = x83 && x76 = x82 && x77 - 1 <= x77 - 1 && -1 <= x77 - 1 && x77 - 1 <= x76 - 1 && x77 <= x76 - 1 && 1 <= x81 - 1 && 0 <= x76 - 1 && x78 <= x79 - 1 && 0 <= x79 - 1 f1079_0_mirror_NULL(x88, x89, x90, x91, x92, x93) -> f1079_0_mirror_NULL(x94, x95, x96, x97, x98, x99) :|: x89 = x95 && 0 <= x94 - 1 && 2 <= x88 - 1 && 1 <= x89 - 1 && x94 + 2 <= x88 f1079_0_mirror_NULL(x100, x101, x102, x103, x104, x105) -> f1079_0_mirror_NULL(x106, x107, x108, x109, x110, x111) :|: x101 = x107 && -1 <= x106 - 1 && 3 <= x100 - 1 && 1 <= x101 - 1 && x106 + 4 <= x100 f1079_0_mirror_NULL(x112, x113, x114, x115, x116, x117) -> f1400_0_mirror_FieldAccess(x118, x119, x120, x121, x122, x123) :|: x113 = x122 && -1 <= x120 - 1 && 2 <= x119 - 1 && 1 <= x118 - 1 && 2 <= x112 - 1 && x120 + 2 <= x112 && 1 <= x113 - 1 && x118 <= x112 f1079_0_mirror_NULL(x124, x125, x126, x127, x128, x129) -> f1400_0_mirror_FieldAccess(x130, x131, x132, x133, x134, x135) :|: x125 = x134 && -1 <= x132 - 1 && 5 <= x131 - 1 && 1 <= x130 - 1 && 2 <= x124 - 1 && x132 + 2 <= x124 && 1 <= x125 - 1 && x130 <= x124 f1400_0_mirror_FieldAccess(x136, x137, x138, x139, x140, x141) -> f1079_0_mirror_NULL(x142, x143, x144, x145, x146, x147) :|: x140 = x143 && -1 <= x142 - 1 && 0 <= x138 - 1 && 0 <= x137 - 1 && 2 <= x136 - 1 && x142 + 1 <= x138 && 1 <= x140 - 1 && x142 + 3 <= x136 f1400_0_mirror_FieldAccess(x148, x149, x150, x151, x152, x153) -> f1463_0_mirror_FieldAccess(x154, x155, x156, x157, x158, x159) :|: 3 <= x155 - 1 && 0 <= x154 - 1 && 1 <= x150 - 1 && 0 <= x149 - 1 && 3 <= x148 - 1 && x155 - 2 <= x150 && x155 - 3 <= x149 && x155 <= x148 && 1 <= x152 - 1 && x154 <= x149 f1400_0_mirror_FieldAccess(x160, x161, x162, x163, x164, x165) -> f1463_0_mirror_FieldAccess(x166, x167, x168, x169, x170, x171) :|: 5 <= x167 - 1 && 0 <= x166 - 1 && 3 <= x162 - 1 && 0 <= x161 - 1 && 5 <= x160 - 1 && x167 - 2 <= x162 && x167 <= x160 && 1 <= x164 - 1 && x166 <= x161 f1400_0_mirror_FieldAccess(x172, x173, x174, x175, x176, x177) -> f1463_0_mirror_FieldAccess(x178, x179, x180, x181, x182, x183) :|: 5 <= x179 - 1 && 0 <= x178 - 1 && 0 <= x174 - 1 && 0 <= x173 - 1 && 2 <= x172 - 1 && 1 <= x176 - 1 && x178 <= x173 __init(x184, x185, x186, x187, x188, x189) -> f1_0_main_Load(x190, x191, x192, x193, x194, x195) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5, arg6) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1_0_main_Load(arg1, arg2, arg3, arg4, arg5, arg6) -> f499_0_createTree_GT(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: 1 = arg3P && arg2 = arg2P && 0 <= arg1 - 1 && 0 <= arg2 - 1 && -1 <= arg1P - 1 (2) f1_0_main_Load(x, x1, x2, x3, x4, x5) -> f1061_0_main_InvokeMethod(x6, x7, x9, x10, x11, x12) :|: -1 <= x13 - 1 && 0 <= x1 - 1 && x6 <= x && 0 <= x - 1 && 0 <= x6 - 1 && -1 <= x7 - 1 (3) f350_0_createTree_Return(x15, x16, x17, x18, x19, x20) -> f1061_0_main_InvokeMethod(x21, x22, x23, x24, x25, x26) :|: x16 = x23 && -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x15 - 1 && x22 + 1 <= x15 && x21 <= x15 (4) f1061_0_main_InvokeMethod(x27, x28, x29, x30, x31, x32) -> f1079_0_mirror_NULL(x33, x34, x35, x36, x37, x38) :|: 0 <= x39 - 1 && 1 <= x29 - 1 && x33 <= x28 && 0 <= x27 - 1 && -1 <= x28 - 1 && -1 <= x33 - 1 && x29 = x34 (5) f499_0_createTree_GT(x40, x41, x42, x43, x44, x45) -> f1039_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: x42 + 1 = x51 && x41 = x50 && 0 = x48 && x40 - 1 = x47 && x40 = x46 && -1 <= x49 - 1 && x42 <= x41 - 1 && 0 <= x42 - 1 && 0 <= x40 - 1 && -1 <= x41 - 1 (6) f1039_0_createTree_GE(x52, x53, x54, x55, x56, x57) -> f499_0_createTree_GT(x58, x59, x60, x61, x62, x63) :|: x57 = x60 && x56 = x59 && x53 - 1 = x58 && x53 - 1 <= x53 - 1 && -1 <= x53 - 1 && x53 - 1 <= x52 - 1 && x53 <= x52 - 1 && 1 <= x57 - 1 && 0 <= x52 - 1 && x54 <= x55 - 1 && 0 <= x55 - 1 (7) f1039_0_createTree_GE(x64, x65, x66, x67, x68, x69) -> f1039_0_createTree_GE(x70, x71, x72, x73, x74, x75) :|: x69 = x75 && x68 = x74 && x67 = x73 && x66 + 1 = x72 && x65 = x71 && x64 = x70 && x65 - 1 <= x65 - 1 && -1 <= x65 - 1 && x65 - 1 <= x64 - 1 && x65 <= x64 - 1 && 1 <= x69 - 1 && 0 <= x64 - 1 && x66 <= x67 - 1 && 0 <= x67 - 1 (8) f1039_0_createTree_GE(x76, x77, x78, x79, x80, x81) -> f1039_0_createTree_GE(x82, x83, x84, x85, x86, x87) :|: x80 = x86 && x79 = x85 && x78 + 1 = x84 && x77 = x83 && x76 = x82 && x77 - 1 <= x77 - 1 && -1 <= x77 - 1 && x77 - 1 <= x76 - 1 && x77 <= x76 - 1 && 1 <= x81 - 1 && 0 <= x76 - 1 && x78 <= x79 - 1 && 0 <= x79 - 1 (9) f1079_0_mirror_NULL(x88, x89, x90, x91, x92, x93) -> f1079_0_mirror_NULL(x94, x95, x96, x97, x98, x99) :|: x89 = x95 && 0 <= x94 - 1 && 2 <= x88 - 1 && 1 <= x89 - 1 && x94 + 2 <= x88 (10) f1079_0_mirror_NULL(x100, x101, x102, x103, x104, x105) -> f1079_0_mirror_NULL(x106, x107, x108, x109, x110, x111) :|: x101 = x107 && -1 <= x106 - 1 && 3 <= x100 - 1 && 1 <= x101 - 1 && x106 + 4 <= x100 (11) f1079_0_mirror_NULL(x112, x113, x114, x115, x116, x117) -> f1400_0_mirror_FieldAccess(x118, x119, x120, x121, x122, x123) :|: x113 = x122 && -1 <= x120 - 1 && 2 <= x119 - 1 && 1 <= x118 - 1 && 2 <= x112 - 1 && x120 + 2 <= x112 && 1 <= x113 - 1 && x118 <= x112 (12) f1079_0_mirror_NULL(x124, x125, x126, x127, x128, x129) -> f1400_0_mirror_FieldAccess(x130, x131, x132, x133, x134, x135) :|: x125 = x134 && -1 <= x132 - 1 && 5 <= x131 - 1 && 1 <= x130 - 1 && 2 <= x124 - 1 && x132 + 2 <= x124 && 1 <= x125 - 1 && x130 <= x124 (13) f1400_0_mirror_FieldAccess(x136, x137, x138, x139, x140, x141) -> f1079_0_mirror_NULL(x142, x143, x144, x145, x146, x147) :|: x140 = x143 && -1 <= x142 - 1 && 0 <= x138 - 1 && 0 <= x137 - 1 && 2 <= x136 - 1 && x142 + 1 <= x138 && 1 <= x140 - 1 && x142 + 3 <= x136 (14) f1400_0_mirror_FieldAccess(x148, x149, x150, x151, x152, x153) -> f1463_0_mirror_FieldAccess(x154, x155, x156, x157, x158, x159) :|: 3 <= x155 - 1 && 0 <= x154 - 1 && 1 <= x150 - 1 && 0 <= x149 - 1 && 3 <= x148 - 1 && x155 - 2 <= x150 && x155 - 3 <= x149 && x155 <= x148 && 1 <= x152 - 1 && x154 <= x149 (15) f1400_0_mirror_FieldAccess(x160, x161, x162, x163, x164, x165) -> f1463_0_mirror_FieldAccess(x166, x167, x168, x169, x170, x171) :|: 5 <= x167 - 1 && 0 <= x166 - 1 && 3 <= x162 - 1 && 0 <= x161 - 1 && 5 <= x160 - 1 && x167 - 2 <= x162 && x167 <= x160 && 1 <= x164 - 1 && x166 <= x161 (16) f1400_0_mirror_FieldAccess(x172, x173, x174, x175, x176, x177) -> f1463_0_mirror_FieldAccess(x178, x179, x180, x181, x182, x183) :|: 5 <= x179 - 1 && 0 <= x178 - 1 && 0 <= x174 - 1 && 0 <= x173 - 1 && 2 <= x172 - 1 && 1 <= x176 - 1 && x178 <= x173 (17) __init(x184, x185, x186, x187, x188, x189) -> f1_0_main_Load(x190, x191, x192, x193, x194, x195) :|: 0 <= 0 Arcs: (1) -> (5) (2) -> (4) (3) -> (4) (4) -> (9), (10), (11), (12) (5) -> (6), (7), (8) (6) -> (5) (7) -> (6), (7), (8) (8) -> (6), (7), (8) (9) -> (9), (10), (11), (12) (10) -> (9), (10), (11), (12) (11) -> (13), (14), (15), (16) (12) -> (13), (14), (15), (16) (13) -> (9), (10), (11), (12) (17) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f1079_0_mirror_NULL(x88, x89, x90, x91, x92, x93) -> f1079_0_mirror_NULL(x94, x95, x96, x97, x98, x99) :|: x89 = x95 && 0 <= x94 - 1 && 2 <= x88 - 1 && 1 <= x89 - 1 && x94 + 2 <= x88 (2) f1079_0_mirror_NULL(x100, x101, x102, x103, x104, x105) -> f1079_0_mirror_NULL(x106, x107, x108, x109, x110, x111) :|: x101 = x107 && -1 <= x106 - 1 && 3 <= x100 - 1 && 1 <= x101 - 1 && x106 + 4 <= x100 (3) f1400_0_mirror_FieldAccess(x136, x137, x138, x139, x140, x141) -> f1079_0_mirror_NULL(x142, x143, x144, x145, x146, x147) :|: x140 = x143 && -1 <= x142 - 1 && 0 <= x138 - 1 && 0 <= x137 - 1 && 2 <= x136 - 1 && x142 + 1 <= x138 && 1 <= x140 - 1 && x142 + 3 <= x136 (4) f1079_0_mirror_NULL(x124, x125, x126, x127, x128, x129) -> f1400_0_mirror_FieldAccess(x130, x131, x132, x133, x134, x135) :|: x125 = x134 && -1 <= x132 - 1 && 5 <= x131 - 1 && 1 <= x130 - 1 && 2 <= x124 - 1 && x132 + 2 <= x124 && 1 <= x125 - 1 && x130 <= x124 (5) f1079_0_mirror_NULL(x112, x113, x114, x115, x116, x117) -> f1400_0_mirror_FieldAccess(x118, x119, x120, x121, x122, x123) :|: x113 = x122 && -1 <= x120 - 1 && 2 <= x119 - 1 && 1 <= x118 - 1 && 2 <= x112 - 1 && x120 + 2 <= x112 && 1 <= x113 - 1 && x118 <= x112 Arcs: (1) -> (1), (2), (4), (5) (2) -> (1), (2), (4), (5) (3) -> (1), (2), (4), (5) (4) -> (3) (5) -> (3) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f1079_0_mirror_NULL(x88:0, x89:0, x90:0, x91:0, x92:0, x93:0) -> f1079_0_mirror_NULL(x94:0, x89:0, x96:0, x97:0, x98:0, x99:0) :|: x89:0 > 1 && x94:0 + 2 <= x88:0 && x94:0 > 0 && x88:0 > 2 f1079_0_mirror_NULL(x100:0, x101:0, x102:0, x103:0, x104:0, x105:0) -> f1079_0_mirror_NULL(x106:0, x101:0, x108:0, x109:0, x110:0, x111:0) :|: x101:0 > 1 && x106:0 + 4 <= x100:0 && x106:0 > -1 && x100:0 > 3 f1079_0_mirror_NULL(x112:0, x113:0, x114:0, x115:0, x116:0, x117:0) -> f1079_0_mirror_NULL(x142:0, x113:0, x144:0, x145:0, x146:0, x147:0) :|: x142:0 + 3 <= x118:0 && x118:0 <= x112:0 && x113:0 > 1 && x120:0 + 2 <= x112:0 && x142:0 + 1 <= x120:0 && x112:0 > 2 && x142:0 > -1 && x118:0 > 2 && x120:0 > 0 && x119:0 > 2 f1079_0_mirror_NULL(x, x1, x2, x3, x4, x5) -> f1079_0_mirror_NULL(x6, x1, x7, x8, x9, x10) :|: x6 + 3 <= x11 && x11 <= x && x1 > 1 && x12 + 2 <= x && x6 + 1 <= x12 && x > 2 && x6 > -1 && x11 > 2 && x12 > 0 && x13 > 5 ---------------------------------------- (8) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f1079_0_mirror_NULL(x1, x2, x3, x4, x5, x6) -> f1079_0_mirror_NULL(x1, x2) ---------------------------------------- (9) Obligation: Rules: f1079_0_mirror_NULL(x88:0, x89:0) -> f1079_0_mirror_NULL(x94:0, x89:0) :|: x89:0 > 1 && x94:0 + 2 <= x88:0 && x94:0 > 0 && x88:0 > 2 f1079_0_mirror_NULL(x100:0, x101:0) -> f1079_0_mirror_NULL(x106:0, x101:0) :|: x101:0 > 1 && x106:0 + 4 <= x100:0 && x106:0 > -1 && x100:0 > 3 f1079_0_mirror_NULL(x112:0, x113:0) -> f1079_0_mirror_NULL(x142:0, x113:0) :|: x142:0 + 3 <= x118:0 && x118:0 <= x112:0 && x113:0 > 1 && x120:0 + 2 <= x112:0 && x142:0 + 1 <= x120:0 && x112:0 > 2 && x142:0 > -1 && x118:0 > 2 && x120:0 > 0 && x119:0 > 2 f1079_0_mirror_NULL(x, x1) -> f1079_0_mirror_NULL(x6, x1) :|: x6 + 3 <= x11 && x11 <= x && x1 > 1 && x12 + 2 <= x && x6 + 1 <= x12 && x > 2 && x6 > -1 && x11 > 2 && x12 > 0 && x13 > 5 ---------------------------------------- (10) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f1079_0_mirror_NULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (11) Obligation: Rules: f1079_0_mirror_NULL(x88:0, x89:0) -> f1079_0_mirror_NULL(x94:0, x89:0) :|: x89:0 > 1 && x94:0 + 2 <= x88:0 && x94:0 > 0 && x88:0 > 2 f1079_0_mirror_NULL(x100:0, x101:0) -> f1079_0_mirror_NULL(x106:0, x101:0) :|: x101:0 > 1 && x106:0 + 4 <= x100:0 && x106:0 > -1 && x100:0 > 3 f1079_0_mirror_NULL(x112:0, x113:0) -> f1079_0_mirror_NULL(x142:0, x113:0) :|: x142:0 + 3 <= x118:0 && x118:0 <= x112:0 && x113:0 > 1 && x120:0 + 2 <= x112:0 && x142:0 + 1 <= x120:0 && x112:0 > 2 && x142:0 > -1 && x118:0 > 2 && x120:0 > 0 && x119:0 > 2 f1079_0_mirror_NULL(x, x1) -> f1079_0_mirror_NULL(x6, x1) :|: x6 + 3 <= x11 && x11 <= x && x1 > 1 && x12 + 2 <= x && x6 + 1 <= x12 && x > 2 && x6 > -1 && x11 > 2 && x12 > 0 && x13 > 5 ---------------------------------------- (12) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (13) Obligation: Rules: f1079_0_mirror_NULL(x88:0:0, x89:0:0) -> f1079_0_mirror_NULL(x94:0:0, x89:0:0) :|: x94:0:0 > 0 && x88:0:0 > 2 && x94:0:0 + 2 <= x88:0:0 && x89:0:0 > 1 f1079_0_mirror_NULL(x112:0:0, x113:0:0) -> f1079_0_mirror_NULL(x142:0:0, x113:0:0) :|: x120:0:0 > 0 && x119:0:0 > 2 && x118:0:0 > 2 && x142:0:0 > -1 && x112:0:0 > 2 && x142:0:0 + 1 <= x120:0:0 && x120:0:0 + 2 <= x112:0:0 && x113:0:0 > 1 && x118:0:0 <= x112:0:0 && x142:0:0 + 3 <= x118:0:0 f1079_0_mirror_NULL(x100:0:0, x101:0:0) -> f1079_0_mirror_NULL(x106:0:0, x101:0:0) :|: x106:0:0 > -1 && x100:0:0 > 3 && x106:0:0 + 4 <= x100:0:0 && x101:0:0 > 1 f1079_0_mirror_NULL(x:0, x1:0) -> f1079_0_mirror_NULL(x6:0, x1:0) :|: x12:0 > 0 && x13:0 > 5 && x11:0 > 2 && x6:0 > -1 && x:0 > 2 && x6:0 + 1 <= x12:0 && x:0 >= x12:0 + 2 && x1:0 > 1 && x:0 >= x11:0 && x6:0 + 3 <= x11:0 ---------------------------------------- (14) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1079_0_mirror_NULL ] = 1/2*f1079_0_mirror_NULL_1 The following rules are decreasing: f1079_0_mirror_NULL(x88:0:0, x89:0:0) -> f1079_0_mirror_NULL(x94:0:0, x89:0:0) :|: x94:0:0 > 0 && x88:0:0 > 2 && x94:0:0 + 2 <= x88:0:0 && x89:0:0 > 1 f1079_0_mirror_NULL(x112:0:0, x113:0:0) -> f1079_0_mirror_NULL(x142:0:0, x113:0:0) :|: x120:0:0 > 0 && x119:0:0 > 2 && x118:0:0 > 2 && x142:0:0 > -1 && x112:0:0 > 2 && x142:0:0 + 1 <= x120:0:0 && x120:0:0 + 2 <= x112:0:0 && x113:0:0 > 1 && x118:0:0 <= x112:0:0 && x142:0:0 + 3 <= x118:0:0 f1079_0_mirror_NULL(x100:0:0, x101:0:0) -> f1079_0_mirror_NULL(x106:0:0, x101:0:0) :|: x106:0:0 > -1 && x100:0:0 > 3 && x106:0:0 + 4 <= x100:0:0 && x101:0:0 > 1 f1079_0_mirror_NULL(x:0, x1:0) -> f1079_0_mirror_NULL(x6:0, x1:0) :|: x12:0 > 0 && x13:0 > 5 && x11:0 > 2 && x6:0 > -1 && x:0 > 2 && x6:0 + 1 <= x12:0 && x:0 >= x12:0 + 2 && x1:0 > 1 && x:0 >= x11:0 && x6:0 + 3 <= x11:0 The following rules are bounded: f1079_0_mirror_NULL(x88:0:0, x89:0:0) -> f1079_0_mirror_NULL(x94:0:0, x89:0:0) :|: x94:0:0 > 0 && x88:0:0 > 2 && x94:0:0 + 2 <= x88:0:0 && x89:0:0 > 1 f1079_0_mirror_NULL(x112:0:0, x113:0:0) -> f1079_0_mirror_NULL(x142:0:0, x113:0:0) :|: x120:0:0 > 0 && x119:0:0 > 2 && x118:0:0 > 2 && x142:0:0 > -1 && x112:0:0 > 2 && x142:0:0 + 1 <= x120:0:0 && x120:0:0 + 2 <= x112:0:0 && x113:0:0 > 1 && x118:0:0 <= x112:0:0 && x142:0:0 + 3 <= x118:0:0 f1079_0_mirror_NULL(x100:0:0, x101:0:0) -> f1079_0_mirror_NULL(x106:0:0, x101:0:0) :|: x106:0:0 > -1 && x100:0:0 > 3 && x106:0:0 + 4 <= x100:0:0 && x101:0:0 > 1 f1079_0_mirror_NULL(x:0, x1:0) -> f1079_0_mirror_NULL(x6:0, x1:0) :|: x12:0 > 0 && x13:0 > 5 && x11:0 > 2 && x6:0 > -1 && x:0 > 2 && x6:0 + 1 <= x12:0 && x:0 >= x12:0 + 2 && x1:0 > 1 && x:0 >= x11:0 && x6:0 + 3 <= x11:0 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Termination digraph: Nodes: (1) f499_0_createTree_GT(x40, x41, x42, x43, x44, x45) -> f1039_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: x42 + 1 = x51 && x41 = x50 && 0 = x48 && x40 - 1 = x47 && x40 = x46 && -1 <= x49 - 1 && x42 <= x41 - 1 && 0 <= x42 - 1 && 0 <= x40 - 1 && -1 <= x41 - 1 (2) f1039_0_createTree_GE(x52, x53, x54, x55, x56, x57) -> f499_0_createTree_GT(x58, x59, x60, x61, x62, x63) :|: x57 = x60 && x56 = x59 && x53 - 1 = x58 && x53 - 1 <= x53 - 1 && -1 <= x53 - 1 && x53 - 1 <= x52 - 1 && x53 <= x52 - 1 && 1 <= x57 - 1 && 0 <= x52 - 1 && x54 <= x55 - 1 && 0 <= x55 - 1 (3) f1039_0_createTree_GE(x64, x65, x66, x67, x68, x69) -> f1039_0_createTree_GE(x70, x71, x72, x73, x74, x75) :|: x69 = x75 && x68 = x74 && x67 = x73 && x66 + 1 = x72 && x65 = x71 && x64 = x70 && x65 - 1 <= x65 - 1 && -1 <= x65 - 1 && x65 - 1 <= x64 - 1 && x65 <= x64 - 1 && 1 <= x69 - 1 && 0 <= x64 - 1 && x66 <= x67 - 1 && 0 <= x67 - 1 (4) f1039_0_createTree_GE(x76, x77, x78, x79, x80, x81) -> f1039_0_createTree_GE(x82, x83, x84, x85, x86, x87) :|: x80 = x86 && x79 = x85 && x78 + 1 = x84 && x77 = x83 && x76 = x82 && x77 - 1 <= x77 - 1 && -1 <= x77 - 1 && x77 - 1 <= x76 - 1 && x77 <= x76 - 1 && 1 <= x81 - 1 && 0 <= x76 - 1 && x78 <= x79 - 1 && 0 <= x79 - 1 Arcs: (1) -> (2), (3), (4) (2) -> (1) (3) -> (2), (3), (4) (4) -> (2), (3), (4) This digraph is fully evaluated! ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f1039_0_createTree_GE(x52:0, x53:0, x54:0, x55:0, x50:0, x57:0) -> f1039_0_createTree_GE(x53:0 - 1, x53:0 - 2, 0, x49:0, x50:0, x57:0 + 1) :|: x50:0 > -1 && x55:0 > 0 && x55:0 - 1 >= x54:0 && x52:0 > 0 && x57:0 <= x50:0 - 1 && x53:0 <= x52:0 - 1 && x49:0 > -1 && x53:0 - 1 <= x52:0 - 1 && x57:0 > 1 && x53:0 > 1 f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, x66:0 + 1, x67:0, x68:0, x69:0) :|: x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1 f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, x78:0 + 1, x79:0, x80:0, x87:0) :|: x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1 ---------------------------------------- (19) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1039_0_createTree_GE(INTEGER, INTEGER, VARIABLE, INTEGER, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (20) Obligation: Rules: f1039_0_createTree_GE(x52:0, x53:0, x54:0, x55:0, x50:0, x57:0) -> f1039_0_createTree_GE(c, c1, c2, x49:0, x50:0, c3) :|: c3 = x57:0 + 1 && (c2 = 0 && (c1 = x53:0 - 2 && c = x53:0 - 1)) && (x50:0 > -1 && x55:0 > 0 && x55:0 - 1 >= x54:0 && x52:0 > 0 && x57:0 <= x50:0 - 1 && x53:0 <= x52:0 - 1 && x49:0 > -1 && x53:0 - 1 <= x52:0 - 1 && x57:0 > 1 && x53:0 > 1) f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, c4, x67:0, x68:0, x69:0) :|: c4 = x66:0 + 1 && (x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1) f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, c5, x79:0, x80:0, x87:0) :|: c5 = x78:0 + 1 && (x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1) ---------------------------------------- (21) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f1039_0_createTree_GE(x, x1, x2, x3, x4, x5)] = x The following rules are decreasing: f1039_0_createTree_GE(x52:0, x53:0, x54:0, x55:0, x50:0, x57:0) -> f1039_0_createTree_GE(c, c1, c2, x49:0, x50:0, c3) :|: c3 = x57:0 + 1 && (c2 = 0 && (c1 = x53:0 - 2 && c = x53:0 - 1)) && (x50:0 > -1 && x55:0 > 0 && x55:0 - 1 >= x54:0 && x52:0 > 0 && x57:0 <= x50:0 - 1 && x53:0 <= x52:0 - 1 && x49:0 > -1 && x53:0 - 1 <= x52:0 - 1 && x57:0 > 1 && x53:0 > 1) The following rules are bounded: f1039_0_createTree_GE(x52:0, x53:0, x54:0, x55:0, x50:0, x57:0) -> f1039_0_createTree_GE(c, c1, c2, x49:0, x50:0, c3) :|: c3 = x57:0 + 1 && (c2 = 0 && (c1 = x53:0 - 2 && c = x53:0 - 1)) && (x50:0 > -1 && x55:0 > 0 && x55:0 - 1 >= x54:0 && x52:0 > 0 && x57:0 <= x50:0 - 1 && x53:0 <= x52:0 - 1 && x49:0 > -1 && x53:0 - 1 <= x52:0 - 1 && x57:0 > 1 && x53:0 > 1) f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, c4, x67:0, x68:0, x69:0) :|: c4 = x66:0 + 1 && (x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1) f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, c5, x79:0, x80:0, x87:0) :|: c5 = x78:0 + 1 && (x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1) ---------------------------------------- (22) Obligation: Rules: f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, c4, x67:0, x68:0, x69:0) :|: c4 = x66:0 + 1 && (x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1) f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, c5, x79:0, x80:0, x87:0) :|: c5 = x78:0 + 1 && (x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1) ---------------------------------------- (23) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1039_0_createTree_GE ] = f1039_0_createTree_GE_4 + -1*f1039_0_createTree_GE_3 The following rules are decreasing: f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, c4, x67:0, x68:0, x69:0) :|: c4 = x66:0 + 1 && (x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1) f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, c5, x79:0, x80:0, x87:0) :|: c5 = x78:0 + 1 && (x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1) The following rules are bounded: f1039_0_createTree_GE(x64:0, x65:0, x66:0, x67:0, x68:0, x69:0) -> f1039_0_createTree_GE(x64:0, x65:0, c4, x67:0, x68:0, x69:0) :|: c4 = x66:0 + 1 && (x67:0 - 1 >= x66:0 && x67:0 > 0 && x64:0 > 0 && x69:0 > 1 && x65:0 <= x64:0 - 1 && x65:0 > -1 && x65:0 - 1 <= x64:0 - 1) f1039_0_createTree_GE(x76:0, x77:0, x78:0, x79:0, x80:0, x81:0) -> f1039_0_createTree_GE(x76:0, x77:0, c5, x79:0, x80:0, x87:0) :|: c5 = x78:0 + 1 && (x79:0 - 1 >= x78:0 && x79:0 > 0 && x76:0 > 0 && x81:0 > 1 && x77:0 <= x76:0 - 1 && x77:0 > -1 && x77:0 - 1 <= x76:0 - 1) ---------------------------------------- (24) YES