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, 296 ms] (4) IRSwT (5) IntTRSCompressionProof [EQUIVALENT, 19 ms] (6) IRSwT (7) IRSwTChainingProof [EQUIVALENT, 0 ms] (8) IRSwT (9) IRSwTTerminationDigraphProof [EQUIVALENT, 78 ms] (10) IRSwT (11) IntTRSCompressionProof [EQUIVALENT, 0 ms] (12) IRSwT (13) IRSwTChainingProof [EQUIVALENT, 0 ms] (14) IRSwT (15) IRSwTTerminationDigraphProof [EQUIVALENT, 77 ms] (16) IRSwT (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IRSwT (19) IRSwTChainingProof [EQUIVALENT, 0 ms] (20) IRSwT (21) IRSwTTerminationDigraphProof [EQUIVALENT, 231 ms] (22) AND (23) IRSwT (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IRSwT (26) TempFilterProof [SOUND, 8 ms] (27) IntTRS (28) RankingReductionPairProof [EQUIVALENT, 0 ms] (29) YES (30) IRSwT (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] (32) IRSwT (33) TempFilterProof [SOUND, 115 ms] (34) IntTRS (35) PolynomialOrderProcessor [EQUIVALENT, 9 ms] (36) AND (37) IntTRS (38) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (39) IntTRS (40) RankingReductionPairProof [EQUIVALENT, 0 ms] (41) IntTRS (42) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (43) IntTRS (44) RankingReductionPairProof [EQUIVALENT, 0 ms] (45) YES (46) IntTRS (47) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (48) AND (49) IntTRS (50) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (51) IntTRS (52) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (53) YES (54) IntTRS (55) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (56) IntTRS (57) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (58) YES (59) IRSwT (60) IntTRSCompressionProof [EQUIVALENT, 0 ms] (61) IRSwT (62) TempFilterProof [SOUND, 3 ms] (63) IntTRS (64) RankingReductionPairProof [EQUIVALENT, 0 ms] (65) YES (66) IRSwT (67) IntTRSCompressionProof [EQUIVALENT, 0 ms] (68) IRSwT (69) TempFilterProof [SOUND, 5 ms] (70) IntTRS (71) RankingReductionPairProof [EQUIVALENT, 0 ms] (72) YES ---------------------------------------- (0) Obligation: Rules: l0(xHAT0, yHAT0) -> l1(xHATpost, yHATpost) :|: yHAT0 = yHATpost && xHATpost = 1 + xHAT0 && 1 + xHAT0 <= yHAT0 && -1 * xHAT0 <= yHAT0 l0(x, x1) -> l1(x2, x3) :|: x = x2 && x3 = 1 + x1 && 1 + x <= -1 * x1 && x <= x1 l0(x4, x5) -> l1(x6, x7) :|: x5 = x7 && x6 = -1 + x4 && 1 + x5 <= x4 && x5 <= 1 - x4 l0(x8, x9) -> l1(x10, x11) :|: x8 = x10 && x11 = -1 + x9 && 2 - x9 <= x8 && x9 <= x8 l1(x12, x13) -> l2(x14, x15) :|: x13 = x15 && x12 = x14 && 1 + x12 <= 0 l1(x16, x17) -> l2(x18, x19) :|: x17 = x19 && x16 = x18 && 1 <= x16 l2(x20, x21) -> l0(x22, x23) :|: x21 = x23 && x20 = x22 && 1 + x21 <= 0 l2(x24, x25) -> l0(x26, x27) :|: x25 = x27 && x24 = x26 && 1 <= x25 l3(x28, x29) -> l1(x30, x31) :|: x29 = x31 && x28 = x30 l4(x32, x33) -> l3(x34, x35) :|: x33 = x35 && x32 = x34 Start term: l4(xHAT0, yHAT0) ---------------------------------------- (1) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (2) Obligation: Rules: l0(xHAT0, yHAT0) -> l1(xHATpost, yHATpost) :|: yHAT0 = yHATpost && xHATpost = 1 + xHAT0 && 1 + xHAT0 <= yHAT0 && -1 * xHAT0 <= yHAT0 l0(x, x1) -> l1(x2, x3) :|: x = x2 && x3 = 1 + x1 && 1 + x <= -1 * x1 && x <= x1 l0(x4, x5) -> l1(x6, x7) :|: x5 = x7 && x6 = -1 + x4 && 1 + x5 <= x4 && x5 <= 1 - x4 l0(x8, x9) -> l1(x10, x11) :|: x8 = x10 && x11 = -1 + x9 && 2 - x9 <= x8 && x9 <= x8 l1(x12, x13) -> l2(x14, x15) :|: x13 = x15 && x12 = x14 && 1 + x12 <= 0 l1(x16, x17) -> l2(x18, x19) :|: x17 = x19 && x16 = x18 && 1 <= x16 l2(x20, x21) -> l0(x22, x23) :|: x21 = x23 && x20 = x22 && 1 + x21 <= 0 l2(x24, x25) -> l0(x26, x27) :|: x25 = x27 && x24 = x26 && 1 <= x25 l3(x28, x29) -> l1(x30, x31) :|: x29 = x31 && x28 = x30 l4(x32, x33) -> l3(x34, x35) :|: x33 = x35 && x32 = x34 Start term: l4(xHAT0, yHAT0) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) l0(xHAT0, yHAT0) -> l1(xHATpost, yHATpost) :|: yHAT0 = yHATpost && xHATpost = 1 + xHAT0 && 1 + xHAT0 <= yHAT0 && -1 * xHAT0 <= yHAT0 (2) l0(x, x1) -> l1(x2, x3) :|: x = x2 && x3 = 1 + x1 && 1 + x <= -1 * x1 && x <= x1 (3) l0(x4, x5) -> l1(x6, x7) :|: x5 = x7 && x6 = -1 + x4 && 1 + x5 <= x4 && x5 <= 1 - x4 (4) l0(x8, x9) -> l1(x10, x11) :|: x8 = x10 && x11 = -1 + x9 && 2 - x9 <= x8 && x9 <= x8 (5) l1(x12, x13) -> l2(x14, x15) :|: x13 = x15 && x12 = x14 && 1 + x12 <= 0 (6) l1(x16, x17) -> l2(x18, x19) :|: x17 = x19 && x16 = x18 && 1 <= x16 (7) l2(x20, x21) -> l0(x22, x23) :|: x21 = x23 && x20 = x22 && 1 + x21 <= 0 (8) l2(x24, x25) -> l0(x26, x27) :|: x25 = x27 && x24 = x26 && 1 <= x25 (9) l3(x28, x29) -> l1(x30, x31) :|: x29 = x31 && x28 = x30 (10) l4(x32, x33) -> l3(x34, x35) :|: x33 = x35 && x32 = x34 Arcs: (1) -> (5), (6) (2) -> (5) (3) -> (5), (6) (4) -> (6) (5) -> (7), (8) (6) -> (7), (8) (7) -> (2), (3), (4) (8) -> (1), (2), (4) (9) -> (5), (6) (10) -> (9) This digraph is fully evaluated! ---------------------------------------- (4) Obligation: Termination digraph: Nodes: (1) l0(xHAT0, yHAT0) -> l1(xHATpost, yHATpost) :|: yHAT0 = yHATpost && xHATpost = 1 + xHAT0 && 1 + xHAT0 <= yHAT0 && -1 * xHAT0 <= yHAT0 (2) l2(x24, x25) -> l0(x26, x27) :|: x25 = x27 && x24 = x26 && 1 <= x25 (3) l1(x12, x13) -> l2(x14, x15) :|: x13 = x15 && x12 = x14 && 1 + x12 <= 0 (4) l0(x, x1) -> l1(x2, x3) :|: x = x2 && x3 = 1 + x1 && 1 + x <= -1 * x1 && x <= x1 (5) l2(x20, x21) -> l0(x22, x23) :|: x21 = x23 && x20 = x22 && 1 + x21 <= 0 (6) l1(x16, x17) -> l2(x18, x19) :|: x17 = x19 && x16 = x18 && 1 <= x16 (7) l0(x8, x9) -> l1(x10, x11) :|: x8 = x10 && x11 = -1 + x9 && 2 - x9 <= x8 && x9 <= x8 (8) l0(x4, x5) -> l1(x6, x7) :|: x5 = x7 && x6 = -1 + x4 && 1 + x5 <= x4 && x5 <= 1 - x4 Arcs: (1) -> (3), (6) (2) -> (1), (4), (7) (3) -> (2), (5) (4) -> (3) (5) -> (4), (7), (8) (6) -> (2), (5) (7) -> (6) (8) -> (3), (6) This digraph is fully evaluated! ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: l2(x24:0, x25:0) -> l0(x24:0, x25:0) :|: x25:0 > 0 l1(x12:0, x13:0) -> l2(x12:0, x13:0) :|: x12:0 < 0 l0(x10:0, x9:0) -> l1(x10:0, -1 + x9:0) :|: x10:0 >= 2 - x9:0 l0(xHAT0:0, yHAT0:0) -> l1(1 + xHAT0:0, yHAT0:0) :|: yHAT0:0 >= -1 * xHAT0:0 && yHAT0:0 >= 1 + xHAT0:0 l0(x4:0, x5:0) -> l1(-1 + x4:0, x5:0) :|: x5:0 <= 1 - x4:0 && x4:0 >= 1 + x5:0 l0(x2:0, x1:0) -> l1(x2:0, 1 + x1:0) :|: x2:0 <= x1:0 && 1 + x2:0 <= -1 * x1:0 l2(x20:0, x21:0) -> l0(x20:0, x21:0) :|: x21:0 < 0 l1(x16:0, x17:0) -> l2(x16:0, x17:0) :|: x16:0 > 0 ---------------------------------------- (7) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (8) Obligation: Rules: l1(x12:0, x13:0) -> l2(x12:0, x13:0) :|: x12:0 < 0 l0(x10:0, x9:0) -> l1(x10:0, -1 + x9:0) :|: x10:0 >= 2 - x9:0 l2(x8, x9) -> l1(x8, -1 + x9) :|: TRUE && x9 >= 1 && x8 + x9 >= 2 l0(xHAT0:0, yHAT0:0) -> l1(1 + xHAT0:0, yHAT0:0) :|: yHAT0:0 >= -1 * xHAT0:0 && yHAT0:0 >= 1 + xHAT0:0 l2(x12, x13) -> l1(1 + x12, x13) :|: TRUE && x13 >= 1 && x13 + x12 >= 0 && x13 + -1 * x12 >= 1 l0(x4:0, x5:0) -> l1(-1 + x4:0, x5:0) :|: x5:0 <= 1 - x4:0 && x4:0 >= 1 + x5:0 l2(x16, x17) -> l1(-1 + x16, x17) :|: TRUE && x17 >= 1 && x17 + x16 <= 1 && x16 + -1 * x17 >= 1 l0(x2:0, x1:0) -> l1(x2:0, 1 + x1:0) :|: x2:0 <= x1:0 && 1 + x2:0 <= -1 * x1:0 l2(x20, x21) -> l1(x20, 1 + x21) :|: TRUE && x21 >= 1 && x20 + -1 * x21 <= 0 && x20 + x21 <= -1 l2(x20:0, x21:0) -> l0(x20:0, x21:0) :|: x21:0 < 0 l1(x16:0, x17:0) -> l2(x16:0, x17:0) :|: x16:0 > 0 ---------------------------------------- (9) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) l1(x12:0, x13:0) -> l2(x12:0, x13:0) :|: x12:0 < 0 (2) l0(x10:0, x9:0) -> l1(x10:0, -1 + x9:0) :|: x10:0 >= 2 - x9:0 (3) l2(x8, x9) -> l1(x8, -1 + x9) :|: TRUE && x9 >= 1 && x8 + x9 >= 2 (4) l0(xHAT0:0, yHAT0:0) -> l1(1 + xHAT0:0, yHAT0:0) :|: yHAT0:0 >= -1 * xHAT0:0 && yHAT0:0 >= 1 + xHAT0:0 (5) l2(x12, x13) -> l1(1 + x12, x13) :|: TRUE && x13 >= 1 && x13 + x12 >= 0 && x13 + -1 * x12 >= 1 (6) l0(x4:0, x5:0) -> l1(-1 + x4:0, x5:0) :|: x5:0 <= 1 - x4:0 && x4:0 >= 1 + x5:0 (7) l2(x16, x17) -> l1(-1 + x16, x17) :|: TRUE && x17 >= 1 && x17 + x16 <= 1 && x16 + -1 * x17 >= 1 (8) l0(x2:0, x1:0) -> l1(x2:0, 1 + x1:0) :|: x2:0 <= x1:0 && 1 + x2:0 <= -1 * x1:0 (9) l2(x20, x21) -> l1(x20, 1 + x21) :|: TRUE && x21 >= 1 && x20 + -1 * x21 <= 0 && x20 + x21 <= -1 (10) l2(x20:0, x21:0) -> l0(x20:0, x21:0) :|: x21:0 < 0 (11) l1(x16:0, x17:0) -> l2(x16:0, x17:0) :|: x16:0 > 0 Arcs: (1) -> (3), (5), (9), (10) (2) -> (1), (11) (3) -> (1), (11) (4) -> (1), (11) (5) -> (1), (11) (6) -> (1), (11) (8) -> (1) (9) -> (1) (10) -> (2), (6), (8) (11) -> (3), (5), (10) This digraph is fully evaluated! ---------------------------------------- (10) Obligation: Termination digraph: Nodes: (1) l1(x12:0, x13:0) -> l2(x12:0, x13:0) :|: x12:0 < 0 (2) l2(x20, x21) -> l1(x20, 1 + x21) :|: TRUE && x21 >= 1 && x20 + -1 * x21 <= 0 && x20 + x21 <= -1 (3) l0(x2:0, x1:0) -> l1(x2:0, 1 + x1:0) :|: x2:0 <= x1:0 && 1 + x2:0 <= -1 * x1:0 (4) l0(x10:0, x9:0) -> l1(x10:0, -1 + x9:0) :|: x10:0 >= 2 - x9:0 (5) l2(x20:0, x21:0) -> l0(x20:0, x21:0) :|: x21:0 < 0 (6) l1(x16:0, x17:0) -> l2(x16:0, x17:0) :|: x16:0 > 0 (7) l0(x4:0, x5:0) -> l1(-1 + x4:0, x5:0) :|: x5:0 <= 1 - x4:0 && x4:0 >= 1 + x5:0 (8) l2(x12, x13) -> l1(1 + x12, x13) :|: TRUE && x13 >= 1 && x13 + x12 >= 0 && x13 + -1 * x12 >= 1 (9) l2(x8, x9) -> l1(x8, -1 + x9) :|: TRUE && x9 >= 1 && x8 + x9 >= 2 Arcs: (1) -> (2), (5), (8), (9) (2) -> (1) (3) -> (1) (4) -> (1), (6) (5) -> (3), (4), (7) (6) -> (5), (8), (9) (7) -> (1), (6) (8) -> (1), (6) (9) -> (1), (6) This digraph is fully evaluated! ---------------------------------------- (11) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (12) Obligation: Rules: l2(x8:0, x9:0) -> l1(x8:0, -1 + x9:0) :|: x8:0 + x9:0 >= 2 && x9:0 > 0 l1(x12:0:0, x13:0:0) -> l2(x12:0:0, x13:0:0) :|: x12:0:0 < 0 l2(x12:0, x13:0) -> l1(1 + x12:0, x13:0) :|: x13:0 + x12:0 >= 0 && x13:0 > 0 && x13:0 + -1 * x12:0 >= 1 l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x21:0:0 >= x20:0:0 && 1 + x20:0:0 <= -1 * x21:0:0 && x21:0:0 < 0 l2(x20:0, x21:0) -> l1(x20:0, 1 + x21:0) :|: x20:0 + -1 * x21:0 <= 0 && x21:0 > 0 && x20:0 + x21:0 <= -1 l1(x16:0:0, x17:0:0) -> l2(x16:0:0, x17:0:0) :|: x16:0:0 > 0 l2(x, x1) -> l1(x, -1 + x1) :|: x1 < 0 && x >= 2 - x1 l2(x2, x3) -> l1(-1 + x2, x3) :|: x3 <= 1 - x2 && x2 >= 1 + x3 && x3 < 0 ---------------------------------------- (13) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (14) Obligation: Rules: l1(x12:0:0, x13:0:0) -> l2(x12:0:0, x13:0:0) :|: x12:0:0 < 0 l2(x8, x9) -> l2(x8, -1 + x9) :|: TRUE && x8 + x9 >= 2 && x9 >= 1 && x8 <= -1 l2(x12:0, x13:0) -> l1(1 + x12:0, x13:0) :|: x13:0 + x12:0 >= 0 && x13:0 > 0 && x13:0 + -1 * x12:0 >= 1 l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x21:0:0 >= x20:0:0 && 1 + x20:0:0 <= -1 * x21:0:0 && x21:0:0 < 0 l2(x20:0, x21:0) -> l1(x20:0, 1 + x21:0) :|: x20:0 + -1 * x21:0 <= 0 && x21:0 > 0 && x20:0 + x21:0 <= -1 l1(x16:0:0, x17:0:0) -> l2(x16:0:0, x17:0:0) :|: x16:0:0 > 0 l2(x24, x25) -> l2(x24, -1 + x25) :|: TRUE && x24 + x25 >= 2 && x25 >= 1 && x24 >= 1 l2(x, x1) -> l1(x, -1 + x1) :|: x1 < 0 && x >= 2 - x1 l2(x2, x3) -> l1(-1 + x2, x3) :|: x3 <= 1 - x2 && x2 >= 1 + x3 && x3 < 0 ---------------------------------------- (15) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) l1(x12:0:0, x13:0:0) -> l2(x12:0:0, x13:0:0) :|: x12:0:0 < 0 (2) l2(x8, x9) -> l2(x8, -1 + x9) :|: TRUE && x8 + x9 >= 2 && x9 >= 1 && x8 <= -1 (3) l2(x12:0, x13:0) -> l1(1 + x12:0, x13:0) :|: x13:0 + x12:0 >= 0 && x13:0 > 0 && x13:0 + -1 * x12:0 >= 1 (4) l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x21:0:0 >= x20:0:0 && 1 + x20:0:0 <= -1 * x21:0:0 && x21:0:0 < 0 (5) l2(x20:0, x21:0) -> l1(x20:0, 1 + x21:0) :|: x20:0 + -1 * x21:0 <= 0 && x21:0 > 0 && x20:0 + x21:0 <= -1 (6) l1(x16:0:0, x17:0:0) -> l2(x16:0:0, x17:0:0) :|: x16:0:0 > 0 (7) l2(x24, x25) -> l2(x24, -1 + x25) :|: TRUE && x24 + x25 >= 2 && x25 >= 1 && x24 >= 1 (8) l2(x, x1) -> l1(x, -1 + x1) :|: x1 < 0 && x >= 2 - x1 (9) l2(x2, x3) -> l1(-1 + x2, x3) :|: x3 <= 1 - x2 && x2 >= 1 + x3 && x3 < 0 Arcs: (1) -> (2), (3), (4), (5), (9) (2) -> (2), (3) (3) -> (1), (6) (4) -> (1) (5) -> (1) (6) -> (3), (7), (8), (9) (7) -> (3), (7) (8) -> (6) (9) -> (1), (6) This digraph is fully evaluated! ---------------------------------------- (16) Obligation: Termination digraph: Nodes: (1) l1(x12:0:0, x13:0:0) -> l2(x12:0:0, x13:0:0) :|: x12:0:0 < 0 (2) l2(x20:0, x21:0) -> l1(x20:0, 1 + x21:0) :|: x20:0 + -1 * x21:0 <= 0 && x21:0 > 0 && x20:0 + x21:0 <= -1 (3) l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x21:0:0 >= x20:0:0 && 1 + x20:0:0 <= -1 * x21:0:0 && x21:0:0 < 0 (4) l2(x12:0, x13:0) -> l1(1 + x12:0, x13:0) :|: x13:0 + x12:0 >= 0 && x13:0 > 0 && x13:0 + -1 * x12:0 >= 1 (5) l2(x24, x25) -> l2(x24, -1 + x25) :|: TRUE && x24 + x25 >= 2 && x25 >= 1 && x24 >= 1 (6) l1(x16:0:0, x17:0:0) -> l2(x16:0:0, x17:0:0) :|: x16:0:0 > 0 (7) l2(x2, x3) -> l1(-1 + x2, x3) :|: x3 <= 1 - x2 && x2 >= 1 + x3 && x3 < 0 (8) l2(x, x1) -> l1(x, -1 + x1) :|: x1 < 0 && x >= 2 - x1 (9) l2(x8, x9) -> l2(x8, -1 + x9) :|: TRUE && x8 + x9 >= 2 && x9 >= 1 && x8 <= -1 Arcs: (1) -> (2), (3), (4), (7), (9) (2) -> (1) (3) -> (1) (4) -> (1), (6) (5) -> (4), (5) (6) -> (4), (5), (7), (8) (7) -> (1), (6) (8) -> (6) (9) -> (4), (9) This digraph is fully evaluated! ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: l1(x12:0:0:0, x13:0:0:0) -> l2(x12:0:0:0, x13:0:0:0) :|: x12:0:0:0 < 0 l2(x20:0:0:0, x21:0:0:0) -> l1(x20:0:0:0, 1 + x21:0:0:0) :|: x21:0:0:0 >= x20:0:0:0 && 1 + x20:0:0:0 <= -1 * x21:0:0:0 && x21:0:0:0 < 0 l2(x24:0, x25:0) -> l2(x24:0, -1 + x25:0) :|: x25:0 > 0 && x24:0 + x25:0 >= 2 && x24:0 > 0 l1(x16:0:0:0, x17:0:0:0) -> l2(x16:0:0:0, x17:0:0:0) :|: x16:0:0:0 > 0 l2(x:0, x1:0) -> l1(x:0, -1 + x1:0) :|: x1:0 < 0 && x:0 >= 2 - x1:0 l2(x8:0, x9:0) -> l2(x8:0, -1 + x9:0) :|: x9:0 > 0 && x8:0 + x9:0 >= 2 && x8:0 < 0 l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x20:0:0 + -1 * x21:0:0 <= 0 && x21:0:0 > 0 && x20:0:0 + x21:0:0 <= -1 l2(x2:0, x3:0) -> l1(-1 + x2:0, x3:0) :|: x3:0 <= 1 - x2:0 && x2:0 >= 1 + x3:0 && x3:0 < 0 l2(x12:0:0, x13:0:0) -> l1(1 + x12:0:0, x13:0:0) :|: x13:0:0 + x12:0:0 >= 0 && x13:0:0 > 0 && x13:0:0 + -1 * x12:0:0 >= 1 ---------------------------------------- (19) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (20) Obligation: Rules: l2(x20:0:0:0, x21:0:0:0) -> l1(x20:0:0:0, 1 + x21:0:0:0) :|: x21:0:0:0 >= x20:0:0:0 && 1 + x20:0:0:0 <= -1 * x21:0:0:0 && x21:0:0:0 < 0 l1(x4, x5) -> l1(x4, 1 + x5) :|: TRUE && x4 <= -1 && x5 + -1 * x4 >= 0 && x4 + x5 <= -1 && x5 <= -1 l2(x24:0, x25:0) -> l2(x24:0, -1 + x25:0) :|: x25:0 > 0 && x24:0 + x25:0 >= 2 && x24:0 > 0 l1(x16:0:0:0, x17:0:0:0) -> l2(x16:0:0:0, x17:0:0:0) :|: x16:0:0:0 > 0 l2(x:0, x1:0) -> l1(x:0, -1 + x1:0) :|: x1:0 < 0 && x:0 >= 2 - x1:0 l1(x16, x17) -> l1(x16, -1 + x17) :|: TRUE && x16 <= -1 && x17 <= -1 && x16 + x17 >= 2 l2(x8:0, x9:0) -> l2(x8:0, -1 + x9:0) :|: x9:0 > 0 && x8:0 + x9:0 >= 2 && x8:0 < 0 l1(x20, x21) -> l2(x20, -1 + x21) :|: TRUE && x20 <= -1 && x21 >= 1 && x20 + x21 >= 2 l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x20:0:0 + -1 * x21:0:0 <= 0 && x21:0:0 > 0 && x20:0:0 + x21:0:0 <= -1 l1(x24, x25) -> l1(x24, 1 + x25) :|: TRUE && x24 <= -1 && x24 + -1 * x25 <= 0 && x25 >= 1 && x24 + x25 <= -1 l2(x2:0, x3:0) -> l1(-1 + x2:0, x3:0) :|: x3:0 <= 1 - x2:0 && x2:0 >= 1 + x3:0 && x3:0 < 0 l1(x28, x29) -> l1(-1 + x28, x29) :|: TRUE && x28 <= -1 && x29 + x28 <= 1 && x28 + -1 * x29 >= 1 && x29 <= -1 l2(x12:0:0, x13:0:0) -> l1(1 + x12:0:0, x13:0:0) :|: x13:0:0 + x12:0:0 >= 0 && x13:0:0 > 0 && x13:0:0 + -1 * x12:0:0 >= 1 l1(x32, x33) -> l1(1 + x32, x33) :|: TRUE && x32 <= -1 && x33 + x32 >= 0 && x33 >= 1 && x33 + -1 * x32 >= 1 ---------------------------------------- (21) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) l2(x20:0:0:0, x21:0:0:0) -> l1(x20:0:0:0, 1 + x21:0:0:0) :|: x21:0:0:0 >= x20:0:0:0 && 1 + x20:0:0:0 <= -1 * x21:0:0:0 && x21:0:0:0 < 0 (2) l1(x4, x5) -> l1(x4, 1 + x5) :|: TRUE && x4 <= -1 && x5 + -1 * x4 >= 0 && x4 + x5 <= -1 && x5 <= -1 (3) l2(x24:0, x25:0) -> l2(x24:0, -1 + x25:0) :|: x25:0 > 0 && x24:0 + x25:0 >= 2 && x24:0 > 0 (4) l1(x16:0:0:0, x17:0:0:0) -> l2(x16:0:0:0, x17:0:0:0) :|: x16:0:0:0 > 0 (5) l2(x:0, x1:0) -> l1(x:0, -1 + x1:0) :|: x1:0 < 0 && x:0 >= 2 - x1:0 (6) l1(x16, x17) -> l1(x16, -1 + x17) :|: TRUE && x16 <= -1 && x17 <= -1 && x16 + x17 >= 2 (7) l2(x8:0, x9:0) -> l2(x8:0, -1 + x9:0) :|: x9:0 > 0 && x8:0 + x9:0 >= 2 && x8:0 < 0 (8) l1(x20, x21) -> l2(x20, -1 + x21) :|: TRUE && x20 <= -1 && x21 >= 1 && x20 + x21 >= 2 (9) l2(x20:0:0, x21:0:0) -> l1(x20:0:0, 1 + x21:0:0) :|: x20:0:0 + -1 * x21:0:0 <= 0 && x21:0:0 > 0 && x20:0:0 + x21:0:0 <= -1 (10) l1(x24, x25) -> l1(x24, 1 + x25) :|: TRUE && x24 <= -1 && x24 + -1 * x25 <= 0 && x25 >= 1 && x24 + x25 <= -1 (11) l2(x2:0, x3:0) -> l1(-1 + x2:0, x3:0) :|: x3:0 <= 1 - x2:0 && x2:0 >= 1 + x3:0 && x3:0 < 0 (12) l1(x28, x29) -> l1(-1 + x28, x29) :|: TRUE && x28 <= -1 && x29 + x28 <= 1 && x28 + -1 * x29 >= 1 && x29 <= -1 (13) l2(x12:0:0, x13:0:0) -> l1(1 + x12:0:0, x13:0:0) :|: x13:0:0 + x12:0:0 >= 0 && x13:0:0 > 0 && x13:0:0 + -1 * x12:0:0 >= 1 (14) l1(x32, x33) -> l1(1 + x32, x33) :|: TRUE && x32 <= -1 && x33 + x32 >= 0 && x33 >= 1 && x33 + -1 * x32 >= 1 Arcs: (1) -> (2) (2) -> (2) (3) -> (3), (13) (4) -> (3), (5), (11), (13) (5) -> (4) (7) -> (7), (13) (8) -> (7), (13) (9) -> (10), (14) (10) -> (10), (14) (11) -> (2), (4), (12) (12) -> (2), (12) (13) -> (4), (8), (14) (14) -> (8), (14) This digraph is fully evaluated! ---------------------------------------- (22) Complex Obligation (AND) ---------------------------------------- (23) Obligation: Termination digraph: Nodes: (1) l1(x24, x25) -> l1(x24, 1 + x25) :|: TRUE && x24 <= -1 && x24 + -1 * x25 <= 0 && x25 >= 1 && x24 + x25 <= -1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: l1(x24:0, x25:0) -> l1(x24:0, 1 + x25:0) :|: x25:0 > 0 && x24:0 + x25:0 <= -1 && x24:0 < 0 && x24:0 + -1 * x25:0 <= 0 ---------------------------------------- (26) TempFilterProof (SOUND) Used the following sort dictionary for filtering: l1(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (27) Obligation: Rules: l1(x24:0, x25:0) -> l1(x24:0, c) :|: c = 1 + x25:0 && (x25:0 > 0 && x24:0 + x25:0 <= -1 && x24:0 < 0 && x24:0 + -1 * x25:0 <= 0) ---------------------------------------- (28) RankingReductionPairProof (EQUIVALENT) Interpretation: [ l1 ] = -1*l1_2 + -1*l1_1 The following rules are decreasing: l1(x24:0, x25:0) -> l1(x24:0, c) :|: c = 1 + x25:0 && (x25:0 > 0 && x24:0 + x25:0 <= -1 && x24:0 < 0 && x24:0 + -1 * x25:0 <= 0) The following rules are bounded: l1(x24:0, x25:0) -> l1(x24:0, c) :|: c = 1 + x25:0 && (x25:0 > 0 && x24:0 + x25:0 <= -1 && x24:0 < 0 && x24:0 + -1 * x25:0 <= 0) ---------------------------------------- (29) YES ---------------------------------------- (30) Obligation: Termination digraph: Nodes: (1) l2(x24:0, x25:0) -> l2(x24:0, -1 + x25:0) :|: x25:0 > 0 && x24:0 + x25:0 >= 2 && x24:0 > 0 (2) l1(x16:0:0:0, x17:0:0:0) -> l2(x16:0:0:0, x17:0:0:0) :|: x16:0:0:0 > 0 (3) l2(x12:0:0, x13:0:0) -> l1(1 + x12:0:0, x13:0:0) :|: x13:0:0 + x12:0:0 >= 0 && x13:0:0 > 0 && x13:0:0 + -1 * x12:0:0 >= 1 (4) l2(x8:0, x9:0) -> l2(x8:0, -1 + x9:0) :|: x9:0 > 0 && x8:0 + x9:0 >= 2 && x8:0 < 0 (5) l1(x20, x21) -> l2(x20, -1 + x21) :|: TRUE && x20 <= -1 && x21 >= 1 && x20 + x21 >= 2 (6) l1(x32, x33) -> l1(1 + x32, x33) :|: TRUE && x32 <= -1 && x33 + x32 >= 0 && x33 >= 1 && x33 + -1 * x32 >= 1 (7) l2(x2:0, x3:0) -> l1(-1 + x2:0, x3:0) :|: x3:0 <= 1 - x2:0 && x2:0 >= 1 + x3:0 && x3:0 < 0 (8) l2(x:0, x1:0) -> l1(x:0, -1 + x1:0) :|: x1:0 < 0 && x:0 >= 2 - x1:0 Arcs: (1) -> (1), (3) (2) -> (1), (3), (7), (8) (3) -> (2), (5), (6) (4) -> (3), (4) (5) -> (3), (4) (6) -> (5), (6) (7) -> (2) (8) -> (2) This digraph is fully evaluated! ---------------------------------------- (31) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (32) Obligation: Rules: l2(x8:0:0, x9:0:0) -> l2(x8:0:0, -1 + x9:0:0) :|: x9:0:0 > 0 && x8:0:0 + x9:0:0 >= 2 && x8:0:0 < 0 l2(x24:0:0, x25:0:0) -> l2(x24:0:0, -1 + x25:0:0) :|: x25:0:0 > 0 && x24:0:0 + x25:0:0 >= 2 && x24:0:0 > 0 l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l2(x:0:0, x1:0:0) -> l1(x:0:0, -1 + x1:0:0) :|: x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0 l1(x32:0, x33:0) -> l1(1 + x32:0, x33:0) :|: x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0 l1(x20:0, x21:0) -> l2(x20:0, -1 + x21:0) :|: x21:0 > 0 && x20:0 < 0 && x20:0 + x21:0 >= 2 l2(x2:0:0, x3:0:0) -> l1(-1 + x2:0:0, x3:0:0) :|: x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0 l2(x12:0:0:0, x13:0:0:0) -> l1(1 + x12:0:0:0, x13:0:0:0) :|: x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1 ---------------------------------------- (33) TempFilterProof (SOUND) Used the following sort dictionary for filtering: l2(INTEGER, VARIABLE) l1(INTEGER, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (34) Obligation: Rules: l2(x8:0:0, x9:0:0) -> l2(x8:0:0, c) :|: c = -1 + x9:0:0 && (x9:0:0 > 0 && x8:0:0 + x9:0:0 >= 2 && x8:0:0 < 0) l2(x24:0:0, x25:0:0) -> l2(x24:0:0, c1) :|: c1 = -1 + x25:0:0 && (x25:0:0 > 0 && x24:0:0 + x25:0:0 >= 2 && x24:0:0 > 0) l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) l1(x20:0, x21:0) -> l2(x20:0, c4) :|: c4 = -1 + x21:0 && (x21:0 > 0 && x20:0 < 0 && x20:0 + x21:0 >= 2) l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) ---------------------------------------- (35) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l2(x, x1)] = -1 + x1 [l1(x2, x3)] = -1 + x3 The following rules are decreasing: l2(x8:0:0, x9:0:0) -> l2(x8:0:0, c) :|: c = -1 + x9:0:0 && (x9:0:0 > 0 && x8:0:0 + x9:0:0 >= 2 && x8:0:0 < 0) l2(x24:0:0, x25:0:0) -> l2(x24:0:0, c1) :|: c1 = -1 + x25:0:0 && (x25:0:0 > 0 && x24:0:0 + x25:0:0 >= 2 && x24:0:0 > 0) l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) l1(x20:0, x21:0) -> l2(x20:0, c4) :|: c4 = -1 + x21:0 && (x21:0 > 0 && x20:0 < 0 && x20:0 + x21:0 >= 2) The following rules are bounded: l2(x8:0:0, x9:0:0) -> l2(x8:0:0, c) :|: c = -1 + x9:0:0 && (x9:0:0 > 0 && x8:0:0 + x9:0:0 >= 2 && x8:0:0 < 0) l2(x24:0:0, x25:0:0) -> l2(x24:0:0, c1) :|: c1 = -1 + x25:0:0 && (x25:0:0 > 0 && x24:0:0 + x25:0:0 >= 2 && x24:0:0 > 0) l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) l1(x20:0, x21:0) -> l2(x20:0, c4) :|: c4 = -1 + x21:0 && (x21:0 > 0 && x20:0 < 0 && x20:0 + x21:0 >= 2) l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) ---------------------------------------- (36) Complex Obligation (AND) ---------------------------------------- (37) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) ---------------------------------------- (38) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = -2 + x - x*x1 - 6*x1 + x1^2 [l2(x2, x3)] = -2 + x2 - x2*x3 - 6*x3 + x3^2 The following rules are decreasing: l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) The following rules are bounded: l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) ---------------------------------------- (39) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) ---------------------------------------- (40) RankingReductionPairProof (EQUIVALENT) Interpretation: [ l1 ] = -2*l1_1 + 2*l1_2 + 1 [ l2 ] = -2*l2_1 + 2*l2_2 The following rules are decreasing: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) The following rules are bounded: l2(x12:0:0:0, x13:0:0:0) -> l1(c6, x13:0:0:0) :|: c6 = 1 + x12:0:0:0 && (x13:0:0:0 + x12:0:0:0 >= 0 && x13:0:0:0 > 0 && x13:0:0:0 + -1 * x12:0:0:0 >= 1) ---------------------------------------- (41) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) ---------------------------------------- (42) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = 1 [l2(x2, x3)] = 0 The following rules are decreasing: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 The following rules are bounded: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) ---------------------------------------- (43) Obligation: Rules: l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) ---------------------------------------- (44) RankingReductionPairProof (EQUIVALENT) Interpretation: [ l1 ] = -1*l1_1 The following rules are decreasing: l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) The following rules are bounded: l1(x32:0, x33:0) -> l1(c3, x33:0) :|: c3 = 1 + x32:0 && (x33:0 > 0 && x33:0 + -1 * x32:0 >= 1 && x32:0 < 0 && x33:0 + x32:0 >= 0) ---------------------------------------- (45) YES ---------------------------------------- (46) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) ---------------------------------------- (47) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = -2 + x [l2(x2, x3)] = -2 + x2 The following rules are decreasing: l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) The following rules are bounded: l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) ---------------------------------------- (48) Complex Obligation (AND) ---------------------------------------- (49) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) ---------------------------------------- (50) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = -2 + x + x1 [l2(x2, x3)] = -2 + x2 + x3 The following rules are decreasing: l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) The following rules are bounded: l2(x:0:0, x1:0:0) -> l1(x:0:0, c2) :|: c2 = -1 + x1:0:0 && (x1:0:0 < 0 && x:0:0 >= 2 - x1:0:0) ---------------------------------------- (51) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 ---------------------------------------- (52) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = 1 [l2(x2, x3)] = 0 The following rules are decreasing: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 The following rules are bounded: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 ---------------------------------------- (53) YES ---------------------------------------- (54) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) ---------------------------------------- (55) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = -2 + x - 2*x1 [l2(x2, x3)] = -2 + x2 - 2*x3 The following rules are decreasing: l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) The following rules are bounded: l2(x2:0:0, x3:0:0) -> l1(c5, x3:0:0) :|: c5 = -1 + x2:0:0 && (x3:0:0 <= 1 - x2:0:0 && x2:0:0 >= 1 + x3:0:0 && x3:0:0 < 0) ---------------------------------------- (56) Obligation: Rules: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 ---------------------------------------- (57) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [l1(x, x1)] = 1 [l2(x2, x3)] = 0 The following rules are decreasing: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 The following rules are bounded: l1(x16:0:0:0:0, x17:0:0:0:0) -> l2(x16:0:0:0:0, x17:0:0:0:0) :|: x16:0:0:0:0 > 0 ---------------------------------------- (58) YES ---------------------------------------- (59) Obligation: Termination digraph: Nodes: (1) l1(x28, x29) -> l1(-1 + x28, x29) :|: TRUE && x28 <= -1 && x29 + x28 <= 1 && x28 + -1 * x29 >= 1 && x29 <= -1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (60) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (61) Obligation: Rules: l1(x28:0, x29:0) -> l1(-1 + x28:0, x29:0) :|: x28:0 + -1 * x29:0 >= 1 && x29:0 < 0 && x28:0 < 0 && x29:0 + x28:0 <= 1 ---------------------------------------- (62) TempFilterProof (SOUND) Used the following sort dictionary for filtering: l1(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (63) Obligation: Rules: l1(x28:0, x29:0) -> l1(c, x29:0) :|: c = -1 + x28:0 && (x28:0 + -1 * x29:0 >= 1 && x29:0 < 0 && x28:0 < 0 && x29:0 + x28:0 <= 1) ---------------------------------------- (64) RankingReductionPairProof (EQUIVALENT) Interpretation: [ l1 ] = l1_1 + -1*l1_2 The following rules are decreasing: l1(x28:0, x29:0) -> l1(c, x29:0) :|: c = -1 + x28:0 && (x28:0 + -1 * x29:0 >= 1 && x29:0 < 0 && x28:0 < 0 && x29:0 + x28:0 <= 1) The following rules are bounded: l1(x28:0, x29:0) -> l1(c, x29:0) :|: c = -1 + x28:0 && (x28:0 + -1 * x29:0 >= 1 && x29:0 < 0 && x28:0 < 0 && x29:0 + x28:0 <= 1) ---------------------------------------- (65) YES ---------------------------------------- (66) Obligation: Termination digraph: Nodes: (1) l1(x4, x5) -> l1(x4, 1 + x5) :|: TRUE && x4 <= -1 && x5 + -1 * x4 >= 0 && x4 + x5 <= -1 && x5 <= -1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (67) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (68) Obligation: Rules: l1(x4:0, x5:0) -> l1(x4:0, 1 + x5:0) :|: x4:0 + x5:0 <= -1 && x5:0 < 0 && x4:0 < 0 && x5:0 + -1 * x4:0 >= 0 ---------------------------------------- (69) TempFilterProof (SOUND) Used the following sort dictionary for filtering: l1(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (70) Obligation: Rules: l1(x4:0, x5:0) -> l1(x4:0, c) :|: c = 1 + x5:0 && (x4:0 + x5:0 <= -1 && x5:0 < 0 && x4:0 < 0 && x5:0 + -1 * x4:0 >= 0) ---------------------------------------- (71) RankingReductionPairProof (EQUIVALENT) Interpretation: [ l1 ] = -1*l1_2 The following rules are decreasing: l1(x4:0, x5:0) -> l1(x4:0, c) :|: c = 1 + x5:0 && (x4:0 + x5:0 <= -1 && x5:0 < 0 && x4:0 < 0 && x5:0 + -1 * x4:0 >= 0) The following rules are bounded: l1(x4:0, x5:0) -> l1(x4:0, c) :|: c = 1 + x5:0 && (x4:0 + x5:0 <= -1 && x5:0 < 0 && x4:0 < 0 && x5:0 + -1 * x4:0 >= 0) ---------------------------------------- (72) YES