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, 889 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 0 ms] (7) IRSwT (8) TempFilterProof [SOUND, 34 ms] (9) IntTRS (10) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (11) YES (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (16) IRSwT (17) TempFilterProof [SOUND, 42 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 24 ms] (20) YES (21) IRSwT (22) IntTRSCompressionProof [EQUIVALENT, 0 ms] (23) IRSwT (24) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (25) IRSwT (26) FilterProof [EQUIVALENT, 0 ms] (27) IntTRS (28) IntTRSCompressionProof [EQUIVALENT, 0 ms] (29) IntTRS (30) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (31) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4, arg5) -> f165_0_appendNewList_LE(arg1P, arg2P, arg3P, arg4P, arg5P) :|: 0 = arg5P && 3 <= arg3P - 1 && 5 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg3P - 3 <= arg1 && arg2P - 5 <= arg1 && arg1P <= arg1 && -1 <= arg4P - 1 && 0 <= arg2 - 1 f165_0_appendNewList_LE(x, x1, x2, x3, x4) -> f200_0_random_ArrayAccess(x5, x6, x7, x8, x9) :|: x3 <= 1 && 0 <= x4 - 1 && x4 <= x10 - 1 && x4 <= x11 - 1 && 0 <= x - 1 && 4 <= x1 - 1 && 2 <= x2 - 1 && 4 <= x5 - 1 f165_0_appendNewList_LE(x12, x15, x16, x17, x18) -> f200_0_random_ArrayAccess(x19, x20, x21, x22, x23) :|: 6 <= x19 - 1 && 3 <= x16 - 1 && 5 <= x15 - 1 && 0 <= x12 - 1 && x19 - 3 <= x16 && x19 - 1 <= x15 && x17 <= 1 && x19 - 6 <= x12 f165_0_appendNewList_LE(x24, x25, x26, x27, x28) -> f165_0_appendNewList_LE(x29, x30, x31, x32, x33) :|: x27 - 1 = x32 && 2 <= x31 - 1 && 4 <= x30 - 1 && 0 <= x29 - 1 && 2 <= x26 - 1 && 4 <= x25 - 1 && 0 <= x24 - 1 && x29 + 2 <= x26 && x29 + 4 <= x25 && x29 <= x24 && 1 <= x27 - 1 && 0 <= x28 - 1 && x28 <= x33 - 1 f165_0_appendNewList_LE(x34, x35, x36, x37, x38) -> f165_0_appendNewList_LE(x39, x40, x41, x42, x43) :|: 1 = x43 && x37 - 1 = x42 && 5 <= x41 - 1 && 7 <= x40 - 1 && 0 <= x39 - 1 && 3 <= x36 - 1 && 5 <= x35 - 1 && 0 <= x34 - 1 && x41 - 2 <= x36 && x41 <= x35 && x41 - 5 <= x34 && x40 - 4 <= x36 && x40 - 2 <= x35 && x40 - 7 <= x34 && x39 + 3 <= x36 && x39 + 5 <= x35 && 1 <= x37 - 1 && x39 <= x34 f200_0_random_ArrayAccess(x44, x45, x46, x47, x48) -> f314_0_appendNewList_LE(x49, x50, x51, x52, x53) :|: 0 = x51 && 3 <= x49 - 1 && 4 <= x44 - 1 && x49 + 1 <= x44 && -1 <= x50 - 1 && 1 <= x45 - 1 f314_0_appendNewList_LE(x54, x55, x56, x57, x58) -> f314_0_appendNewList_LE(x59, x60, x61, x62, x63) :|: x55 - 1 = x60 && 2 <= x59 - 1 && 2 <= x54 - 1 && 1 <= x55 - 1 && 0 <= x56 - 1 && x56 <= x61 - 1 f314_0_appendNewList_LE(x64, x65, x66, x67, x68) -> f314_0_appendNewList_LE(x69, x70, x71, x72, x73) :|: 1 = x71 && x65 - 1 = x70 && 5 <= x69 - 1 && 3 <= x64 - 1 && 1 <= x65 - 1 && x69 - 2 <= x64 f314_0_appendNewList_LE(x74, x75, x76, x77, x78) -> f387_0_length_NULL(x79, x80, x81, x82, x83) :|: 0 <= x79 - 1 && 2 <= x74 - 1 && x75 <= 1 && x79 + 2 <= x74 f387_0_length_NULL(x84, x85, x86, x87, x88) -> f387_0_length_NULL(x89, x90, x91, x92, x93) :|: -1 <= x89 - 1 && 0 <= x84 - 1 && x89 + 1 <= x84 __init(x94, x95, x96, x97, x98) -> f1_0_main_Load(x99, x100, x101, x102, x103) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5) ---------------------------------------- (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) -> f165_0_appendNewList_LE(arg1P, arg2P, arg3P, arg4P, arg5P) :|: 0 = arg5P && 3 <= arg3P - 1 && 5 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg3P - 3 <= arg1 && arg2P - 5 <= arg1 && arg1P <= arg1 && -1 <= arg4P - 1 && 0 <= arg2 - 1 f165_0_appendNewList_LE(x, x1, x2, x3, x4) -> f200_0_random_ArrayAccess(x5, x6, x7, x8, x9) :|: x3 <= 1 && 0 <= x4 - 1 && x4 <= x10 - 1 && x4 <= x11 - 1 && 0 <= x - 1 && 4 <= x1 - 1 && 2 <= x2 - 1 && 4 <= x5 - 1 f165_0_appendNewList_LE(x12, x15, x16, x17, x18) -> f200_0_random_ArrayAccess(x19, x20, x21, x22, x23) :|: 6 <= x19 - 1 && 3 <= x16 - 1 && 5 <= x15 - 1 && 0 <= x12 - 1 && x19 - 3 <= x16 && x19 - 1 <= x15 && x17 <= 1 && x19 - 6 <= x12 f165_0_appendNewList_LE(x24, x25, x26, x27, x28) -> f165_0_appendNewList_LE(x29, x30, x31, x32, x33) :|: x27 - 1 = x32 && 2 <= x31 - 1 && 4 <= x30 - 1 && 0 <= x29 - 1 && 2 <= x26 - 1 && 4 <= x25 - 1 && 0 <= x24 - 1 && x29 + 2 <= x26 && x29 + 4 <= x25 && x29 <= x24 && 1 <= x27 - 1 && 0 <= x28 - 1 && x28 <= x33 - 1 f165_0_appendNewList_LE(x34, x35, x36, x37, x38) -> f165_0_appendNewList_LE(x39, x40, x41, x42, x43) :|: 1 = x43 && x37 - 1 = x42 && 5 <= x41 - 1 && 7 <= x40 - 1 && 0 <= x39 - 1 && 3 <= x36 - 1 && 5 <= x35 - 1 && 0 <= x34 - 1 && x41 - 2 <= x36 && x41 <= x35 && x41 - 5 <= x34 && x40 - 4 <= x36 && x40 - 2 <= x35 && x40 - 7 <= x34 && x39 + 3 <= x36 && x39 + 5 <= x35 && 1 <= x37 - 1 && x39 <= x34 f200_0_random_ArrayAccess(x44, x45, x46, x47, x48) -> f314_0_appendNewList_LE(x49, x50, x51, x52, x53) :|: 0 = x51 && 3 <= x49 - 1 && 4 <= x44 - 1 && x49 + 1 <= x44 && -1 <= x50 - 1 && 1 <= x45 - 1 f314_0_appendNewList_LE(x54, x55, x56, x57, x58) -> f314_0_appendNewList_LE(x59, x60, x61, x62, x63) :|: x55 - 1 = x60 && 2 <= x59 - 1 && 2 <= x54 - 1 && 1 <= x55 - 1 && 0 <= x56 - 1 && x56 <= x61 - 1 f314_0_appendNewList_LE(x64, x65, x66, x67, x68) -> f314_0_appendNewList_LE(x69, x70, x71, x72, x73) :|: 1 = x71 && x65 - 1 = x70 && 5 <= x69 - 1 && 3 <= x64 - 1 && 1 <= x65 - 1 && x69 - 2 <= x64 f314_0_appendNewList_LE(x74, x75, x76, x77, x78) -> f387_0_length_NULL(x79, x80, x81, x82, x83) :|: 0 <= x79 - 1 && 2 <= x74 - 1 && x75 <= 1 && x79 + 2 <= x74 f387_0_length_NULL(x84, x85, x86, x87, x88) -> f387_0_length_NULL(x89, x90, x91, x92, x93) :|: -1 <= x89 - 1 && 0 <= x84 - 1 && x89 + 1 <= x84 __init(x94, x95, x96, x97, x98) -> f1_0_main_Load(x99, x100, x101, x102, x103) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4, arg5) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1_0_main_Load(arg1, arg2, arg3, arg4, arg5) -> f165_0_appendNewList_LE(arg1P, arg2P, arg3P, arg4P, arg5P) :|: 0 = arg5P && 3 <= arg3P - 1 && 5 <= arg2P - 1 && 0 <= arg1P - 1 && 0 <= arg1 - 1 && arg3P - 3 <= arg1 && arg2P - 5 <= arg1 && arg1P <= arg1 && -1 <= arg4P - 1 && 0 <= arg2 - 1 (2) f165_0_appendNewList_LE(x, x1, x2, x3, x4) -> f200_0_random_ArrayAccess(x5, x6, x7, x8, x9) :|: x3 <= 1 && 0 <= x4 - 1 && x4 <= x10 - 1 && x4 <= x11 - 1 && 0 <= x - 1 && 4 <= x1 - 1 && 2 <= x2 - 1 && 4 <= x5 - 1 (3) f165_0_appendNewList_LE(x12, x15, x16, x17, x18) -> f200_0_random_ArrayAccess(x19, x20, x21, x22, x23) :|: 6 <= x19 - 1 && 3 <= x16 - 1 && 5 <= x15 - 1 && 0 <= x12 - 1 && x19 - 3 <= x16 && x19 - 1 <= x15 && x17 <= 1 && x19 - 6 <= x12 (4) f165_0_appendNewList_LE(x24, x25, x26, x27, x28) -> f165_0_appendNewList_LE(x29, x30, x31, x32, x33) :|: x27 - 1 = x32 && 2 <= x31 - 1 && 4 <= x30 - 1 && 0 <= x29 - 1 && 2 <= x26 - 1 && 4 <= x25 - 1 && 0 <= x24 - 1 && x29 + 2 <= x26 && x29 + 4 <= x25 && x29 <= x24 && 1 <= x27 - 1 && 0 <= x28 - 1 && x28 <= x33 - 1 (5) f165_0_appendNewList_LE(x34, x35, x36, x37, x38) -> f165_0_appendNewList_LE(x39, x40, x41, x42, x43) :|: 1 = x43 && x37 - 1 = x42 && 5 <= x41 - 1 && 7 <= x40 - 1 && 0 <= x39 - 1 && 3 <= x36 - 1 && 5 <= x35 - 1 && 0 <= x34 - 1 && x41 - 2 <= x36 && x41 <= x35 && x41 - 5 <= x34 && x40 - 4 <= x36 && x40 - 2 <= x35 && x40 - 7 <= x34 && x39 + 3 <= x36 && x39 + 5 <= x35 && 1 <= x37 - 1 && x39 <= x34 (6) f200_0_random_ArrayAccess(x44, x45, x46, x47, x48) -> f314_0_appendNewList_LE(x49, x50, x51, x52, x53) :|: 0 = x51 && 3 <= x49 - 1 && 4 <= x44 - 1 && x49 + 1 <= x44 && -1 <= x50 - 1 && 1 <= x45 - 1 (7) f314_0_appendNewList_LE(x54, x55, x56, x57, x58) -> f314_0_appendNewList_LE(x59, x60, x61, x62, x63) :|: x55 - 1 = x60 && 2 <= x59 - 1 && 2 <= x54 - 1 && 1 <= x55 - 1 && 0 <= x56 - 1 && x56 <= x61 - 1 (8) f314_0_appendNewList_LE(x64, x65, x66, x67, x68) -> f314_0_appendNewList_LE(x69, x70, x71, x72, x73) :|: 1 = x71 && x65 - 1 = x70 && 5 <= x69 - 1 && 3 <= x64 - 1 && 1 <= x65 - 1 && x69 - 2 <= x64 (9) f314_0_appendNewList_LE(x74, x75, x76, x77, x78) -> f387_0_length_NULL(x79, x80, x81, x82, x83) :|: 0 <= x79 - 1 && 2 <= x74 - 1 && x75 <= 1 && x79 + 2 <= x74 (10) f387_0_length_NULL(x84, x85, x86, x87, x88) -> f387_0_length_NULL(x89, x90, x91, x92, x93) :|: -1 <= x89 - 1 && 0 <= x84 - 1 && x89 + 1 <= x84 (11) __init(x94, x95, x96, x97, x98) -> f1_0_main_Load(x99, x100, x101, x102, x103) :|: 0 <= 0 Arcs: (1) -> (3), (5) (2) -> (6) (3) -> (6) (4) -> (2), (3), (4), (5) (5) -> (2), (3), (4), (5) (6) -> (8), (9) (7) -> (7), (8), (9) (8) -> (7), (8), (9) (9) -> (10) (10) -> (10) (11) -> (1) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f165_0_appendNewList_LE(x34, x35, x36, x37, x38) -> f165_0_appendNewList_LE(x39, x40, x41, x42, x43) :|: 1 = x43 && x37 - 1 = x42 && 5 <= x41 - 1 && 7 <= x40 - 1 && 0 <= x39 - 1 && 3 <= x36 - 1 && 5 <= x35 - 1 && 0 <= x34 - 1 && x41 - 2 <= x36 && x41 <= x35 && x41 - 5 <= x34 && x40 - 4 <= x36 && x40 - 2 <= x35 && x40 - 7 <= x34 && x39 + 3 <= x36 && x39 + 5 <= x35 && 1 <= x37 - 1 && x39 <= x34 (2) f165_0_appendNewList_LE(x24, x25, x26, x27, x28) -> f165_0_appendNewList_LE(x29, x30, x31, x32, x33) :|: x27 - 1 = x32 && 2 <= x31 - 1 && 4 <= x30 - 1 && 0 <= x29 - 1 && 2 <= x26 - 1 && 4 <= x25 - 1 && 0 <= x24 - 1 && x29 + 2 <= x26 && x29 + 4 <= x25 && x29 <= x24 && 1 <= x27 - 1 && 0 <= x28 - 1 && x28 <= x33 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f165_0_appendNewList_LE(x34:0, x35:0, x36:0, x37:0, x38:0) -> f165_0_appendNewList_LE(x39:0, x40:0, x41:0, x37:0 - 1, 1) :|: x37:0 > 1 && x39:0 <= x34:0 && x39:0 + 5 <= x35:0 && x39:0 + 3 <= x36:0 && x40:0 - 7 <= x34:0 && x40:0 - 2 <= x35:0 && x40:0 - 4 <= x36:0 && x41:0 - 5 <= x34:0 && x41:0 <= x35:0 && x41:0 - 2 <= x36:0 && x34:0 > 0 && x35:0 > 5 && x36:0 > 3 && x39:0 > 0 && x41:0 > 5 && x40:0 > 7 f165_0_appendNewList_LE(x24:0, x25:0, x26:0, x27:0, x28:0) -> f165_0_appendNewList_LE(x29:0, x30:0, x31:0, x27:0 - 1, x33:0) :|: x28:0 > 0 && x33:0 - 1 >= x28:0 && x27:0 > 1 && x29:0 <= x24:0 && x29:0 + 4 <= x25:0 && x29:0 + 2 <= x26:0 && x24:0 > 0 && x25:0 > 4 && x26:0 > 2 && x29:0 > 0 && x31:0 > 2 && x30:0 > 4 ---------------------------------------- (8) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f165_0_appendNewList_LE(INTEGER, INTEGER, INTEGER, INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (9) Obligation: Rules: f165_0_appendNewList_LE(x34:0, x35:0, x36:0, x37:0, x38:0) -> f165_0_appendNewList_LE(x39:0, x40:0, x41:0, c, c1) :|: c1 = 1 && c = x37:0 - 1 && (x37:0 > 1 && x39:0 <= x34:0 && x39:0 + 5 <= x35:0 && x39:0 + 3 <= x36:0 && x40:0 - 7 <= x34:0 && x40:0 - 2 <= x35:0 && x40:0 - 4 <= x36:0 && x41:0 - 5 <= x34:0 && x41:0 <= x35:0 && x41:0 - 2 <= x36:0 && x34:0 > 0 && x35:0 > 5 && x36:0 > 3 && x39:0 > 0 && x41:0 > 5 && x40:0 > 7) f165_0_appendNewList_LE(x24:0, x25:0, x26:0, x27:0, x28:0) -> f165_0_appendNewList_LE(x29:0, x30:0, x31:0, c2, x33:0) :|: c2 = x27:0 - 1 && (x28:0 > 0 && x33:0 - 1 >= x28:0 && x27:0 > 1 && x29:0 <= x24:0 && x29:0 + 4 <= x25:0 && x29:0 + 2 <= x26:0 && x24:0 > 0 && x25:0 > 4 && x26:0 > 2 && x29:0 > 0 && x31:0 > 2 && x30:0 > 4) ---------------------------------------- (10) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f165_0_appendNewList_LE(x, x1, x2, x3, x4)] = x3 The following rules are decreasing: f165_0_appendNewList_LE(x34:0, x35:0, x36:0, x37:0, x38:0) -> f165_0_appendNewList_LE(x39:0, x40:0, x41:0, c, c1) :|: c1 = 1 && c = x37:0 - 1 && (x37:0 > 1 && x39:0 <= x34:0 && x39:0 + 5 <= x35:0 && x39:0 + 3 <= x36:0 && x40:0 - 7 <= x34:0 && x40:0 - 2 <= x35:0 && x40:0 - 4 <= x36:0 && x41:0 - 5 <= x34:0 && x41:0 <= x35:0 && x41:0 - 2 <= x36:0 && x34:0 > 0 && x35:0 > 5 && x36:0 > 3 && x39:0 > 0 && x41:0 > 5 && x40:0 > 7) f165_0_appendNewList_LE(x24:0, x25:0, x26:0, x27:0, x28:0) -> f165_0_appendNewList_LE(x29:0, x30:0, x31:0, c2, x33:0) :|: c2 = x27:0 - 1 && (x28:0 > 0 && x33:0 - 1 >= x28:0 && x27:0 > 1 && x29:0 <= x24:0 && x29:0 + 4 <= x25:0 && x29:0 + 2 <= x26:0 && x24:0 > 0 && x25:0 > 4 && x26:0 > 2 && x29:0 > 0 && x31:0 > 2 && x30:0 > 4) The following rules are bounded: f165_0_appendNewList_LE(x34:0, x35:0, x36:0, x37:0, x38:0) -> f165_0_appendNewList_LE(x39:0, x40:0, x41:0, c, c1) :|: c1 = 1 && c = x37:0 - 1 && (x37:0 > 1 && x39:0 <= x34:0 && x39:0 + 5 <= x35:0 && x39:0 + 3 <= x36:0 && x40:0 - 7 <= x34:0 && x40:0 - 2 <= x35:0 && x40:0 - 4 <= x36:0 && x41:0 - 5 <= x34:0 && x41:0 <= x35:0 && x41:0 - 2 <= x36:0 && x34:0 > 0 && x35:0 > 5 && x36:0 > 3 && x39:0 > 0 && x41:0 > 5 && x40:0 > 7) f165_0_appendNewList_LE(x24:0, x25:0, x26:0, x27:0, x28:0) -> f165_0_appendNewList_LE(x29:0, x30:0, x31:0, c2, x33:0) :|: c2 = x27:0 - 1 && (x28:0 > 0 && x33:0 - 1 >= x28:0 && x27:0 > 1 && x29:0 <= x24:0 && x29:0 + 4 <= x25:0 && x29:0 + 2 <= x26:0 && x24:0 > 0 && x25:0 > 4 && x26:0 > 2 && x29:0 > 0 && x31:0 > 2 && x30:0 > 4) ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f314_0_appendNewList_LE(x64, x65, x66, x67, x68) -> f314_0_appendNewList_LE(x69, x70, x71, x72, x73) :|: 1 = x71 && x65 - 1 = x70 && 5 <= x69 - 1 && 3 <= x64 - 1 && 1 <= x65 - 1 && x69 - 2 <= x64 (2) f314_0_appendNewList_LE(x54, x55, x56, x57, x58) -> f314_0_appendNewList_LE(x59, x60, x61, x62, x63) :|: x55 - 1 = x60 && 2 <= x59 - 1 && 2 <= x54 - 1 && 1 <= x55 - 1 && 0 <= x56 - 1 && x56 <= x61 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f314_0_appendNewList_LE(x54:0, x55:0, x56:0, x57:0, x58:0) -> f314_0_appendNewList_LE(x59:0, x55:0 - 1, x61:0, x62:0, x63:0) :|: x56:0 > 0 && x61:0 - 1 >= x56:0 && x55:0 > 1 && x59:0 > 2 && x54:0 > 2 f314_0_appendNewList_LE(x64:0, x65:0, x66:0, x67:0, x68:0) -> f314_0_appendNewList_LE(x69:0, x65:0 - 1, 1, x72:0, x73:0) :|: x65:0 > 1 && x69:0 - 2 <= x64:0 && x69:0 > 5 && x64:0 > 3 ---------------------------------------- (15) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f314_0_appendNewList_LE(x1, x2, x3, x4, x5) -> f314_0_appendNewList_LE(x1, x2, x3) ---------------------------------------- (16) Obligation: Rules: f314_0_appendNewList_LE(x54:0, x55:0, x56:0) -> f314_0_appendNewList_LE(x59:0, x55:0 - 1, x61:0) :|: x56:0 > 0 && x61:0 - 1 >= x56:0 && x55:0 > 1 && x59:0 > 2 && x54:0 > 2 f314_0_appendNewList_LE(x64:0, x65:0, x66:0) -> f314_0_appendNewList_LE(x69:0, x65:0 - 1, 1) :|: x65:0 > 1 && x69:0 - 2 <= x64:0 && x69:0 > 5 && x64:0 > 3 ---------------------------------------- (17) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f314_0_appendNewList_LE(INTEGER, INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (18) Obligation: Rules: f314_0_appendNewList_LE(x54:0, x55:0, x56:0) -> f314_0_appendNewList_LE(x59:0, c, x61:0) :|: c = x55:0 - 1 && (x56:0 > 0 && x61:0 - 1 >= x56:0 && x55:0 > 1 && x59:0 > 2 && x54:0 > 2) f314_0_appendNewList_LE(x64:0, x65:0, x66:0) -> f314_0_appendNewList_LE(x69:0, c1, c2) :|: c2 = 1 && c1 = x65:0 - 1 && (x65:0 > 1 && x69:0 - 2 <= x64:0 && x69:0 > 5 && x64:0 > 3) ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f314_0_appendNewList_LE ] = f314_0_appendNewList_LE_2 The following rules are decreasing: f314_0_appendNewList_LE(x54:0, x55:0, x56:0) -> f314_0_appendNewList_LE(x59:0, c, x61:0) :|: c = x55:0 - 1 && (x56:0 > 0 && x61:0 - 1 >= x56:0 && x55:0 > 1 && x59:0 > 2 && x54:0 > 2) f314_0_appendNewList_LE(x64:0, x65:0, x66:0) -> f314_0_appendNewList_LE(x69:0, c1, c2) :|: c2 = 1 && c1 = x65:0 - 1 && (x65:0 > 1 && x69:0 - 2 <= x64:0 && x69:0 > 5 && x64:0 > 3) The following rules are bounded: f314_0_appendNewList_LE(x54:0, x55:0, x56:0) -> f314_0_appendNewList_LE(x59:0, c, x61:0) :|: c = x55:0 - 1 && (x56:0 > 0 && x61:0 - 1 >= x56:0 && x55:0 > 1 && x59:0 > 2 && x54:0 > 2) f314_0_appendNewList_LE(x64:0, x65:0, x66:0) -> f314_0_appendNewList_LE(x69:0, c1, c2) :|: c2 = 1 && c1 = x65:0 - 1 && (x65:0 > 1 && x69:0 - 2 <= x64:0 && x69:0 > 5 && x64:0 > 3) ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Termination digraph: Nodes: (1) f387_0_length_NULL(x84, x85, x86, x87, x88) -> f387_0_length_NULL(x89, x90, x91, x92, x93) :|: -1 <= x89 - 1 && 0 <= x84 - 1 && x89 + 1 <= x84 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (22) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (23) Obligation: Rules: f387_0_length_NULL(x84:0, x85:0, x86:0, x87:0, x88:0) -> f387_0_length_NULL(x89:0, x90:0, x91:0, x92:0, x93:0) :|: x89:0 > -1 && x84:0 > 0 && x89:0 + 1 <= x84:0 ---------------------------------------- (24) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f387_0_length_NULL(x1, x2, x3, x4, x5) -> f387_0_length_NULL(x1) ---------------------------------------- (25) Obligation: Rules: f387_0_length_NULL(x84:0) -> f387_0_length_NULL(x89:0) :|: x89:0 > -1 && x84:0 > 0 && x89:0 + 1 <= x84:0 ---------------------------------------- (26) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f387_0_length_NULL(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (27) Obligation: Rules: f387_0_length_NULL(x84:0) -> f387_0_length_NULL(x89:0) :|: x89:0 > -1 && x84:0 > 0 && x89:0 + 1 <= x84:0 ---------------------------------------- (28) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (29) Obligation: Rules: f387_0_length_NULL(x84:0:0) -> f387_0_length_NULL(x89:0:0) :|: x89:0:0 > -1 && x84:0:0 > 0 && x89:0:0 + 1 <= x84:0:0 ---------------------------------------- (30) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f387_0_length_NULL(x)] = x The following rules are decreasing: f387_0_length_NULL(x84:0:0) -> f387_0_length_NULL(x89:0:0) :|: x89:0:0 > -1 && x84:0:0 > 0 && x89:0:0 + 1 <= x84:0:0 The following rules are bounded: f387_0_length_NULL(x84:0:0) -> f387_0_length_NULL(x89:0:0) :|: x89:0:0 > -1 && x84:0:0 > 0 && x89:0:0 + 1 <= x84:0:0 ---------------------------------------- (31) YES