NO proof of prog.inttrs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given IRSwT could be disproven: (0) IRSwT (1) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (2) IRSwT (3) IRSwTTerminationDigraphProof [EQUIVALENT, 1138 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 0 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) PolynomialOrderProcessor [EQUIVALENT, 3 ms] (15) YES (16) IRSwT (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IRSwT (19) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (20) IRSwT (21) FilterProof [EQUIVALENT, 0 ms] (22) IntTRS (23) IntTRSCompressionProof [EQUIVALENT, 0 ms] (24) IntTRS (25) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (26) YES (27) IRSwT (28) IntTRSCompressionProof [EQUIVALENT, 0 ms] (29) IRSwT (30) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (31) IRSwT (32) FilterProof [EQUIVALENT, 0 ms] (33) IntTRS (34) IntTRSCompressionProof [EQUIVALENT, 0 ms] (35) IntTRS (36) RankingReductionPairProof [EQUIVALENT, 22 ms] (37) YES (38) IRSwT (39) IntTRSCompressionProof [EQUIVALENT, 0 ms] (40) IRSwT (41) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (42) IRSwT (43) FilterProof [EQUIVALENT, 0 ms] (44) IntTRS (45) IntTRSCompressionProof [EQUIVALENT, 0 ms] (46) IntTRS (47) IntTRSPeriodicNontermProof [COMPLETE, 6 ms] (48) NO (49) IRSwT (50) IntTRSCompressionProof [EQUIVALENT, 0 ms] (51) IRSwT (52) FilterProof [EQUIVALENT, 0 ms] (53) IntTRS (54) IntTRSCompressionProof [EQUIVALENT, 0 ms] (55) IntTRS (56) RankingReductionPairProof [EQUIVALENT, 0 ms] (57) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_New(arg1, arg2, arg3, arg4) -> f230_0_alternate_NONNULL(arg1P, arg2P, arg3P, arg4P) :|: 3 <= arg3P - 1 && 3 <= arg4P - 1 && 3 <= arg2P - 1 && 3 <= arg1P - 1 f230_0_alternate_NONNULL(x, x1, x2, x3) -> f230_0_alternate_NONNULL(x4, x5, x6, x7) :|: -1 <= x7 - 1 && -1 <= x6 - 1 && 0 <= x5 - 1 && -1 <= x4 - 1 && 0 <= x3 - 1 && 0 <= x2 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x7 + 1 <= x1 && x6 + 1 <= x1 && x5 <= x3 && x5 <= x2 && x5 <= x && x4 + 1 <= x1 f1_0_main_New(x8, x9, x10, x11) -> f1096_0_append_NONNULL(x12, x13, x14, x15) :|: 4 <= x13 - 1 && -1 <= x14 - 1 && 3 <= x12 - 1 f1096_0_append_NONNULL(x16, x17, x18, x19) -> f1096_0_append_NONNULL(x20, x21, x22, x23) :|: -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x20 - 1 && 0 <= x18 - 1 && 0 <= x17 - 1 && 2 <= x16 - 1 && x21 <= x17 f1_0_main_New(x24, x25, x26, x27) -> f565_0_iter_NULL(x28, x29, x30, x31) :|: 3 <= x28 - 1 && 1 <= x29 - 1 f565_0_iter_NULL(x32, x33, x34, x35) -> f565_0_iter_NULL(x36, x37, x38, x39) :|: -1 <= x37 - 1 && 0 <= x36 - 1 && 0 <= x33 - 1 && 2 <= x32 - 1 && x37 + 1 <= x33 && x37 + 3 <= x32 && x36 <= x33 && x36 + 2 <= x32 f1_0_main_New(x40, x41, x42, x43) -> f717_0_reverseAcc_NONNULL(x44, x45, x46, x47) :|: 3 <= x44 - 1 && 1 <= x45 - 1 f717_0_reverseAcc_NONNULL(x48, x49, x50, x51) -> f717_0_reverseAcc_NONNULL(x52, x53, x54, x55) :|: -1 <= x53 - 1 && 0 <= x52 - 1 && 0 <= x49 - 1 && 2 <= x48 - 1 && x53 + 1 <= x49 && x53 + 3 <= x48 && x52 <= x49 && x52 + 2 <= x48 f1_0_main_New(x56, x57, x58, x59) -> f845_0_reverse_NONNULL(x60, x61, x62, x63) :|: 3 <= x60 - 1 && 1 <= x61 - 1 f845_0_reverse_NONNULL(x64, x65, x66, x67) -> f845_0_reverse_NONNULL(x68, x69, x70, x71) :|: -1 <= x69 - 1 && 0 <= x68 - 1 && 0 <= x65 - 1 && 2 <= x64 - 1 && x69 + 1 <= x65 && x69 + 3 <= x64 && x68 <= x65 && x68 + 2 <= x64 f845_0_reverse_NONNULL(x72, x73, x74, x75) -> f1096_0_append_NONNULL(x76, x77, x78, x79) :|: -1 <= x78 - 1 && 1 <= x77 - 1 && 1 <= x76 - 1 && 0 <= x73 - 1 && 2 <= x72 - 1 && x77 - 1 <= x73 && x77 + 1 <= x72 && x76 - 1 <= x73 && x76 + 1 <= x72 f845_0_reverse_NONNULL(x80, x81, x82, x83) -> f1225_0_reverse_InvokeMethod(x84, x85, x86, x87) :|: 4 <= x84 - 1 && 0 <= x81 - 1 && 2 <= x80 - 1 f845_0_reverse_NONNULL(x88, x89, x90, x91) -> f1225_0_reverse_InvokeMethod(x92, x93, x94, x95) :|: 2 <= x92 - 1 && 0 <= x89 - 1 && 2 <= x88 - 1 f991_0_reverse_Return(x96, x97, x98, x99) -> f1225_0_reverse_InvokeMethod(x100, x101, x102, x103) :|: x97 + 4 <= x96 && 2 <= x100 - 1 && 2 <= x96 - 1 && x100 <= x96 f1225_0_reverse_InvokeMethod(x104, x105, x106, x107) -> f1096_0_append_NONNULL(x108, x109, x110, x111) :|: -1 <= x110 - 1 && 1 <= x109 - 1 && 2 <= x108 - 1 && 2 <= x104 - 1 && x109 + 1 <= x104 && x108 <= x104 __init(x112, x113, x114, x115) -> f1_0_main_New(x116, x117, x118, x119) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: f1_0_main_New(arg1, arg2, arg3, arg4) -> f230_0_alternate_NONNULL(arg1P, arg2P, arg3P, arg4P) :|: 3 <= arg3P - 1 && 3 <= arg4P - 1 && 3 <= arg2P - 1 && 3 <= arg1P - 1 f230_0_alternate_NONNULL(x, x1, x2, x3) -> f230_0_alternate_NONNULL(x4, x5, x6, x7) :|: -1 <= x7 - 1 && -1 <= x6 - 1 && 0 <= x5 - 1 && -1 <= x4 - 1 && 0 <= x3 - 1 && 0 <= x2 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x7 + 1 <= x1 && x6 + 1 <= x1 && x5 <= x3 && x5 <= x2 && x5 <= x && x4 + 1 <= x1 f1_0_main_New(x8, x9, x10, x11) -> f1096_0_append_NONNULL(x12, x13, x14, x15) :|: 4 <= x13 - 1 && -1 <= x14 - 1 && 3 <= x12 - 1 f1096_0_append_NONNULL(x16, x17, x18, x19) -> f1096_0_append_NONNULL(x20, x21, x22, x23) :|: -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x20 - 1 && 0 <= x18 - 1 && 0 <= x17 - 1 && 2 <= x16 - 1 && x21 <= x17 f1_0_main_New(x24, x25, x26, x27) -> f565_0_iter_NULL(x28, x29, x30, x31) :|: 3 <= x28 - 1 && 1 <= x29 - 1 f565_0_iter_NULL(x32, x33, x34, x35) -> f565_0_iter_NULL(x36, x37, x38, x39) :|: -1 <= x37 - 1 && 0 <= x36 - 1 && 0 <= x33 - 1 && 2 <= x32 - 1 && x37 + 1 <= x33 && x37 + 3 <= x32 && x36 <= x33 && x36 + 2 <= x32 f1_0_main_New(x40, x41, x42, x43) -> f717_0_reverseAcc_NONNULL(x44, x45, x46, x47) :|: 3 <= x44 - 1 && 1 <= x45 - 1 f717_0_reverseAcc_NONNULL(x48, x49, x50, x51) -> f717_0_reverseAcc_NONNULL(x52, x53, x54, x55) :|: -1 <= x53 - 1 && 0 <= x52 - 1 && 0 <= x49 - 1 && 2 <= x48 - 1 && x53 + 1 <= x49 && x53 + 3 <= x48 && x52 <= x49 && x52 + 2 <= x48 f1_0_main_New(x56, x57, x58, x59) -> f845_0_reverse_NONNULL(x60, x61, x62, x63) :|: 3 <= x60 - 1 && 1 <= x61 - 1 f845_0_reverse_NONNULL(x64, x65, x66, x67) -> f845_0_reverse_NONNULL(x68, x69, x70, x71) :|: -1 <= x69 - 1 && 0 <= x68 - 1 && 0 <= x65 - 1 && 2 <= x64 - 1 && x69 + 1 <= x65 && x69 + 3 <= x64 && x68 <= x65 && x68 + 2 <= x64 f845_0_reverse_NONNULL(x72, x73, x74, x75) -> f1096_0_append_NONNULL(x76, x77, x78, x79) :|: -1 <= x78 - 1 && 1 <= x77 - 1 && 1 <= x76 - 1 && 0 <= x73 - 1 && 2 <= x72 - 1 && x77 - 1 <= x73 && x77 + 1 <= x72 && x76 - 1 <= x73 && x76 + 1 <= x72 f845_0_reverse_NONNULL(x80, x81, x82, x83) -> f1225_0_reverse_InvokeMethod(x84, x85, x86, x87) :|: 4 <= x84 - 1 && 0 <= x81 - 1 && 2 <= x80 - 1 f845_0_reverse_NONNULL(x88, x89, x90, x91) -> f1225_0_reverse_InvokeMethod(x92, x93, x94, x95) :|: 2 <= x92 - 1 && 0 <= x89 - 1 && 2 <= x88 - 1 f991_0_reverse_Return(x96, x97, x98, x99) -> f1225_0_reverse_InvokeMethod(x100, x101, x102, x103) :|: x97 + 4 <= x96 && 2 <= x100 - 1 && 2 <= x96 - 1 && x100 <= x96 f1225_0_reverse_InvokeMethod(x104, x105, x106, x107) -> f1096_0_append_NONNULL(x108, x109, x110, x111) :|: -1 <= x110 - 1 && 1 <= x109 - 1 && 2 <= x108 - 1 && 2 <= x104 - 1 && x109 + 1 <= x104 && x108 <= x104 __init(x112, x113, x114, x115) -> f1_0_main_New(x116, x117, x118, x119) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1_0_main_New(arg1, arg2, arg3, arg4) -> f230_0_alternate_NONNULL(arg1P, arg2P, arg3P, arg4P) :|: 3 <= arg3P - 1 && 3 <= arg4P - 1 && 3 <= arg2P - 1 && 3 <= arg1P - 1 (2) f230_0_alternate_NONNULL(x, x1, x2, x3) -> f230_0_alternate_NONNULL(x4, x5, x6, x7) :|: -1 <= x7 - 1 && -1 <= x6 - 1 && 0 <= x5 - 1 && -1 <= x4 - 1 && 0 <= x3 - 1 && 0 <= x2 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x7 + 1 <= x1 && x6 + 1 <= x1 && x5 <= x3 && x5 <= x2 && x5 <= x && x4 + 1 <= x1 (3) f1_0_main_New(x8, x9, x10, x11) -> f1096_0_append_NONNULL(x12, x13, x14, x15) :|: 4 <= x13 - 1 && -1 <= x14 - 1 && 3 <= x12 - 1 (4) f1096_0_append_NONNULL(x16, x17, x18, x19) -> f1096_0_append_NONNULL(x20, x21, x22, x23) :|: -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x20 - 1 && 0 <= x18 - 1 && 0 <= x17 - 1 && 2 <= x16 - 1 && x21 <= x17 (5) f1_0_main_New(x24, x25, x26, x27) -> f565_0_iter_NULL(x28, x29, x30, x31) :|: 3 <= x28 - 1 && 1 <= x29 - 1 (6) f565_0_iter_NULL(x32, x33, x34, x35) -> f565_0_iter_NULL(x36, x37, x38, x39) :|: -1 <= x37 - 1 && 0 <= x36 - 1 && 0 <= x33 - 1 && 2 <= x32 - 1 && x37 + 1 <= x33 && x37 + 3 <= x32 && x36 <= x33 && x36 + 2 <= x32 (7) f1_0_main_New(x40, x41, x42, x43) -> f717_0_reverseAcc_NONNULL(x44, x45, x46, x47) :|: 3 <= x44 - 1 && 1 <= x45 - 1 (8) f717_0_reverseAcc_NONNULL(x48, x49, x50, x51) -> f717_0_reverseAcc_NONNULL(x52, x53, x54, x55) :|: -1 <= x53 - 1 && 0 <= x52 - 1 && 0 <= x49 - 1 && 2 <= x48 - 1 && x53 + 1 <= x49 && x53 + 3 <= x48 && x52 <= x49 && x52 + 2 <= x48 (9) f1_0_main_New(x56, x57, x58, x59) -> f845_0_reverse_NONNULL(x60, x61, x62, x63) :|: 3 <= x60 - 1 && 1 <= x61 - 1 (10) f845_0_reverse_NONNULL(x64, x65, x66, x67) -> f845_0_reverse_NONNULL(x68, x69, x70, x71) :|: -1 <= x69 - 1 && 0 <= x68 - 1 && 0 <= x65 - 1 && 2 <= x64 - 1 && x69 + 1 <= x65 && x69 + 3 <= x64 && x68 <= x65 && x68 + 2 <= x64 (11) f845_0_reverse_NONNULL(x72, x73, x74, x75) -> f1096_0_append_NONNULL(x76, x77, x78, x79) :|: -1 <= x78 - 1 && 1 <= x77 - 1 && 1 <= x76 - 1 && 0 <= x73 - 1 && 2 <= x72 - 1 && x77 - 1 <= x73 && x77 + 1 <= x72 && x76 - 1 <= x73 && x76 + 1 <= x72 (12) f845_0_reverse_NONNULL(x80, x81, x82, x83) -> f1225_0_reverse_InvokeMethod(x84, x85, x86, x87) :|: 4 <= x84 - 1 && 0 <= x81 - 1 && 2 <= x80 - 1 (13) f845_0_reverse_NONNULL(x88, x89, x90, x91) -> f1225_0_reverse_InvokeMethod(x92, x93, x94, x95) :|: 2 <= x92 - 1 && 0 <= x89 - 1 && 2 <= x88 - 1 (14) f991_0_reverse_Return(x96, x97, x98, x99) -> f1225_0_reverse_InvokeMethod(x100, x101, x102, x103) :|: x97 + 4 <= x96 && 2 <= x100 - 1 && 2 <= x96 - 1 && x100 <= x96 (15) f1225_0_reverse_InvokeMethod(x104, x105, x106, x107) -> f1096_0_append_NONNULL(x108, x109, x110, x111) :|: -1 <= x110 - 1 && 1 <= x109 - 1 && 2 <= x108 - 1 && 2 <= x104 - 1 && x109 + 1 <= x104 && x108 <= x104 (16) __init(x112, x113, x114, x115) -> f1_0_main_New(x116, x117, x118, x119) :|: 0 <= 0 Arcs: (1) -> (2) (2) -> (2) (3) -> (4) (4) -> (4) (5) -> (6) (6) -> (6) (7) -> (8) (8) -> (8) (9) -> (10), (11), (12), (13) (10) -> (10), (11), (12), (13) (11) -> (4) (12) -> (15) (13) -> (15) (14) -> (15) (15) -> (4) (16) -> (1), (3), (5), (7), (9) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f845_0_reverse_NONNULL(x64, x65, x66, x67) -> f845_0_reverse_NONNULL(x68, x69, x70, x71) :|: -1 <= x69 - 1 && 0 <= x68 - 1 && 0 <= x65 - 1 && 2 <= x64 - 1 && x69 + 1 <= x65 && x69 + 3 <= x64 && x68 <= x65 && x68 + 2 <= x64 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f845_0_reverse_NONNULL(x64:0, x65:0, x66:0, x67:0) -> f845_0_reverse_NONNULL(x68:0, x69:0, x70:0, x71:0) :|: x68:0 <= x65:0 && x68:0 + 2 <= x64:0 && x69:0 + 3 <= x64:0 && x69:0 + 1 <= x65:0 && x64:0 > 2 && x65:0 > 0 && x68:0 > 0 && x69:0 > -1 ---------------------------------------- (8) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f845_0_reverse_NONNULL(x1, x2, x3, x4) -> f845_0_reverse_NONNULL(x1, x2) ---------------------------------------- (9) Obligation: Rules: f845_0_reverse_NONNULL(x64:0, x65:0) -> f845_0_reverse_NONNULL(x68:0, x69:0) :|: x68:0 <= x65:0 && x68:0 + 2 <= x64:0 && x69:0 + 3 <= x64:0 && x69:0 + 1 <= x65:0 && x64:0 > 2 && x65:0 > 0 && x68:0 > 0 && x69:0 > -1 ---------------------------------------- (10) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f845_0_reverse_NONNULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (11) Obligation: Rules: f845_0_reverse_NONNULL(x64:0, x65:0) -> f845_0_reverse_NONNULL(x68:0, x69:0) :|: x68:0 <= x65:0 && x68:0 + 2 <= x64:0 && x69:0 + 3 <= x64:0 && x69:0 + 1 <= x65:0 && x64:0 > 2 && x65:0 > 0 && x68:0 > 0 && x69:0 > -1 ---------------------------------------- (12) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (13) Obligation: Rules: f845_0_reverse_NONNULL(x64:0:0, x65:0:0) -> f845_0_reverse_NONNULL(x68:0:0, x69:0:0) :|: x68:0:0 > 0 && x69:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 2 && x69:0:0 + 1 <= x65:0:0 && x69:0:0 + 3 <= x64:0:0 && x68:0:0 + 2 <= x64:0:0 && x68:0:0 <= x65:0:0 ---------------------------------------- (14) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f845_0_reverse_NONNULL(x, x1)] = -3 + x + x1 The following rules are decreasing: f845_0_reverse_NONNULL(x64:0:0, x65:0:0) -> f845_0_reverse_NONNULL(x68:0:0, x69:0:0) :|: x68:0:0 > 0 && x69:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 2 && x69:0:0 + 1 <= x65:0:0 && x69:0:0 + 3 <= x64:0:0 && x68:0:0 + 2 <= x64:0:0 && x68:0:0 <= x65:0:0 The following rules are bounded: f845_0_reverse_NONNULL(x64:0:0, x65:0:0) -> f845_0_reverse_NONNULL(x68:0:0, x69:0:0) :|: x68:0:0 > 0 && x69:0:0 > -1 && x65:0:0 > 0 && x64:0:0 > 2 && x69:0:0 + 1 <= x65:0:0 && x69:0:0 + 3 <= x64:0:0 && x68:0:0 + 2 <= x64:0:0 && x68:0:0 <= x65:0:0 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Termination digraph: Nodes: (1) f717_0_reverseAcc_NONNULL(x48, x49, x50, x51) -> f717_0_reverseAcc_NONNULL(x52, x53, x54, x55) :|: -1 <= x53 - 1 && 0 <= x52 - 1 && 0 <= x49 - 1 && 2 <= x48 - 1 && x53 + 1 <= x49 && x53 + 3 <= x48 && x52 <= x49 && x52 + 2 <= x48 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f717_0_reverseAcc_NONNULL(x48:0, x49:0, x50:0, x51:0) -> f717_0_reverseAcc_NONNULL(x52:0, x53:0, x54:0, x55:0) :|: x52:0 <= x49:0 && x52:0 + 2 <= x48:0 && x53:0 + 3 <= x48:0 && x53:0 + 1 <= x49:0 && x48:0 > 2 && x49:0 > 0 && x52:0 > 0 && x53:0 > -1 ---------------------------------------- (19) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f717_0_reverseAcc_NONNULL(x1, x2, x3, x4) -> f717_0_reverseAcc_NONNULL(x1, x2) ---------------------------------------- (20) Obligation: Rules: f717_0_reverseAcc_NONNULL(x48:0, x49:0) -> f717_0_reverseAcc_NONNULL(x52:0, x53:0) :|: x52:0 <= x49:0 && x52:0 + 2 <= x48:0 && x53:0 + 3 <= x48:0 && x53:0 + 1 <= x49:0 && x48:0 > 2 && x49:0 > 0 && x52:0 > 0 && x53:0 > -1 ---------------------------------------- (21) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f717_0_reverseAcc_NONNULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (22) Obligation: Rules: f717_0_reverseAcc_NONNULL(x48:0, x49:0) -> f717_0_reverseAcc_NONNULL(x52:0, x53:0) :|: x52:0 <= x49:0 && x52:0 + 2 <= x48:0 && x53:0 + 3 <= x48:0 && x53:0 + 1 <= x49:0 && x48:0 > 2 && x49:0 > 0 && x52:0 > 0 && x53:0 > -1 ---------------------------------------- (23) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (24) Obligation: Rules: f717_0_reverseAcc_NONNULL(x48:0:0, x49:0:0) -> f717_0_reverseAcc_NONNULL(x52:0:0, x53:0:0) :|: x52:0:0 > 0 && x53:0:0 > -1 && x49:0:0 > 0 && x48:0:0 > 2 && x53:0:0 + 1 <= x49:0:0 && x53:0:0 + 3 <= x48:0:0 && x52:0:0 + 2 <= x48:0:0 && x52:0:0 <= x49:0:0 ---------------------------------------- (25) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f717_0_reverseAcc_NONNULL(x, x1)] = -3 + x + x1 The following rules are decreasing: f717_0_reverseAcc_NONNULL(x48:0:0, x49:0:0) -> f717_0_reverseAcc_NONNULL(x52:0:0, x53:0:0) :|: x52:0:0 > 0 && x53:0:0 > -1 && x49:0:0 > 0 && x48:0:0 > 2 && x53:0:0 + 1 <= x49:0:0 && x53:0:0 + 3 <= x48:0:0 && x52:0:0 + 2 <= x48:0:0 && x52:0:0 <= x49:0:0 The following rules are bounded: f717_0_reverseAcc_NONNULL(x48:0:0, x49:0:0) -> f717_0_reverseAcc_NONNULL(x52:0:0, x53:0:0) :|: x52:0:0 > 0 && x53:0:0 > -1 && x49:0:0 > 0 && x48:0:0 > 2 && x53:0:0 + 1 <= x49:0:0 && x53:0:0 + 3 <= x48:0:0 && x52:0:0 + 2 <= x48:0:0 && x52:0:0 <= x49:0:0 ---------------------------------------- (26) YES ---------------------------------------- (27) Obligation: Termination digraph: Nodes: (1) f565_0_iter_NULL(x32, x33, x34, x35) -> f565_0_iter_NULL(x36, x37, x38, x39) :|: -1 <= x37 - 1 && 0 <= x36 - 1 && 0 <= x33 - 1 && 2 <= x32 - 1 && x37 + 1 <= x33 && x37 + 3 <= x32 && x36 <= x33 && x36 + 2 <= x32 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (28) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (29) Obligation: Rules: f565_0_iter_NULL(x32:0, x33:0, x34:0, x35:0) -> f565_0_iter_NULL(x36:0, x37:0, x38:0, x39:0) :|: x36:0 <= x33:0 && x36:0 + 2 <= x32:0 && x37:0 + 3 <= x32:0 && x37:0 + 1 <= x33:0 && x32:0 > 2 && x33:0 > 0 && x36:0 > 0 && x37:0 > -1 ---------------------------------------- (30) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f565_0_iter_NULL(x1, x2, x3, x4) -> f565_0_iter_NULL(x1, x2) ---------------------------------------- (31) Obligation: Rules: f565_0_iter_NULL(x32:0, x33:0) -> f565_0_iter_NULL(x36:0, x37:0) :|: x36:0 <= x33:0 && x36:0 + 2 <= x32:0 && x37:0 + 3 <= x32:0 && x37:0 + 1 <= x33:0 && x32:0 > 2 && x33:0 > 0 && x36:0 > 0 && x37:0 > -1 ---------------------------------------- (32) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f565_0_iter_NULL(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (33) Obligation: Rules: f565_0_iter_NULL(x32:0, x33:0) -> f565_0_iter_NULL(x36:0, x37:0) :|: x36:0 <= x33:0 && x36:0 + 2 <= x32:0 && x37:0 + 3 <= x32:0 && x37:0 + 1 <= x33:0 && x32:0 > 2 && x33:0 > 0 && x36:0 > 0 && x37:0 > -1 ---------------------------------------- (34) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (35) Obligation: Rules: f565_0_iter_NULL(x32:0:0, x33:0:0) -> f565_0_iter_NULL(x36:0:0, x37:0:0) :|: x36:0:0 > 0 && x37:0:0 > -1 && x33:0:0 > 0 && x32:0:0 > 2 && x37:0:0 + 1 <= x33:0:0 && x37:0:0 + 3 <= x32:0:0 && x36:0:0 + 2 <= x32:0:0 && x36:0:0 <= x33:0:0 ---------------------------------------- (36) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f565_0_iter_NULL ] = 1/2*f565_0_iter_NULL_1 The following rules are decreasing: f565_0_iter_NULL(x32:0:0, x33:0:0) -> f565_0_iter_NULL(x36:0:0, x37:0:0) :|: x36:0:0 > 0 && x37:0:0 > -1 && x33:0:0 > 0 && x32:0:0 > 2 && x37:0:0 + 1 <= x33:0:0 && x37:0:0 + 3 <= x32:0:0 && x36:0:0 + 2 <= x32:0:0 && x36:0:0 <= x33:0:0 The following rules are bounded: f565_0_iter_NULL(x32:0:0, x33:0:0) -> f565_0_iter_NULL(x36:0:0, x37:0:0) :|: x36:0:0 > 0 && x37:0:0 > -1 && x33:0:0 > 0 && x32:0:0 > 2 && x37:0:0 + 1 <= x33:0:0 && x37:0:0 + 3 <= x32:0:0 && x36:0:0 + 2 <= x32:0:0 && x36:0:0 <= x33:0:0 ---------------------------------------- (37) YES ---------------------------------------- (38) Obligation: Termination digraph: Nodes: (1) f1096_0_append_NONNULL(x16, x17, x18, x19) -> f1096_0_append_NONNULL(x20, x21, x22, x23) :|: -1 <= x22 - 1 && 0 <= x21 - 1 && 0 <= x20 - 1 && 0 <= x18 - 1 && 0 <= x17 - 1 && 2 <= x16 - 1 && x21 <= x17 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (39) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (40) Obligation: Rules: f1096_0_append_NONNULL(x16:0, x17:0, x18:0, x19:0) -> f1096_0_append_NONNULL(x20:0, x21:0, x22:0, x23:0) :|: x16:0 > 2 && x21:0 <= x17:0 && x17:0 > 0 && x18:0 > 0 && x20:0 > 0 && x21:0 > 0 && x22:0 > -1 ---------------------------------------- (41) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f1096_0_append_NONNULL(x1, x2, x3, x4) -> f1096_0_append_NONNULL(x1, x2, x3) ---------------------------------------- (42) Obligation: Rules: f1096_0_append_NONNULL(x16:0, x17:0, x18:0) -> f1096_0_append_NONNULL(x20:0, x21:0, x22:0) :|: x16:0 > 2 && x21:0 <= x17:0 && x17:0 > 0 && x18:0 > 0 && x20:0 > 0 && x21:0 > 0 && x22:0 > -1 ---------------------------------------- (43) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f1096_0_append_NONNULL(INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (44) Obligation: Rules: f1096_0_append_NONNULL(x16:0, x17:0, x18:0) -> f1096_0_append_NONNULL(x20:0, x21:0, x22:0) :|: x16:0 > 2 && x21:0 <= x17:0 && x17:0 > 0 && x18:0 > 0 && x20:0 > 0 && x21:0 > 0 && x22:0 > -1 ---------------------------------------- (45) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (46) Obligation: Rules: f1096_0_append_NONNULL(x16:0:0, x17:0:0, x18:0:0) -> f1096_0_append_NONNULL(x20:0:0, x21:0:0, x22:0:0) :|: x21:0:0 > 0 && x22:0:0 > -1 && x20:0:0 > 0 && x18:0:0 > 0 && x17:0:0 > 0 && x21:0:0 <= x17:0:0 && x16:0:0 > 2 ---------------------------------------- (47) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x16:0:0, x17:0:0, x18:0:0) -> f(1, x20:0:0, x21:0:0, x22:0:0) :|: pc = 1 && (x21:0:0 > 0 && x22:0:0 > -1 && x20:0:0 > 0 && x18:0:0 > 0 && x17:0:0 > 0 && x21:0:0 <= x17:0:0 && x16:0:0 > 2) Witness term starting non-terminating reduction: f(1, 11, 10, 1) ---------------------------------------- (48) NO ---------------------------------------- (49) Obligation: Termination digraph: Nodes: (1) f230_0_alternate_NONNULL(x, x1, x2, x3) -> f230_0_alternate_NONNULL(x4, x5, x6, x7) :|: -1 <= x7 - 1 && -1 <= x6 - 1 && 0 <= x5 - 1 && -1 <= x4 - 1 && 0 <= x3 - 1 && 0 <= x2 - 1 && 0 <= x1 - 1 && 0 <= x - 1 && x7 + 1 <= x1 && x6 + 1 <= x1 && x5 <= x3 && x5 <= x2 && x5 <= x && x4 + 1 <= x1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (50) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (51) Obligation: Rules: f230_0_alternate_NONNULL(x:0, x1:0, x2:0, x3:0) -> f230_0_alternate_NONNULL(x4:0, x5:0, x6:0, x7:0) :|: x:0 >= x5:0 && x4:0 + 1 <= x1:0 && x5:0 <= x2:0 && x5:0 <= x3:0 && x6:0 + 1 <= x1:0 && x7:0 + 1 <= x1:0 && x:0 > 0 && x1:0 > 0 && x2:0 > 0 && x3:0 > 0 && x4:0 > -1 && x5:0 > 0 && x6:0 > -1 && x7:0 > -1 ---------------------------------------- (52) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f230_0_alternate_NONNULL(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (53) Obligation: Rules: f230_0_alternate_NONNULL(x:0, x1:0, x2:0, x3:0) -> f230_0_alternate_NONNULL(x4:0, x5:0, x6:0, x7:0) :|: x:0 >= x5:0 && x4:0 + 1 <= x1:0 && x5:0 <= x2:0 && x5:0 <= x3:0 && x6:0 + 1 <= x1:0 && x7:0 + 1 <= x1:0 && x:0 > 0 && x1:0 > 0 && x2:0 > 0 && x3:0 > 0 && x4:0 > -1 && x5:0 > 0 && x6:0 > -1 && x7:0 > -1 ---------------------------------------- (54) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (55) Obligation: Rules: f230_0_alternate_NONNULL(x:0:0, x1:0:0, x2:0:0, x3:0:0) -> f230_0_alternate_NONNULL(x4:0:0, x5:0:0, x6:0:0, x7:0:0) :|: x6:0:0 > -1 && x7:0:0 > -1 && x5:0:0 > 0 && x4:0:0 > -1 && x3:0:0 > 0 && x2:0:0 > 0 && x1:0:0 > 0 && x:0:0 > 0 && x7:0:0 + 1 <= x1:0:0 && x6:0:0 + 1 <= x1:0:0 && x5:0:0 <= x3:0:0 && x5:0:0 <= x2:0:0 && x4:0:0 + 1 <= x1:0:0 && x:0:0 >= x5:0:0 ---------------------------------------- (56) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f230_0_alternate_NONNULL ] = f230_0_alternate_NONNULL_4 + f230_0_alternate_NONNULL_2 The following rules are decreasing: f230_0_alternate_NONNULL(x:0:0, x1:0:0, x2:0:0, x3:0:0) -> f230_0_alternate_NONNULL(x4:0:0, x5:0:0, x6:0:0, x7:0:0) :|: x6:0:0 > -1 && x7:0:0 > -1 && x5:0:0 > 0 && x4:0:0 > -1 && x3:0:0 > 0 && x2:0:0 > 0 && x1:0:0 > 0 && x:0:0 > 0 && x7:0:0 + 1 <= x1:0:0 && x6:0:0 + 1 <= x1:0:0 && x5:0:0 <= x3:0:0 && x5:0:0 <= x2:0:0 && x4:0:0 + 1 <= x1:0:0 && x:0:0 >= x5:0:0 The following rules are bounded: f230_0_alternate_NONNULL(x:0:0, x1:0:0, x2:0:0, x3:0:0) -> f230_0_alternate_NONNULL(x4:0:0, x5:0:0, x6:0:0, x7:0:0) :|: x6:0:0 > -1 && x7:0:0 > -1 && x5:0:0 > 0 && x4:0:0 > -1 && x3:0:0 > 0 && x2:0:0 > 0 && x1:0:0 > 0 && x:0:0 > 0 && x7:0:0 + 1 <= x1:0:0 && x6:0:0 + 1 <= x1:0:0 && x5:0:0 <= x3:0:0 && x5:0:0 <= x2:0:0 && x4:0:0 + 1 <= x1:0:0 && x:0:0 >= x5:0:0 ---------------------------------------- (57) YES