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, 817 ms] (4) IRSwT (5) IntTRSCompressionProof [EQUIVALENT, 51 ms] (6) IRSwT (7) TempFilterProof [SOUND, 90 ms] (8) IntTRS (9) PolynomialOrderProcessor [EQUIVALENT, 39 ms] (10) YES ---------------------------------------- (0) Obligation: Rules: f309_0_createList_Load(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) -> f510_0_createList_Load(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P, arg7P, arg8P, arg9P, arg10P, arg11P, arg12P, arg13P, arg14P, arg15P, arg16P, arg17P, arg18P, arg19P, arg20P) :|: arg7 = arg19P && arg6 = arg18P && arg5 = arg17P && arg4 = arg15P && arg4 = arg14P && arg3 = arg13P && 0 = arg9P && 0 = arg8P && 0 = arg7P && arg3 = arg5P && 0 = arg4P && 0 = arg3P && arg1 = arg1P && arg6 + 5 <= arg2 && arg7 + 3 <= arg2 && 9 <= arg2P - 1 && 9 <= arg2 - 1 && arg2P <= arg2 f1_0_main_Load(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f309_0_createList_Load(x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39) :|: 0 = x26 && 0 = x25 && 1 = x24 && 7 <= x21 - 1 && 0 <= x - 1 && x21 - 7 <= x && 0 <= x1 - 1 && -1 <= x20 - 1 f510_0_createList_Load(x40, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60) -> f673_0_createList_LE(x61, x62, x63, x64, x65, x66, x67, x68, x69, x70, x71, x72, x73, x74, x75, x77, x78, x79, x80, x81) :|: x59 = x81 && x58 = x80 && x57 = x77 && x55 = x75 && x54 = x74 && x53 = x73 && x52 = x72 && x49 = x71 && x48 = x70 && x47 = x69 && x46 = x68 && x43 = x67 && x50 = x66 && x51 = x65 && x45 = x64 && x44 = x63 && x40 = x62 && x58 + 5 <= x42 && x59 + 3 <= x42 && 11 <= x61 - 1 && 11 <= x42 - 1 f673_0_createList_LE(x82, x83, x84, x85, x86, x87, x88, x89, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x100, x101) -> f673_0_createList_LE(x102, x103, x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x120, x121) :|: 0 <= x83 - 1 && -1 <= x122 - 1 && 0 <= x97 - 1 && x97 <= x122 - 1 && 0 <= x85 - 1 && 0 <= x84 - 1 && 0 <= x88 - 1 && 0 <= x87 - 1 && 0 <= x86 - 1 && 0 <= x96 - 1 && -1 <= x123 - 1 && 0 <= x90 - 1 && 0 <= x93 - 1 && 0 <= x91 - 1 && 0 <= x95 - 1 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x89 - 1 && -1 <= x101 - 1 && -1 <= x100 - 1 && 11 <= x82 - 1 && 11 <= x102 - 1 && x98 + 11 <= x82 && x99 + 9 <= x82 && x101 + 3 <= x82 && x100 + 5 <= x82 && x83 - 1 = x103 && x84 = x104 && x85 = x105 && x97 + 1 = x117 && x100 + 1 = x120 && x101 + 1 = x121 __init(x124, x125, x126, x127, x128, x129, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147, x148, x149, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x160, x161, x162, x163) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: f309_0_createList_Load(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) -> f510_0_createList_Load(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P, arg7P, arg8P, arg9P, arg10P, arg11P, arg12P, arg13P, arg14P, arg15P, arg16P, arg17P, arg18P, arg19P, arg20P) :|: arg7 = arg19P && arg6 = arg18P && arg5 = arg17P && arg4 = arg15P && arg4 = arg14P && arg3 = arg13P && 0 = arg9P && 0 = arg8P && 0 = arg7P && arg3 = arg5P && 0 = arg4P && 0 = arg3P && arg1 = arg1P && arg6 + 5 <= arg2 && arg7 + 3 <= arg2 && 9 <= arg2P - 1 && 9 <= arg2 - 1 && arg2P <= arg2 f1_0_main_Load(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f309_0_createList_Load(x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39) :|: 0 = x26 && 0 = x25 && 1 = x24 && 7 <= x21 - 1 && 0 <= x - 1 && x21 - 7 <= x && 0 <= x1 - 1 && -1 <= x20 - 1 f510_0_createList_Load(x40, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60) -> f673_0_createList_LE(x61, x62, x63, x64, x65, x66, x67, x68, x69, x70, x71, x72, x73, x74, x75, x77, x78, x79, x80, x81) :|: x59 = x81 && x58 = x80 && x57 = x77 && x55 = x75 && x54 = x74 && x53 = x73 && x52 = x72 && x49 = x71 && x48 = x70 && x47 = x69 && x46 = x68 && x43 = x67 && x50 = x66 && x51 = x65 && x45 = x64 && x44 = x63 && x40 = x62 && x58 + 5 <= x42 && x59 + 3 <= x42 && 11 <= x61 - 1 && 11 <= x42 - 1 f673_0_createList_LE(x82, x83, x84, x85, x86, x87, x88, x89, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x100, x101) -> f673_0_createList_LE(x102, x103, x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x120, x121) :|: 0 <= x83 - 1 && -1 <= x122 - 1 && 0 <= x97 - 1 && x97 <= x122 - 1 && 0 <= x85 - 1 && 0 <= x84 - 1 && 0 <= x88 - 1 && 0 <= x87 - 1 && 0 <= x86 - 1 && 0 <= x96 - 1 && -1 <= x123 - 1 && 0 <= x90 - 1 && 0 <= x93 - 1 && 0 <= x91 - 1 && 0 <= x95 - 1 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x89 - 1 && -1 <= x101 - 1 && -1 <= x100 - 1 && 11 <= x82 - 1 && 11 <= x102 - 1 && x98 + 11 <= x82 && x99 + 9 <= x82 && x101 + 3 <= x82 && x100 + 5 <= x82 && x83 - 1 = x103 && x84 = x104 && x85 = x105 && x97 + 1 = x117 && x100 + 1 = x120 && x101 + 1 = x121 __init(x124, x125, x126, x127, x128, x129, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147, x148, x149, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x160, x161, x162, x163) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f309_0_createList_Load(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) -> f510_0_createList_Load(arg1P, arg2P, arg3P, arg4P, arg5P, arg6P, arg7P, arg8P, arg9P, arg10P, arg11P, arg12P, arg13P, arg14P, arg15P, arg16P, arg17P, arg18P, arg19P, arg20P) :|: arg7 = arg19P && arg6 = arg18P && arg5 = arg17P && arg4 = arg15P && arg4 = arg14P && arg3 = arg13P && 0 = arg9P && 0 = arg8P && 0 = arg7P && arg3 = arg5P && 0 = arg4P && 0 = arg3P && arg1 = arg1P && arg6 + 5 <= arg2 && arg7 + 3 <= arg2 && 9 <= arg2P - 1 && 9 <= arg2 - 1 && arg2P <= arg2 (2) f1_0_main_Load(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f309_0_createList_Load(x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39) :|: 0 = x26 && 0 = x25 && 1 = x24 && 7 <= x21 - 1 && 0 <= x - 1 && x21 - 7 <= x && 0 <= x1 - 1 && -1 <= x20 - 1 (3) f510_0_createList_Load(x40, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60) -> f673_0_createList_LE(x61, x62, x63, x64, x65, x66, x67, x68, x69, x70, x71, x72, x73, x74, x75, x77, x78, x79, x80, x81) :|: x59 = x81 && x58 = x80 && x57 = x77 && x55 = x75 && x54 = x74 && x53 = x73 && x52 = x72 && x49 = x71 && x48 = x70 && x47 = x69 && x46 = x68 && x43 = x67 && x50 = x66 && x51 = x65 && x45 = x64 && x44 = x63 && x40 = x62 && x58 + 5 <= x42 && x59 + 3 <= x42 && 11 <= x61 - 1 && 11 <= x42 - 1 (4) f673_0_createList_LE(x82, x83, x84, x85, x86, x87, x88, x89, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x100, x101) -> f673_0_createList_LE(x102, x103, x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x120, x121) :|: 0 <= x83 - 1 && -1 <= x122 - 1 && 0 <= x97 - 1 && x97 <= x122 - 1 && 0 <= x85 - 1 && 0 <= x84 - 1 && 0 <= x88 - 1 && 0 <= x87 - 1 && 0 <= x86 - 1 && 0 <= x96 - 1 && -1 <= x123 - 1 && 0 <= x90 - 1 && 0 <= x93 - 1 && 0 <= x91 - 1 && 0 <= x95 - 1 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x89 - 1 && -1 <= x101 - 1 && -1 <= x100 - 1 && 11 <= x82 - 1 && 11 <= x102 - 1 && x98 + 11 <= x82 && x99 + 9 <= x82 && x101 + 3 <= x82 && x100 + 5 <= x82 && x83 - 1 = x103 && x84 = x104 && x85 = x105 && x97 + 1 = x117 && x100 + 1 = x120 && x101 + 1 = x121 (5) __init(x124, x125, x126, x127, x128, x129, x130, x131, x132, x133, x134, x135, x136, x137, x138, x139, x140, x141, x142, x143) -> f1_0_main_Load(x144, x145, x146, x147, x148, x149, x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x160, x161, x162, x163) :|: 0 <= 0 Arcs: (1) -> (3) (2) -> (1) (3) -> (4) (4) -> (4) (5) -> (2) This digraph is fully evaluated! ---------------------------------------- (4) Obligation: Termination digraph: Nodes: (1) f673_0_createList_LE(x82, x83, x84, x85, x86, x87, x88, x89, x90, x91, x92, x93, x94, x95, x96, x97, x98, x99, x100, x101) -> f673_0_createList_LE(x102, x103, x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114, x115, x116, x117, x118, x119, x120, x121) :|: 0 <= x83 - 1 && -1 <= x122 - 1 && 0 <= x97 - 1 && x97 <= x122 - 1 && 0 <= x85 - 1 && 0 <= x84 - 1 && 0 <= x88 - 1 && 0 <= x87 - 1 && 0 <= x86 - 1 && 0 <= x96 - 1 && -1 <= x123 - 1 && 0 <= x90 - 1 && 0 <= x93 - 1 && 0 <= x91 - 1 && 0 <= x95 - 1 && 0 <= x94 - 1 && 0 <= x92 - 1 && 0 <= x89 - 1 && -1 <= x101 - 1 && -1 <= x100 - 1 && 11 <= x82 - 1 && 11 <= x102 - 1 && x98 + 11 <= x82 && x99 + 9 <= x82 && x101 + 3 <= x82 && x100 + 5 <= x82 && x83 - 1 = x103 && x84 = x104 && x85 = x105 && x97 + 1 = x117 && x100 + 1 = x120 && x101 + 1 = x121 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: f673_0_createList_LE(x82:0, x83:0, x104:0, x105:0, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x95:0, x96:0, x97:0, x98:0, x99:0, x100:0, x101:0) -> f673_0_createList_LE(x102:0, x83:0 - 1, x104:0, x105:0, x106:0, x107:0, x108:0, x109:0, x110:0, x111:0, x112:0, x113:0, x114:0, x115:0, x116:0, x97:0 + 1, x118:0, x119:0, x100:0 + 1, x101:0 + 1) :|: x82:0 >= x101:0 + 3 && x82:0 >= x100:0 + 5 && x99:0 + 9 <= x82:0 && x98:0 + 11 <= x82:0 && x102:0 > 11 && x82:0 > 11 && x100:0 > -1 && x101:0 > -1 && x89:0 > 0 && x92:0 > 0 && x94:0 > 0 && x95:0 > 0 && x91:0 > 0 && x93:0 > 0 && x90:0 > 0 && x123:0 > -1 && x96:0 > 0 && x86:0 > 0 && x87:0 > 0 && x88:0 > 0 && x104:0 > 0 && x105:0 > 0 && x97:0 <= x122:0 - 1 && x97:0 > 0 && x122:0 > -1 && x83:0 > 0 ---------------------------------------- (7) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f673_0_createList_LE(INTEGER, INTEGER, INTEGER, INTEGER, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, VARIABLE, VARIABLE, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (8) Obligation: Rules: f673_0_createList_LE(x82:0, x83:0, x104:0, x105:0, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x95:0, x96:0, x97:0, x98:0, x99:0, x100:0, x101:0) -> f673_0_createList_LE(x102:0, c, x104:0, x105:0, x106:0, x107:0, x108:0, x109:0, x110:0, x111:0, x112:0, x113:0, x114:0, x115:0, x116:0, c1, x118:0, x119:0, c2, c3) :|: c3 = x101:0 + 1 && (c2 = x100:0 + 1 && (c1 = x97:0 + 1 && c = x83:0 - 1)) && (x82:0 >= x101:0 + 3 && x82:0 >= x100:0 + 5 && x99:0 + 9 <= x82:0 && x98:0 + 11 <= x82:0 && x102:0 > 11 && x82:0 > 11 && x100:0 > -1 && x101:0 > -1 && x89:0 > 0 && x92:0 > 0 && x94:0 > 0 && x95:0 > 0 && x91:0 > 0 && x93:0 > 0 && x90:0 > 0 && x123:0 > -1 && x96:0 > 0 && x86:0 > 0 && x87:0 > 0 && x88:0 > 0 && x104:0 > 0 && x105:0 > 0 && x97:0 <= x122:0 - 1 && x97:0 > 0 && x122:0 > -1 && x83:0 > 0) ---------------------------------------- (9) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f673_0_createList_LE(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)] = x1 The following rules are decreasing: f673_0_createList_LE(x82:0, x83:0, x104:0, x105:0, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x95:0, x96:0, x97:0, x98:0, x99:0, x100:0, x101:0) -> f673_0_createList_LE(x102:0, c, x104:0, x105:0, x106:0, x107:0, x108:0, x109:0, x110:0, x111:0, x112:0, x113:0, x114:0, x115:0, x116:0, c1, x118:0, x119:0, c2, c3) :|: c3 = x101:0 + 1 && (c2 = x100:0 + 1 && (c1 = x97:0 + 1 && c = x83:0 - 1)) && (x82:0 >= x101:0 + 3 && x82:0 >= x100:0 + 5 && x99:0 + 9 <= x82:0 && x98:0 + 11 <= x82:0 && x102:0 > 11 && x82:0 > 11 && x100:0 > -1 && x101:0 > -1 && x89:0 > 0 && x92:0 > 0 && x94:0 > 0 && x95:0 > 0 && x91:0 > 0 && x93:0 > 0 && x90:0 > 0 && x123:0 > -1 && x96:0 > 0 && x86:0 > 0 && x87:0 > 0 && x88:0 > 0 && x104:0 > 0 && x105:0 > 0 && x97:0 <= x122:0 - 1 && x97:0 > 0 && x122:0 > -1 && x83:0 > 0) The following rules are bounded: f673_0_createList_LE(x82:0, x83:0, x104:0, x105:0, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x95:0, x96:0, x97:0, x98:0, x99:0, x100:0, x101:0) -> f673_0_createList_LE(x102:0, c, x104:0, x105:0, x106:0, x107:0, x108:0, x109:0, x110:0, x111:0, x112:0, x113:0, x114:0, x115:0, x116:0, c1, x118:0, x119:0, c2, c3) :|: c3 = x101:0 + 1 && (c2 = x100:0 + 1 && (c1 = x97:0 + 1 && c = x83:0 - 1)) && (x82:0 >= x101:0 + 3 && x82:0 >= x100:0 + 5 && x99:0 + 9 <= x82:0 && x98:0 + 11 <= x82:0 && x102:0 > 11 && x82:0 > 11 && x100:0 > -1 && x101:0 > -1 && x89:0 > 0 && x92:0 > 0 && x94:0 > 0 && x95:0 > 0 && x91:0 > 0 && x93:0 > 0 && x90:0 > 0 && x123:0 > -1 && x96:0 > 0 && x86:0 > 0 && x87:0 > 0 && x88:0 > 0 && x104:0 > 0 && x105:0 > 0 && x97:0 <= x122:0 - 1 && x97:0 > 0 && x122:0 > -1 && x83:0 > 0) ---------------------------------------- (10) YES