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