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