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, 611 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 0 ms] (7) IRSwT (8) TempFilterProof [SOUND, 18 ms] (9) IntTRS (10) RankingReductionPairProof [EQUIVALENT, 8 ms] (11) YES (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) TempFilterProof [SOUND, 44 ms] (16) IntTRS (17) RankingReductionPairProof [EQUIVALENT, 0 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 0 ms] (20) YES (21) IRSwT (22) IntTRSCompressionProof [EQUIVALENT, 0 ms] (23) IRSwT (24) IRSwTChainingProof [EQUIVALENT, 0 ms] (25) IRSwT (26) IRSwTTerminationDigraphProof [EQUIVALENT, 7 ms] (27) IRSwT (28) IntTRSCompressionProof [EQUIVALENT, 0 ms] (29) IRSwT (30) TempFilterProof [SOUND, 5 ms] (31) IntTRS (32) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (33) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4) -> f254_0_main_GE(arg1P, arg2P, arg3P, arg4P) :|: arg2 = arg4P && arg2 - 1 = arg3P && 0 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 f254_0_main_GE(x, x1, x2, x3) -> f254_0_main_GE(x4, x5, x6, x7) :|: x3 = x7 && x3 - 1 = x6 && x1 + 1 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && x4 <= x && -1 <= x3 - 1 && x1 <= x3 - 1 && x1 <= x2 - 1 f254_0_main_GE(x8, x9, x10, x11) -> f494_0_main_GE(x12, x13, x14, x15) :|: x11 = x15 && x11 - 1 = x14 && 0 = x13 && 0 <= x12 - 1 && 0 <= x8 - 1 && x12 <= x8 && -1 <= x11 - 1 && x10 <= x9 f494_0_main_GE(x16, x17, x18, x19) -> f510_0_main_GE(x20, x21, x22, x23) :|: x19 = x23 && x17 + 1 = x22 && x17 = x20 && 0 <= x21 - 1 && 0 <= x16 - 1 && x21 <= x16 && x17 <= x18 - 1 && -1 <= x17 - 1 f510_0_main_GE(x24, x25, x26, x27) -> f494_0_main_GE(x28, x29, x30, x31) :|: x27 = x31 && x27 - 1 = x30 && x24 + 1 = x29 && 0 <= x28 - 1 && 0 <= x25 - 1 && x28 <= x25 && x27 <= x26 && -1 <= x27 - 1 f494_0_main_GE(x32, x33, x34, x35) -> f609_0_main_GE(x36, x37, x40, x41) :|: x35 = x41 && x35 - 1 = x40 && 0 = x37 && 0 <= x36 - 1 && 0 <= x32 - 1 && x36 <= x32 && -1 <= x35 - 1 && x34 <= x33 f609_0_main_GE(x42, x43, x44, x47) -> f609_0_main_GE(x48, x49, x50, x51) :|: x47 = x51 && x47 - 1 = x50 && x43 + 1 = x49 && 0 <= x48 - 1 && 0 <= x42 - 1 && x48 <= x42 && x43 <= x44 - 1 && -1 <= x47 - 1 f510_0_main_GE(x52, x53, x54, x55) -> f510_0_main_GE(x56, x57, x58, x59) :|: x54 <= x55 - 1 && x52 <= x55 - 1 && x60 <= x61 && x57 <= x53 && 0 <= x53 - 1 && 0 <= x57 - 1 && x52 = x56 && x54 + 1 = x58 && x55 = x59 f510_0_main_GE(x62, x63, x64, x65) -> f510_0_main_GE(x66, x67, x68, x69) :|: x64 <= x65 - 1 && x62 <= x65 - 1 && x70 <= x71 - 1 && x67 <= x63 && 0 <= x63 - 1 && 0 <= x67 - 1 && x62 = x66 && x64 + 1 = x68 && x65 = x69 __init(x72, x73, x74, x75) -> f1_0_main_Load(x76, x77, x78, x79) :|: 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_Load(arg1, arg2, arg3, arg4) -> f254_0_main_GE(arg1P, arg2P, arg3P, arg4P) :|: arg2 = arg4P && arg2 - 1 = arg3P && 0 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 f254_0_main_GE(x, x1, x2, x3) -> f254_0_main_GE(x4, x5, x6, x7) :|: x3 = x7 && x3 - 1 = x6 && x1 + 1 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && x4 <= x && -1 <= x3 - 1 && x1 <= x3 - 1 && x1 <= x2 - 1 f254_0_main_GE(x8, x9, x10, x11) -> f494_0_main_GE(x12, x13, x14, x15) :|: x11 = x15 && x11 - 1 = x14 && 0 = x13 && 0 <= x12 - 1 && 0 <= x8 - 1 && x12 <= x8 && -1 <= x11 - 1 && x10 <= x9 f494_0_main_GE(x16, x17, x18, x19) -> f510_0_main_GE(x20, x21, x22, x23) :|: x19 = x23 && x17 + 1 = x22 && x17 = x20 && 0 <= x21 - 1 && 0 <= x16 - 1 && x21 <= x16 && x17 <= x18 - 1 && -1 <= x17 - 1 f510_0_main_GE(x24, x25, x26, x27) -> f494_0_main_GE(x28, x29, x30, x31) :|: x27 = x31 && x27 - 1 = x30 && x24 + 1 = x29 && 0 <= x28 - 1 && 0 <= x25 - 1 && x28 <= x25 && x27 <= x26 && -1 <= x27 - 1 f494_0_main_GE(x32, x33, x34, x35) -> f609_0_main_GE(x36, x37, x40, x41) :|: x35 = x41 && x35 - 1 = x40 && 0 = x37 && 0 <= x36 - 1 && 0 <= x32 - 1 && x36 <= x32 && -1 <= x35 - 1 && x34 <= x33 f609_0_main_GE(x42, x43, x44, x47) -> f609_0_main_GE(x48, x49, x50, x51) :|: x47 = x51 && x47 - 1 = x50 && x43 + 1 = x49 && 0 <= x48 - 1 && 0 <= x42 - 1 && x48 <= x42 && x43 <= x44 - 1 && -1 <= x47 - 1 f510_0_main_GE(x52, x53, x54, x55) -> f510_0_main_GE(x56, x57, x58, x59) :|: x54 <= x55 - 1 && x52 <= x55 - 1 && x60 <= x61 && x57 <= x53 && 0 <= x53 - 1 && 0 <= x57 - 1 && x52 = x56 && x54 + 1 = x58 && x55 = x59 f510_0_main_GE(x62, x63, x64, x65) -> f510_0_main_GE(x66, x67, x68, x69) :|: x64 <= x65 - 1 && x62 <= x65 - 1 && x70 <= x71 - 1 && x67 <= x63 && 0 <= x63 - 1 && 0 <= x67 - 1 && x62 = x66 && x64 + 1 = x68 && x65 = x69 __init(x72, x73, x74, x75) -> f1_0_main_Load(x76, x77, x78, x79) :|: 0 <= 0 Start term: __init(arg1, arg2, arg3, arg4) ---------------------------------------- (3) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1_0_main_Load(arg1, arg2, arg3, arg4) -> f254_0_main_GE(arg1P, arg2P, arg3P, arg4P) :|: arg2 = arg4P && arg2 - 1 = arg3P && 0 = arg2P && 0 <= arg1P - 1 && 0 <= arg1 - 1 && -1 <= arg2 - 1 && arg1P <= arg1 (2) f254_0_main_GE(x, x1, x2, x3) -> f254_0_main_GE(x4, x5, x6, x7) :|: x3 = x7 && x3 - 1 = x6 && x1 + 1 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && x4 <= x && -1 <= x3 - 1 && x1 <= x3 - 1 && x1 <= x2 - 1 (3) f254_0_main_GE(x8, x9, x10, x11) -> f494_0_main_GE(x12, x13, x14, x15) :|: x11 = x15 && x11 - 1 = x14 && 0 = x13 && 0 <= x12 - 1 && 0 <= x8 - 1 && x12 <= x8 && -1 <= x11 - 1 && x10 <= x9 (4) f494_0_main_GE(x16, x17, x18, x19) -> f510_0_main_GE(x20, x21, x22, x23) :|: x19 = x23 && x17 + 1 = x22 && x17 = x20 && 0 <= x21 - 1 && 0 <= x16 - 1 && x21 <= x16 && x17 <= x18 - 1 && -1 <= x17 - 1 (5) f510_0_main_GE(x24, x25, x26, x27) -> f494_0_main_GE(x28, x29, x30, x31) :|: x27 = x31 && x27 - 1 = x30 && x24 + 1 = x29 && 0 <= x28 - 1 && 0 <= x25 - 1 && x28 <= x25 && x27 <= x26 && -1 <= x27 - 1 (6) f494_0_main_GE(x32, x33, x34, x35) -> f609_0_main_GE(x36, x37, x40, x41) :|: x35 = x41 && x35 - 1 = x40 && 0 = x37 && 0 <= x36 - 1 && 0 <= x32 - 1 && x36 <= x32 && -1 <= x35 - 1 && x34 <= x33 (7) f609_0_main_GE(x42, x43, x44, x47) -> f609_0_main_GE(x48, x49, x50, x51) :|: x47 = x51 && x47 - 1 = x50 && x43 + 1 = x49 && 0 <= x48 - 1 && 0 <= x42 - 1 && x48 <= x42 && x43 <= x44 - 1 && -1 <= x47 - 1 (8) f510_0_main_GE(x52, x53, x54, x55) -> f510_0_main_GE(x56, x57, x58, x59) :|: x54 <= x55 - 1 && x52 <= x55 - 1 && x60 <= x61 && x57 <= x53 && 0 <= x53 - 1 && 0 <= x57 - 1 && x52 = x56 && x54 + 1 = x58 && x55 = x59 (9) f510_0_main_GE(x62, x63, x64, x65) -> f510_0_main_GE(x66, x67, x68, x69) :|: x64 <= x65 - 1 && x62 <= x65 - 1 && x70 <= x71 - 1 && x67 <= x63 && 0 <= x63 - 1 && 0 <= x67 - 1 && x62 = x66 && x64 + 1 = x68 && x65 = x69 (10) __init(x72, x73, x74, x75) -> f1_0_main_Load(x76, x77, x78, x79) :|: 0 <= 0 Arcs: (1) -> (2), (3) (2) -> (2), (3) (3) -> (4), (6) (4) -> (5), (8), (9) (5) -> (4), (6) (6) -> (7) (7) -> (7) (8) -> (5), (8), (9) (9) -> (5), (8), (9) (10) -> (1) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f254_0_main_GE(x, x1, x2, x3) -> f254_0_main_GE(x4, x5, x6, x7) :|: x3 = x7 && x3 - 1 = x6 && x1 + 1 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && x4 <= x && -1 <= x3 - 1 && x1 <= x3 - 1 && x1 <= x2 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f254_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f254_0_main_GE(x4:0, x1:0 + 1, x3:0 - 1, x3:0) :|: x3:0 - 1 >= x1:0 && x2:0 - 1 >= x1:0 && x3:0 > -1 && x:0 >= x4:0 && x4:0 > 0 && x:0 > 0 ---------------------------------------- (8) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f254_0_main_GE(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (9) Obligation: Rules: f254_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f254_0_main_GE(x4:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 1 && (x3:0 - 1 >= x1:0 && x2:0 - 1 >= x1:0 && x3:0 > -1 && x:0 >= x4:0 && x4:0 > 0 && x:0 > 0) ---------------------------------------- (10) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f254_0_main_GE ] = f254_0_main_GE_4 + -1*f254_0_main_GE_2 The following rules are decreasing: f254_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f254_0_main_GE(x4:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 1 && (x3:0 - 1 >= x1:0 && x2:0 - 1 >= x1:0 && x3:0 > -1 && x:0 >= x4:0 && x4:0 > 0 && x:0 > 0) The following rules are bounded: f254_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f254_0_main_GE(x4:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 1 && (x3:0 - 1 >= x1:0 && x2:0 - 1 >= x1:0 && x3:0 > -1 && x:0 >= x4:0 && x4:0 > 0 && x:0 > 0) ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f494_0_main_GE(x16, x17, x18, x19) -> f510_0_main_GE(x20, x21, x22, x23) :|: x19 = x23 && x17 + 1 = x22 && x17 = x20 && 0 <= x21 - 1 && 0 <= x16 - 1 && x21 <= x16 && x17 <= x18 - 1 && -1 <= x17 - 1 (2) f510_0_main_GE(x24, x25, x26, x27) -> f494_0_main_GE(x28, x29, x30, x31) :|: x27 = x31 && x27 - 1 = x30 && x24 + 1 = x29 && 0 <= x28 - 1 && 0 <= x25 - 1 && x28 <= x25 && x27 <= x26 && -1 <= x27 - 1 (3) f510_0_main_GE(x52, x53, x54, x55) -> f510_0_main_GE(x56, x57, x58, x59) :|: x54 <= x55 - 1 && x52 <= x55 - 1 && x60 <= x61 && x57 <= x53 && 0 <= x53 - 1 && 0 <= x57 - 1 && x52 = x56 && x54 + 1 = x58 && x55 = x59 (4) f510_0_main_GE(x62, x63, x64, x65) -> f510_0_main_GE(x66, x67, x68, x69) :|: x64 <= x65 - 1 && x62 <= x65 - 1 && x70 <= x71 - 1 && x67 <= x63 && 0 <= x63 - 1 && 0 <= x67 - 1 && x62 = x66 && x64 + 1 = x68 && x65 = x69 Arcs: (1) -> (2), (3), (4) (2) -> (1) (3) -> (2), (3), (4) (4) -> (2), (3), (4) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, x64:0 + 1, x65:0) :|: x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0 f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, x54:0 + 1, x55:0) :|: x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0 f510_0_main_GE(x24:0, x25:0, x26:0, x23:0) -> f510_0_main_GE(x24:0 + 1, x21:0, x24:0 + 2, x23:0) :|: x24:0 > -2 && x23:0 > -1 && x26:0 >= x23:0 && x24:0 + 1 <= x23:0 - 2 && x28:0 <= x25:0 && x28:0 >= x21:0 && x25:0 > 0 && x21:0 > 0 && x28:0 > 0 ---------------------------------------- (15) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f510_0_main_GE(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (16) Obligation: Rules: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, c, x65:0) :|: c = x64:0 + 1 && (x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0) f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, c1, x55:0) :|: c1 = x54:0 + 1 && (x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0) f510_0_main_GE(x24:0, x25:0, x26:0, x23:0) -> f510_0_main_GE(c2, x21:0, c3, x23:0) :|: c3 = x24:0 + 2 && c2 = x24:0 + 1 && (x24:0 > -2 && x23:0 > -1 && x26:0 >= x23:0 && x24:0 + 1 <= x23:0 - 2 && x28:0 <= x25:0 && x28:0 >= x21:0 && x25:0 > 0 && x21:0 > 0 && x28:0 > 0) ---------------------------------------- (17) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f510_0_main_GE ] = f510_0_main_GE_4 + -1*f510_0_main_GE_1 The following rules are decreasing: f510_0_main_GE(x24:0, x25:0, x26:0, x23:0) -> f510_0_main_GE(c2, x21:0, c3, x23:0) :|: c3 = x24:0 + 2 && c2 = x24:0 + 1 && (x24:0 > -2 && x23:0 > -1 && x26:0 >= x23:0 && x24:0 + 1 <= x23:0 - 2 && x28:0 <= x25:0 && x28:0 >= x21:0 && x25:0 > 0 && x21:0 > 0 && x28:0 > 0) The following rules are bounded: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, c, x65:0) :|: c = x64:0 + 1 && (x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0) f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, c1, x55:0) :|: c1 = x54:0 + 1 && (x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0) f510_0_main_GE(x24:0, x25:0, x26:0, x23:0) -> f510_0_main_GE(c2, x21:0, c3, x23:0) :|: c3 = x24:0 + 2 && c2 = x24:0 + 1 && (x24:0 > -2 && x23:0 > -1 && x26:0 >= x23:0 && x24:0 + 1 <= x23:0 - 2 && x28:0 <= x25:0 && x28:0 >= x21:0 && x25:0 > 0 && x21:0 > 0 && x28:0 > 0) ---------------------------------------- (18) Obligation: Rules: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, c, x65:0) :|: c = x64:0 + 1 && (x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0) f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, c1, x55:0) :|: c1 = x54:0 + 1 && (x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0) ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f510_0_main_GE ] = f510_0_main_GE_4 + -1*f510_0_main_GE_3 The following rules are decreasing: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, c, x65:0) :|: c = x64:0 + 1 && (x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0) f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, c1, x55:0) :|: c1 = x54:0 + 1 && (x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0) The following rules are bounded: f510_0_main_GE(x62:0, x63:0, x64:0, x65:0) -> f510_0_main_GE(x62:0, x67:0, c, x65:0) :|: c = x64:0 + 1 && (x63:0 > 0 && x67:0 > 0 && x67:0 <= x63:0 && x71:0 - 1 >= x70:0 && x65:0 - 1 >= x62:0 && x65:0 - 1 >= x64:0) f510_0_main_GE(x52:0, x53:0, x54:0, x55:0) -> f510_0_main_GE(x52:0, x57:0, c1, x55:0) :|: c1 = x54:0 + 1 && (x53:0 > 0 && x57:0 > 0 && x57:0 <= x53:0 && x61:0 >= x60:0 && x55:0 - 1 >= x52:0 && x55:0 - 1 >= x54:0) ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Termination digraph: Nodes: (1) f609_0_main_GE(x42, x43, x44, x47) -> f609_0_main_GE(x48, x49, x50, x51) :|: x47 = x51 && x47 - 1 = x50 && x43 + 1 = x49 && 0 <= x48 - 1 && 0 <= x42 - 1 && x48 <= x42 && x43 <= x44 - 1 && -1 <= x47 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (22) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (23) Obligation: Rules: f609_0_main_GE(x42:0, x43:0, x44:0, x47:0) -> f609_0_main_GE(x48:0, x43:0 + 1, x47:0 - 1, x47:0) :|: x44:0 - 1 >= x43:0 && x47:0 > -1 && x48:0 <= x42:0 && x48:0 > 0 && x42:0 > 0 ---------------------------------------- (24) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (25) Obligation: Rules: f609_0_main_GE(x, x1, x2, x3) -> f609_0_main_GE(x9, x1 + 2, x3 + -1, x3) :|: TRUE && x2 + -1 * x1 >= 1 && x3 >= 0 && x4 + -1 * x <= 0 && x4 >= 1 && x >= 1 && x3 + -1 * x1 >= 3 && x9 + -1 * x4 <= 0 && x9 >= 1 ---------------------------------------- (26) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f609_0_main_GE(x, x1, x2, x3) -> f609_0_main_GE(x9, x1 + 2, x3 + -1, x3) :|: TRUE && x2 + -1 * x1 >= 1 && x3 >= 0 && x4 + -1 * x <= 0 && x4 >= 1 && x >= 1 && x3 + -1 * x1 >= 3 && x9 + -1 * x4 <= 0 && x9 >= 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (27) Obligation: Termination digraph: Nodes: (1) f609_0_main_GE(x, x1, x2, x3) -> f609_0_main_GE(x9, x1 + 2, x3 + -1, x3) :|: TRUE && x2 + -1 * x1 >= 1 && x3 >= 0 && x4 + -1 * x <= 0 && x4 >= 1 && x >= 1 && x3 + -1 * x1 >= 3 && x9 + -1 * x4 <= 0 && x9 >= 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (28) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (29) Obligation: Rules: f609_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f609_0_main_GE(x9:0, x1:0 + 2, x3:0 - 1, x3:0) :|: x9:0 + -1 * x4:0 <= 0 && x9:0 > 0 && x3:0 + -1 * x1:0 >= 3 && x:0 > 0 && x4:0 > 0 && x4:0 + -1 * x:0 <= 0 && x2:0 + -1 * x1:0 >= 1 && x3:0 > -1 ---------------------------------------- (30) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f609_0_main_GE(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (31) Obligation: Rules: f609_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f609_0_main_GE(x9:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 2 && (x9:0 + -1 * x4:0 <= 0 && x9:0 > 0 && x3:0 + -1 * x1:0 >= 3 && x:0 > 0 && x4:0 > 0 && x4:0 + -1 * x:0 <= 0 && x2:0 + -1 * x1:0 >= 1 && x3:0 > -1) ---------------------------------------- (32) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f609_0_main_GE(x, x1, x2, x3)] = -x1 + x3 The following rules are decreasing: f609_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f609_0_main_GE(x9:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 2 && (x9:0 + -1 * x4:0 <= 0 && x9:0 > 0 && x3:0 + -1 * x1:0 >= 3 && x:0 > 0 && x4:0 > 0 && x4:0 + -1 * x:0 <= 0 && x2:0 + -1 * x1:0 >= 1 && x3:0 > -1) The following rules are bounded: f609_0_main_GE(x:0, x1:0, x2:0, x3:0) -> f609_0_main_GE(x9:0, c, c1, x3:0) :|: c1 = x3:0 - 1 && c = x1:0 + 2 && (x9:0 + -1 * x4:0 <= 0 && x9:0 > 0 && x3:0 + -1 * x1:0 >= 3 && x:0 > 0 && x4:0 > 0 && x4:0 + -1 * x:0 <= 0 && x2:0 + -1 * x1:0 >= 1 && x3:0 > -1) ---------------------------------------- (33) YES