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, 1290 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 0 ms] (7) IRSwT (8) TempFilterProof [SOUND, 64 ms] (9) IntTRS (10) RankingReductionPairProof [EQUIVALENT, 4 ms] (11) YES (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (16) IRSwT (17) FilterProof [EQUIVALENT, 0 ms] (18) IntTRS (19) IntTRSCompressionProof [EQUIVALENT, 1 ms] (20) IntTRS (21) RankingReductionPairProof [EQUIVALENT, 0 ms] (22) YES (23) IRSwT (24) IntTRSCompressionProof [EQUIVALENT, 0 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) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (33) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4, arg5, arg6) -> f1007_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: -1 <= x7 - 1 && 0 <= arg2 - 1 && arg1P <= arg1 && 0 <= arg1 - 1 && 0 <= arg1P - 1 && 0 <= arg2P - 1 f358_0_createTree_Return(x, x1, x2, x3, x4, x5) -> f1007_0_main_InvokeMethod(x6, x8, x9, x10, x11, x12) :|: x4 = x11 && x3 = x10 && x2 = x9 && x3 + 2 <= x1 && x4 + 2 <= x1 && x2 + 2 <= x1 && 0 <= x8 - 1 && 0 <= x6 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x8 <= x1 && x6 <= x1 && x6 <= x f1007_0_main_InvokeMethod(x13, x14, x15, x17, x18, x19) -> f1332_0_rotateEachNode_FieldAccess(x20, x21, x22, x23, x24, x25) :|: x20 <= x14 && 1 <= x26 - 1 && x21 <= x14 && 0 <= x13 - 1 && 0 <= x14 - 1 && 0 <= x20 - 1 && 0 <= x21 - 1 && x15 + 2 <= x14 && x18 + 2 <= x14 && x17 + 2 <= x14 f1_0_main_Load(x27, x28, x29, x30, x31, x32) -> f972_0_createTree_GE(x33, x34, x35, x36, x38, x39) :|: 2 = x38 && x28 = x36 && 0 = x34 && 1 <= x33 - 1 && 0 <= x27 - 1 && -1 <= x35 - 1 && 1 <= x28 - 1 && -1 <= x39 - 1 f972_0_createTree_GE(x40, x41, x42, x43, x44, x45) -> f972_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: -1 <= x44 - 1 && x41 <= x42 - 1 && 0 <= x42 - 1 && 1 <= x43 - 1 && -1 <= x52 - 1 && x44 <= x43 - 1 && 0 <= x40 - 1 && 3 <= x46 - 1 && x45 + 2 <= x40 && x41 + 1 = x47 && x42 = x48 && x43 = x49 && x44 + 1 = x50 f972_0_createTree_GE(x53, x54, x56, x57, x58, x59) -> f972_0_createTree_GE(x60, x61, x62, x63, x64, x65) :|: -1 <= x58 - 1 && x54 <= x56 - 1 && 0 <= x56 - 1 && 1 <= x57 - 1 && -1 <= x66 - 1 && x58 <= x57 - 1 && 0 <= x53 - 1 && 2 <= x60 - 1 && x59 + 2 <= x53 && x54 + 1 = x61 && x56 = x62 && x57 = x63 && x58 + 1 = x64 f1332_0_rotateEachNode_FieldAccess(x67, x68, x69, x70, x71, x72) -> f1332_0_rotateEachNode_FieldAccess(x73, x74, x75, x76, x77, x78) :|: -1 <= x74 - 1 && -1 <= x73 - 1 && 2 <= x68 - 1 && 2 <= x67 - 1 && x74 + 3 <= x68 && x74 + 3 <= x67 && x73 + 3 <= x68 && x73 + 3 <= x67 f1332_0_rotateEachNode_FieldAccess(x79, x80, x81, x82, x83, x84) -> f1332_0_rotateEachNode_FieldAccess(x85, x86, x87, x88, x89, x90) :|: -1 <= x86 - 1 && -1 <= x85 - 1 && 2 <= x80 - 1 && 2 <= x79 - 1 && x86 + 2 <= x80 && x86 + 2 <= x79 && x85 + 2 <= x80 && x85 + 2 <= x79 f972_0_createTree_GE(x91, x92, x93, x94, x95, x96) -> f1142_0_insert_GT(x97, x98, x99, x100, x101, x102) :|: x96 = x100 && x94 = x99 && x96 + 2 <= x91 && 0 <= x97 - 1 && 0 <= x91 - 1 && x97 <= x91 && x95 <= x94 - 1 && -1 <= x98 - 1 && 1 <= x94 - 1 && 0 <= x93 - 1 && x92 <= x93 - 1 && -1 <= x95 - 1 f1142_0_insert_GT(x103, x104, x105, x106, x107, x108) -> f1142_0_insert_GT(x109, x110, x111, x112, x113, x114) :|: x105 = x111 && x104 = x110 && x112 + 4 <= x103 && x106 + 2 <= x103 && 0 <= x109 - 1 && 2 <= x103 - 1 && x109 + 2 <= x103 && x106 <= x104 - 1 && 1 <= x105 - 1 f1142_0_insert_GT(x115, x116, x117, x118, x119, x120) -> f1142_0_insert_GT(x121, x122, x123, x124, x125, x126) :|: x117 = x123 && x116 = x122 && x124 + 4 <= x115 && x118 + 2 <= x115 && 0 <= x121 - 1 && 2 <= x115 - 1 && x121 + 2 <= x115 && x116 <= x118 && 1 <= x117 - 1 __init(x127, x128, x129, x130, x131, x132) -> f1_0_main_Load(x133, x134, x135, x136, x137, x138) :|: 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) -> f1007_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: -1 <= x7 - 1 && 0 <= arg2 - 1 && arg1P <= arg1 && 0 <= arg1 - 1 && 0 <= arg1P - 1 && 0 <= arg2P - 1 f358_0_createTree_Return(x, x1, x2, x3, x4, x5) -> f1007_0_main_InvokeMethod(x6, x8, x9, x10, x11, x12) :|: x4 = x11 && x3 = x10 && x2 = x9 && x3 + 2 <= x1 && x4 + 2 <= x1 && x2 + 2 <= x1 && 0 <= x8 - 1 && 0 <= x6 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x8 <= x1 && x6 <= x1 && x6 <= x f1007_0_main_InvokeMethod(x13, x14, x15, x17, x18, x19) -> f1332_0_rotateEachNode_FieldAccess(x20, x21, x22, x23, x24, x25) :|: x20 <= x14 && 1 <= x26 - 1 && x21 <= x14 && 0 <= x13 - 1 && 0 <= x14 - 1 && 0 <= x20 - 1 && 0 <= x21 - 1 && x15 + 2 <= x14 && x18 + 2 <= x14 && x17 + 2 <= x14 f1_0_main_Load(x27, x28, x29, x30, x31, x32) -> f972_0_createTree_GE(x33, x34, x35, x36, x38, x39) :|: 2 = x38 && x28 = x36 && 0 = x34 && 1 <= x33 - 1 && 0 <= x27 - 1 && -1 <= x35 - 1 && 1 <= x28 - 1 && -1 <= x39 - 1 f972_0_createTree_GE(x40, x41, x42, x43, x44, x45) -> f972_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: -1 <= x44 - 1 && x41 <= x42 - 1 && 0 <= x42 - 1 && 1 <= x43 - 1 && -1 <= x52 - 1 && x44 <= x43 - 1 && 0 <= x40 - 1 && 3 <= x46 - 1 && x45 + 2 <= x40 && x41 + 1 = x47 && x42 = x48 && x43 = x49 && x44 + 1 = x50 f972_0_createTree_GE(x53, x54, x56, x57, x58, x59) -> f972_0_createTree_GE(x60, x61, x62, x63, x64, x65) :|: -1 <= x58 - 1 && x54 <= x56 - 1 && 0 <= x56 - 1 && 1 <= x57 - 1 && -1 <= x66 - 1 && x58 <= x57 - 1 && 0 <= x53 - 1 && 2 <= x60 - 1 && x59 + 2 <= x53 && x54 + 1 = x61 && x56 = x62 && x57 = x63 && x58 + 1 = x64 f1332_0_rotateEachNode_FieldAccess(x67, x68, x69, x70, x71, x72) -> f1332_0_rotateEachNode_FieldAccess(x73, x74, x75, x76, x77, x78) :|: -1 <= x74 - 1 && -1 <= x73 - 1 && 2 <= x68 - 1 && 2 <= x67 - 1 && x74 + 3 <= x68 && x74 + 3 <= x67 && x73 + 3 <= x68 && x73 + 3 <= x67 f1332_0_rotateEachNode_FieldAccess(x79, x80, x81, x82, x83, x84) -> f1332_0_rotateEachNode_FieldAccess(x85, x86, x87, x88, x89, x90) :|: -1 <= x86 - 1 && -1 <= x85 - 1 && 2 <= x80 - 1 && 2 <= x79 - 1 && x86 + 2 <= x80 && x86 + 2 <= x79 && x85 + 2 <= x80 && x85 + 2 <= x79 f972_0_createTree_GE(x91, x92, x93, x94, x95, x96) -> f1142_0_insert_GT(x97, x98, x99, x100, x101, x102) :|: x96 = x100 && x94 = x99 && x96 + 2 <= x91 && 0 <= x97 - 1 && 0 <= x91 - 1 && x97 <= x91 && x95 <= x94 - 1 && -1 <= x98 - 1 && 1 <= x94 - 1 && 0 <= x93 - 1 && x92 <= x93 - 1 && -1 <= x95 - 1 f1142_0_insert_GT(x103, x104, x105, x106, x107, x108) -> f1142_0_insert_GT(x109, x110, x111, x112, x113, x114) :|: x105 = x111 && x104 = x110 && x112 + 4 <= x103 && x106 + 2 <= x103 && 0 <= x109 - 1 && 2 <= x103 - 1 && x109 + 2 <= x103 && x106 <= x104 - 1 && 1 <= x105 - 1 f1142_0_insert_GT(x115, x116, x117, x118, x119, x120) -> f1142_0_insert_GT(x121, x122, x123, x124, x125, x126) :|: x117 = x123 && x116 = x122 && x124 + 4 <= x115 && x118 + 2 <= x115 && 0 <= x121 - 1 && 2 <= x115 - 1 && x121 + 2 <= x115 && x116 <= x118 && 1 <= x117 - 1 __init(x127, x128, x129, x130, x131, x132) -> f1_0_main_Load(x133, x134, x135, x136, x137, x138) :|: 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) -> f1007_0_main_InvokeMethod(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P) :|: -1 <= x7 - 1 && 0 <= arg2 - 1 && arg1P <= arg1 && 0 <= arg1 - 1 && 0 <= arg1P - 1 && 0 <= arg2P - 1 (2) f358_0_createTree_Return(x, x1, x2, x3, x4, x5) -> f1007_0_main_InvokeMethod(x6, x8, x9, x10, x11, x12) :|: x4 = x11 && x3 = x10 && x2 = x9 && x3 + 2 <= x1 && x4 + 2 <= x1 && x2 + 2 <= x1 && 0 <= x8 - 1 && 0 <= x6 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x8 <= x1 && x6 <= x1 && x6 <= x (3) f1007_0_main_InvokeMethod(x13, x14, x15, x17, x18, x19) -> f1332_0_rotateEachNode_FieldAccess(x20, x21, x22, x23, x24, x25) :|: x20 <= x14 && 1 <= x26 - 1 && x21 <= x14 && 0 <= x13 - 1 && 0 <= x14 - 1 && 0 <= x20 - 1 && 0 <= x21 - 1 && x15 + 2 <= x14 && x18 + 2 <= x14 && x17 + 2 <= x14 (4) f1_0_main_Load(x27, x28, x29, x30, x31, x32) -> f972_0_createTree_GE(x33, x34, x35, x36, x38, x39) :|: 2 = x38 && x28 = x36 && 0 = x34 && 1 <= x33 - 1 && 0 <= x27 - 1 && -1 <= x35 - 1 && 1 <= x28 - 1 && -1 <= x39 - 1 (5) f972_0_createTree_GE(x40, x41, x42, x43, x44, x45) -> f972_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: -1 <= x44 - 1 && x41 <= x42 - 1 && 0 <= x42 - 1 && 1 <= x43 - 1 && -1 <= x52 - 1 && x44 <= x43 - 1 && 0 <= x40 - 1 && 3 <= x46 - 1 && x45 + 2 <= x40 && x41 + 1 = x47 && x42 = x48 && x43 = x49 && x44 + 1 = x50 (6) f972_0_createTree_GE(x53, x54, x56, x57, x58, x59) -> f972_0_createTree_GE(x60, x61, x62, x63, x64, x65) :|: -1 <= x58 - 1 && x54 <= x56 - 1 && 0 <= x56 - 1 && 1 <= x57 - 1 && -1 <= x66 - 1 && x58 <= x57 - 1 && 0 <= x53 - 1 && 2 <= x60 - 1 && x59 + 2 <= x53 && x54 + 1 = x61 && x56 = x62 && x57 = x63 && x58 + 1 = x64 (7) f1332_0_rotateEachNode_FieldAccess(x67, x68, x69, x70, x71, x72) -> f1332_0_rotateEachNode_FieldAccess(x73, x74, x75, x76, x77, x78) :|: -1 <= x74 - 1 && -1 <= x73 - 1 && 2 <= x68 - 1 && 2 <= x67 - 1 && x74 + 3 <= x68 && x74 + 3 <= x67 && x73 + 3 <= x68 && x73 + 3 <= x67 (8) f1332_0_rotateEachNode_FieldAccess(x79, x80, x81, x82, x83, x84) -> f1332_0_rotateEachNode_FieldAccess(x85, x86, x87, x88, x89, x90) :|: -1 <= x86 - 1 && -1 <= x85 - 1 && 2 <= x80 - 1 && 2 <= x79 - 1 && x86 + 2 <= x80 && x86 + 2 <= x79 && x85 + 2 <= x80 && x85 + 2 <= x79 (9) f972_0_createTree_GE(x91, x92, x93, x94, x95, x96) -> f1142_0_insert_GT(x97, x98, x99, x100, x101, x102) :|: x96 = x100 && x94 = x99 && x96 + 2 <= x91 && 0 <= x97 - 1 && 0 <= x91 - 1 && x97 <= x91 && x95 <= x94 - 1 && -1 <= x98 - 1 && 1 <= x94 - 1 && 0 <= x93 - 1 && x92 <= x93 - 1 && -1 <= x95 - 1 (10) f1142_0_insert_GT(x103, x104, x105, x106, x107, x108) -> f1142_0_insert_GT(x109, x110, x111, x112, x113, x114) :|: x105 = x111 && x104 = x110 && x112 + 4 <= x103 && x106 + 2 <= x103 && 0 <= x109 - 1 && 2 <= x103 - 1 && x109 + 2 <= x103 && x106 <= x104 - 1 && 1 <= x105 - 1 (11) f1142_0_insert_GT(x115, x116, x117, x118, x119, x120) -> f1142_0_insert_GT(x121, x122, x123, x124, x125, x126) :|: x117 = x123 && x116 = x122 && x124 + 4 <= x115 && x118 + 2 <= x115 && 0 <= x121 - 1 && 2 <= x115 - 1 && x121 + 2 <= x115 && x116 <= x118 && 1 <= x117 - 1 (12) __init(x127, x128, x129, x130, x131, x132) -> f1_0_main_Load(x133, x134, x135, x136, x137, x138) :|: 0 <= 0 Arcs: (1) -> (3) (2) -> (3) (3) -> (7), (8) (4) -> (5), (6), (9) (5) -> (5), (6), (9) (6) -> (5), (6), (9) (7) -> (7), (8) (8) -> (7), (8) (9) -> (10), (11) (10) -> (10), (11) (11) -> (10), (11) (12) -> (1), (4) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f972_0_createTree_GE(x40, x41, x42, x43, x44, x45) -> f972_0_createTree_GE(x46, x47, x48, x49, x50, x51) :|: -1 <= x44 - 1 && x41 <= x42 - 1 && 0 <= x42 - 1 && 1 <= x43 - 1 && -1 <= x52 - 1 && x44 <= x43 - 1 && 0 <= x40 - 1 && 3 <= x46 - 1 && x45 + 2 <= x40 && x41 + 1 = x47 && x42 = x48 && x43 = x49 && x44 + 1 = x50 (2) f972_0_createTree_GE(x53, x54, x56, x57, x58, x59) -> f972_0_createTree_GE(x60, x61, x62, x63, x64, x65) :|: -1 <= x58 - 1 && x54 <= x56 - 1 && 0 <= x56 - 1 && 1 <= x57 - 1 && -1 <= x66 - 1 && x58 <= x57 - 1 && 0 <= x53 - 1 && 2 <= x60 - 1 && x59 + 2 <= x53 && x54 + 1 = x61 && x56 = x62 && x57 = x63 && x58 + 1 = x64 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f972_0_createTree_GE(x53:0, x54:0, x56:0, x57:0, x58:0, x59:0) -> f972_0_createTree_GE(x60:0, x54:0 + 1, x56:0, x57:0, x58:0 + 1, x65:0) :|: x60:0 > 2 && x59:0 + 2 <= x53:0 && x53:0 > 0 && x58:0 <= x57:0 - 1 && x66:0 > -1 && x57:0 > 1 && x56:0 > 0 && x56:0 - 1 >= x54:0 && x58:0 > -1 f972_0_createTree_GE(x40:0, x41:0, x42:0, x43:0, x44:0, x45:0) -> f972_0_createTree_GE(x46:0, x41:0 + 1, x42:0, x43:0, x44:0 + 1, x51:0) :|: x46:0 > 3 && x45:0 + 2 <= x40:0 && x40:0 > 0 && x44:0 <= x43:0 - 1 && x52:0 > -1 && x43:0 > 1 && x42:0 > 0 && x42:0 - 1 >= x41:0 && x44:0 > -1 ---------------------------------------- (8) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f972_0_createTree_GE(INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (9) Obligation: Rules: f972_0_createTree_GE(x53:0, x54:0, x56:0, x57:0, x58:0, x59:0) -> f972_0_createTree_GE(x60:0, c, x56:0, x57:0, c1, x65:0) :|: c1 = x58:0 + 1 && c = x54:0 + 1 && (x60:0 > 2 && x59:0 + 2 <= x53:0 && x53:0 > 0 && x58:0 <= x57:0 - 1 && x66:0 > -1 && x57:0 > 1 && x56:0 > 0 && x56:0 - 1 >= x54:0 && x58:0 > -1) f972_0_createTree_GE(x40:0, x41:0, x42:0, x43:0, x44:0, x45:0) -> f972_0_createTree_GE(x46:0, c2, x42:0, x43:0, c3, x51:0) :|: c3 = x44:0 + 1 && c2 = x41:0 + 1 && (x46:0 > 3 && x45:0 + 2 <= x40:0 && x40:0 > 0 && x44:0 <= x43:0 - 1 && x52:0 > -1 && x43:0 > 1 && x42:0 > 0 && x42:0 - 1 >= x41:0 && x44:0 > -1) ---------------------------------------- (10) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f972_0_createTree_GE ] = -1*f972_0_createTree_GE_5 + f972_0_createTree_GE_4 The following rules are decreasing: f972_0_createTree_GE(x53:0, x54:0, x56:0, x57:0, x58:0, x59:0) -> f972_0_createTree_GE(x60:0, c, x56:0, x57:0, c1, x65:0) :|: c1 = x58:0 + 1 && c = x54:0 + 1 && (x60:0 > 2 && x59:0 + 2 <= x53:0 && x53:0 > 0 && x58:0 <= x57:0 - 1 && x66:0 > -1 && x57:0 > 1 && x56:0 > 0 && x56:0 - 1 >= x54:0 && x58:0 > -1) f972_0_createTree_GE(x40:0, x41:0, x42:0, x43:0, x44:0, x45:0) -> f972_0_createTree_GE(x46:0, c2, x42:0, x43:0, c3, x51:0) :|: c3 = x44:0 + 1 && c2 = x41:0 + 1 && (x46:0 > 3 && x45:0 + 2 <= x40:0 && x40:0 > 0 && x44:0 <= x43:0 - 1 && x52:0 > -1 && x43:0 > 1 && x42:0 > 0 && x42:0 - 1 >= x41:0 && x44:0 > -1) The following rules are bounded: f972_0_createTree_GE(x53:0, x54:0, x56:0, x57:0, x58:0, x59:0) -> f972_0_createTree_GE(x60:0, c, x56:0, x57:0, c1, x65:0) :|: c1 = x58:0 + 1 && c = x54:0 + 1 && (x60:0 > 2 && x59:0 + 2 <= x53:0 && x53:0 > 0 && x58:0 <= x57:0 - 1 && x66:0 > -1 && x57:0 > 1 && x56:0 > 0 && x56:0 - 1 >= x54:0 && x58:0 > -1) f972_0_createTree_GE(x40:0, x41:0, x42:0, x43:0, x44:0, x45:0) -> f972_0_createTree_GE(x46:0, c2, x42:0, x43:0, c3, x51:0) :|: c3 = x44:0 + 1 && c2 = x41:0 + 1 && (x46:0 > 3 && x45:0 + 2 <= x40:0 && x40:0 > 0 && x44:0 <= x43:0 - 1 && x52:0 > -1 && x43:0 > 1 && x42:0 > 0 && x42:0 - 1 >= x41:0 && x44:0 > -1) ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f1142_0_insert_GT(x103, x104, x105, x106, x107, x108) -> f1142_0_insert_GT(x109, x110, x111, x112, x113, x114) :|: x105 = x111 && x104 = x110 && x112 + 4 <= x103 && x106 + 2 <= x103 && 0 <= x109 - 1 && 2 <= x103 - 1 && x109 + 2 <= x103 && x106 <= x104 - 1 && 1 <= x105 - 1 (2) f1142_0_insert_GT(x115, x116, x117, x118, x119, x120) -> f1142_0_insert_GT(x121, x122, x123, x124, x125, x126) :|: x117 = x123 && x116 = x122 && x124 + 4 <= x115 && x118 + 2 <= x115 && 0 <= x121 - 1 && 2 <= x115 - 1 && x121 + 2 <= x115 && x116 <= x118 && 1 <= x117 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f1142_0_insert_GT(x103:0, x104:0, x105:0, x106:0, x107:0, x108:0) -> f1142_0_insert_GT(x109:0, x104:0, x105:0, x112:0, x113:0, x114:0) :|: x106:0 <= x104:0 - 1 && x105:0 > 1 && x109:0 + 2 <= x103:0 && x103:0 > 2 && x109:0 > 0 && x112:0 + 4 <= x103:0 && x106:0 + 2 <= x103:0 f1142_0_insert_GT(x115:0, x116:0, x117:0, x118:0, x119:0, x120:0) -> f1142_0_insert_GT(x121:0, x116:0, x117:0, x124:0, x125:0, x126:0) :|: x118:0 >= x116:0 && x117:0 > 1 && x121:0 + 2 <= x115:0 && x115:0 > 2 && x121:0 > 0 && x124:0 + 4 <= x115:0 && x118:0 + 2 <= x115:0 ---------------------------------------- (15) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f1142_0_insert_GT(x1, x2, x3, x4, x5, x6) -> f1142_0_insert_GT(x1, x2, x3, x4) ---------------------------------------- (16) Obligation: Rules: f1142_0_insert_GT(x103:0, x104:0, x105:0, x106:0) -> f1142_0_insert_GT(x109:0, x104:0, x105:0, x112:0) :|: x106:0 <= x104:0 - 1 && x105:0 > 1 && x109:0 + 2 <= x103:0 && x103:0 > 2 && x109:0 > 0 && x112:0 + 4 <= x103:0 && x106:0 + 2 <= x103:0 f1142_0_insert_GT(x115:0, x116:0, x117:0, x118:0) -> f1142_0_insert_GT(x121:0, x116:0, x117:0, x124:0) :|: x118:0 >= x116:0 && x117:0 > 1 && x121:0 + 2 <= x115:0 && x115:0 > 2 && x121:0 > 0 && x124:0 + 4 <= x115:0 && x118:0 + 2 <= x115:0 ---------------------------------------- (17) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f1142_0_insert_GT(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (18) Obligation: Rules: f1142_0_insert_GT(x103:0, x104:0, x105:0, x106:0) -> f1142_0_insert_GT(x109:0, x104:0, x105:0, x112:0) :|: x106:0 <= x104:0 - 1 && x105:0 > 1 && x109:0 + 2 <= x103:0 && x103:0 > 2 && x109:0 > 0 && x112:0 + 4 <= x103:0 && x106:0 + 2 <= x103:0 f1142_0_insert_GT(x115:0, x116:0, x117:0, x118:0) -> f1142_0_insert_GT(x121:0, x116:0, x117:0, x124:0) :|: x118:0 >= x116:0 && x117:0 > 1 && x121:0 + 2 <= x115:0 && x115:0 > 2 && x121:0 > 0 && x124:0 + 4 <= x115:0 && x118:0 + 2 <= x115:0 ---------------------------------------- (19) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (20) Obligation: Rules: f1142_0_insert_GT(x115:0:0, x116:0:0, x117:0:0, x118:0:0) -> f1142_0_insert_GT(x121:0:0, x116:0:0, x117:0:0, x124:0:0) :|: x124:0:0 + 4 <= x115:0:0 && x118:0:0 + 2 <= x115:0:0 && x121:0:0 > 0 && x115:0:0 > 2 && x121:0:0 + 2 <= x115:0:0 && x117:0:0 > 1 && x118:0:0 >= x116:0:0 f1142_0_insert_GT(x103:0:0, x104:0:0, x105:0:0, x106:0:0) -> f1142_0_insert_GT(x109:0:0, x104:0:0, x105:0:0, x112:0:0) :|: x112:0:0 + 4 <= x103:0:0 && x106:0:0 + 2 <= x103:0:0 && x109:0:0 > 0 && x103:0:0 > 2 && x109:0:0 + 2 <= x103:0:0 && x105:0:0 > 1 && x106:0:0 <= x104:0:0 - 1 ---------------------------------------- (21) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1142_0_insert_GT ] = 1/2*f1142_0_insert_GT_1 The following rules are decreasing: f1142_0_insert_GT(x115:0:0, x116:0:0, x117:0:0, x118:0:0) -> f1142_0_insert_GT(x121:0:0, x116:0:0, x117:0:0, x124:0:0) :|: x124:0:0 + 4 <= x115:0:0 && x118:0:0 + 2 <= x115:0:0 && x121:0:0 > 0 && x115:0:0 > 2 && x121:0:0 + 2 <= x115:0:0 && x117:0:0 > 1 && x118:0:0 >= x116:0:0 f1142_0_insert_GT(x103:0:0, x104:0:0, x105:0:0, x106:0:0) -> f1142_0_insert_GT(x109:0:0, x104:0:0, x105:0:0, x112:0:0) :|: x112:0:0 + 4 <= x103:0:0 && x106:0:0 + 2 <= x103:0:0 && x109:0:0 > 0 && x103:0:0 > 2 && x109:0:0 + 2 <= x103:0:0 && x105:0:0 > 1 && x106:0:0 <= x104:0:0 - 1 The following rules are bounded: f1142_0_insert_GT(x115:0:0, x116:0:0, x117:0:0, x118:0:0) -> f1142_0_insert_GT(x121:0:0, x116:0:0, x117:0:0, x124:0:0) :|: x124:0:0 + 4 <= x115:0:0 && x118:0:0 + 2 <= x115:0:0 && x121:0:0 > 0 && x115:0:0 > 2 && x121:0:0 + 2 <= x115:0:0 && x117:0:0 > 1 && x118:0:0 >= x116:0:0 f1142_0_insert_GT(x103:0:0, x104:0:0, x105:0:0, x106:0:0) -> f1142_0_insert_GT(x109:0:0, x104:0:0, x105:0:0, x112:0:0) :|: x112:0:0 + 4 <= x103:0:0 && x106:0:0 + 2 <= x103:0:0 && x109:0:0 > 0 && x103:0:0 > 2 && x109:0:0 + 2 <= x103:0:0 && x105:0:0 > 1 && x106:0:0 <= x104:0:0 - 1 ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Termination digraph: Nodes: (1) f1332_0_rotateEachNode_FieldAccess(x67, x68, x69, x70, x71, x72) -> f1332_0_rotateEachNode_FieldAccess(x73, x74, x75, x76, x77, x78) :|: -1 <= x74 - 1 && -1 <= x73 - 1 && 2 <= x68 - 1 && 2 <= x67 - 1 && x74 + 3 <= x68 && x74 + 3 <= x67 && x73 + 3 <= x68 && x73 + 3 <= x67 (2) f1332_0_rotateEachNode_FieldAccess(x79, x80, x81, x82, x83, x84) -> f1332_0_rotateEachNode_FieldAccess(x85, x86, x87, x88, x89, x90) :|: -1 <= x86 - 1 && -1 <= x85 - 1 && 2 <= x80 - 1 && 2 <= x79 - 1 && x86 + 2 <= x80 && x86 + 2 <= x79 && x85 + 2 <= x80 && x85 + 2 <= x79 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f1332_0_rotateEachNode_FieldAccess(x79:0, x80:0, x81:0, x82:0, x83:0, x84:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0, x86:0, x87:0, x88:0, x89:0, x90:0) :|: x85:0 + 2 <= x80:0 && x85:0 + 2 <= x79:0 && x86:0 + 2 <= x79:0 && x86:0 + 2 <= x80:0 && x79:0 > 2 && x80:0 > 2 && x85:0 > -1 && x86:0 > -1 f1332_0_rotateEachNode_FieldAccess(x67:0, x68:0, x69:0, x70:0, x71:0, x72:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0, x74:0, x75:0, x76:0, x77:0, x78:0) :|: x73:0 + 3 <= x68:0 && x73:0 + 3 <= x67:0 && x74:0 + 3 <= x67:0 && x74:0 + 3 <= x68:0 && x67:0 > 2 && x68:0 > 2 && x73:0 > -1 && x74:0 > -1 ---------------------------------------- (26) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f1332_0_rotateEachNode_FieldAccess(x1, x2, x3, x4, x5, x6) -> f1332_0_rotateEachNode_FieldAccess(x1, x2) ---------------------------------------- (27) Obligation: Rules: f1332_0_rotateEachNode_FieldAccess(x79:0, x80:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0, x86:0) :|: x85:0 + 2 <= x80:0 && x85:0 + 2 <= x79:0 && x86:0 + 2 <= x79:0 && x86:0 + 2 <= x80:0 && x79:0 > 2 && x80:0 > 2 && x85:0 > -1 && x86:0 > -1 f1332_0_rotateEachNode_FieldAccess(x67:0, x68:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0, x74:0) :|: x73:0 + 3 <= x68:0 && x73:0 + 3 <= x67:0 && x74:0 + 3 <= x67:0 && x74:0 + 3 <= x68:0 && x67:0 > 2 && x68:0 > 2 && x73:0 > -1 && x74:0 > -1 ---------------------------------------- (28) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f1332_0_rotateEachNode_FieldAccess(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (29) Obligation: Rules: f1332_0_rotateEachNode_FieldAccess(x79:0, x80:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0, x86:0) :|: x85:0 + 2 <= x80:0 && x85:0 + 2 <= x79:0 && x86:0 + 2 <= x79:0 && x86:0 + 2 <= x80:0 && x79:0 > 2 && x80:0 > 2 && x85:0 > -1 && x86:0 > -1 f1332_0_rotateEachNode_FieldAccess(x67:0, x68:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0, x74:0) :|: x73:0 + 3 <= x68:0 && x73:0 + 3 <= x67:0 && x74:0 + 3 <= x67:0 && x74:0 + 3 <= x68:0 && x67:0 > 2 && x68:0 > 2 && x73:0 > -1 && x74:0 > -1 ---------------------------------------- (30) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (31) Obligation: Rules: f1332_0_rotateEachNode_FieldAccess(x79:0:0, x80:0:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0:0, x86:0:0) :|: x85:0:0 > -1 && x86:0:0 > -1 && x80:0:0 > 2 && x79:0:0 > 2 && x86:0:0 + 2 <= x80:0:0 && x86:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x80:0:0 f1332_0_rotateEachNode_FieldAccess(x67:0:0, x68:0:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0:0, x74:0:0) :|: x73:0:0 > -1 && x74:0:0 > -1 && x68:0:0 > 2 && x67:0:0 > 2 && x74:0:0 + 3 <= x68:0:0 && x74:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x68:0:0 ---------------------------------------- (32) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f1332_0_rotateEachNode_FieldAccess(x, x1)] = -6 + x + x1 The following rules are decreasing: f1332_0_rotateEachNode_FieldAccess(x79:0:0, x80:0:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0:0, x86:0:0) :|: x85:0:0 > -1 && x86:0:0 > -1 && x80:0:0 > 2 && x79:0:0 > 2 && x86:0:0 + 2 <= x80:0:0 && x86:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x80:0:0 f1332_0_rotateEachNode_FieldAccess(x67:0:0, x68:0:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0:0, x74:0:0) :|: x73:0:0 > -1 && x74:0:0 > -1 && x68:0:0 > 2 && x67:0:0 > 2 && x74:0:0 + 3 <= x68:0:0 && x74:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x68:0:0 The following rules are bounded: f1332_0_rotateEachNode_FieldAccess(x79:0:0, x80:0:0) -> f1332_0_rotateEachNode_FieldAccess(x85:0:0, x86:0:0) :|: x85:0:0 > -1 && x86:0:0 > -1 && x80:0:0 > 2 && x79:0:0 > 2 && x86:0:0 + 2 <= x80:0:0 && x86:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x79:0:0 && x85:0:0 + 2 <= x80:0:0 f1332_0_rotateEachNode_FieldAccess(x67:0:0, x68:0:0) -> f1332_0_rotateEachNode_FieldAccess(x73:0:0, x74:0:0) :|: x73:0:0 > -1 && x74:0:0 > -1 && x68:0:0 > 2 && x67:0:0 > 2 && x74:0:0 + 3 <= x68:0:0 && x74:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x67:0:0 && x73:0:0 + 3 <= x68:0:0 ---------------------------------------- (33) YES