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, 805 ms] (4) AND (5) IRSwT (6) IntTRSCompressionProof [EQUIVALENT, 45 ms] (7) IRSwT (8) TempFilterProof [SOUND, 33 ms] (9) IntTRS (10) PolynomialOrderProcessor [EQUIVALENT, 10 ms] (11) IntTRS (12) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (13) YES (14) IRSwT (15) IntTRSCompressionProof [EQUIVALENT, 11 ms] (16) IRSwT (17) TempFilterProof [SOUND, 69 ms] (18) IntTRS (19) RankingReductionPairProof [EQUIVALENT, 29 ms] (20) IntTRS (21) RankingReductionPairProof [EQUIVALENT, 0 ms] (22) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4) -> f1_0_main_Load'(arg1P, arg2P, arg3P, arg4P) :|: 0 <= 2 * x39 - 1 && 0 <= arg2 - 1 && 2 * x39 + 1 - 2 * x40 = 1 && -1 <= x39 - 1 && 0 <= arg1 - 1 && 2 <= x41 - 1 && arg1 = arg1P && arg2 = arg2P f1_0_main_Load'(x, x1, x2, x3) -> f723_0_init_GE(x4, x5, x6, x7) :|: 0 <= 2 * x8 - 1 && 0 <= x1 - 1 && 2 * x8 + 1 - 2 * x9 = 1 && -1 <= x8 - 1 && 0 <= x - 1 && 2 <= x4 - 1 && 2 * x8 + 1 - 2 * x9 <= 1 && 0 <= 2 * x8 + 1 - 2 * x9 && 0 = x5 && 2 * x8 + 1 = x6 f723_0_init_GE(x10, x11, x12, x13) -> f873_0_init_GE(x14, x15, x16, x17) :|: x12 = x17 && 0 = x16 && x11 = x15 && x12 + 4 <= x10 && 2 <= x14 - 1 && 2 <= x10 - 1 && x11 <= 2 && x14 <= x10 f873_0_init_GE(x19, x20, x21, x22) -> f723_0_init_GE(x23, x24, x25, x26) :|: x22 = x25 && x20 + 1 = x24 && x22 + 4 <= x19 && 2 <= x23 - 1 && 2 <= x19 - 1 && 2 <= x21 - 1 && x23 <= x19 f873_0_init_GE(x27, x28, x29, x30) -> f873_0_init_GE(x31, x32, x33, x34) :|: x28 <= x30 - 1 && x29 <= 2 && x29 <= x35 - 1 && -1 <= x35 - 1 && x31 <= x27 && 2 <= x27 - 1 && 2 <= x31 - 1 && x30 + 4 <= x27 && x28 = x32 && x29 + 1 = x33 && x30 = x34 f723_0_init_GE(x36, x37, x38, x42) -> f723_0_init_GE'(x43, x44, x47, x48) :|: 1 <= x38 - 1 && 2 <= x37 - 1 && x49 <= x38 - 1 && x53 <= x38 - 1 && x54 <= x36 && 2 <= x36 - 1 && 2 <= x54 - 1 && x38 + 4 <= x36 && x36 = x43 && x37 = x44 && x38 = x47 f723_0_init_GE'(x55, x56, x59, x60) -> f1037_0_imprimer_GE(x61, x62, x63, x64) :|: 1 <= x59 - 1 && 2 <= x56 - 1 && x65 <= x59 - 1 && x66 <= x59 - 1 && x61 <= x55 && 2 <= x55 - 1 && 2 <= x61 - 1 && x59 + 4 <= x55 && 0 <= x59 - 2 * x65 && x59 - 2 * x65 <= 1 && x59 - 2 * x66 <= 1 && 0 <= x59 - 2 * x66 && 0 = x62 && x59 = x63 f1037_0_imprimer_GE(x67, x68, x69, x70) -> f1074_0_imprimer_GE(x71, x72, x73, x74) :|: x69 = x74 && 0 = x73 && x68 = x72 && x69 + 4 <= x67 && 2 <= x71 - 1 && 2 <= x67 - 1 && x68 <= x69 - 1 && x71 <= x67 f1074_0_imprimer_GE(x75, x76, x77, x78) -> f1037_0_imprimer_GE(x79, x80, x81, x82) :|: x78 = x81 && x76 + 1 = x80 && x78 + 4 <= x75 && 2 <= x79 - 1 && 2 <= x75 - 1 && x78 <= x77 && x79 <= x75 f1074_0_imprimer_GE(x83, x84, x85, x86) -> f1074_0_imprimer_GE(x87, x88, x89, x90) :|: x86 = x90 && x85 + 1 = x89 && x84 = x88 && x86 + 4 <= x83 && 2 <= x87 - 1 && 2 <= x83 - 1 && x85 <= x86 - 1 && x87 <= x83 __init(x91, x92, x93, x94) -> f1_0_main_Load(x95, x96, x97, x98) :|: 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) -> f1_0_main_Load'(arg1P, arg2P, arg3P, arg4P) :|: 0 <= 2 * x39 - 1 && 0 <= arg2 - 1 && 2 * x39 + 1 - 2 * x40 = 1 && -1 <= x39 - 1 && 0 <= arg1 - 1 && 2 <= x41 - 1 && arg1 = arg1P && arg2 = arg2P f1_0_main_Load'(x, x1, x2, x3) -> f723_0_init_GE(x4, x5, x6, x7) :|: 0 <= 2 * x8 - 1 && 0 <= x1 - 1 && 2 * x8 + 1 - 2 * x9 = 1 && -1 <= x8 - 1 && 0 <= x - 1 && 2 <= x4 - 1 && 2 * x8 + 1 - 2 * x9 <= 1 && 0 <= 2 * x8 + 1 - 2 * x9 && 0 = x5 && 2 * x8 + 1 = x6 f723_0_init_GE(x10, x11, x12, x13) -> f873_0_init_GE(x14, x15, x16, x17) :|: x12 = x17 && 0 = x16 && x11 = x15 && x12 + 4 <= x10 && 2 <= x14 - 1 && 2 <= x10 - 1 && x11 <= 2 && x14 <= x10 f873_0_init_GE(x19, x20, x21, x22) -> f723_0_init_GE(x23, x24, x25, x26) :|: x22 = x25 && x20 + 1 = x24 && x22 + 4 <= x19 && 2 <= x23 - 1 && 2 <= x19 - 1 && 2 <= x21 - 1 && x23 <= x19 f873_0_init_GE(x27, x28, x29, x30) -> f873_0_init_GE(x31, x32, x33, x34) :|: x28 <= x30 - 1 && x29 <= 2 && x29 <= x35 - 1 && -1 <= x35 - 1 && x31 <= x27 && 2 <= x27 - 1 && 2 <= x31 - 1 && x30 + 4 <= x27 && x28 = x32 && x29 + 1 = x33 && x30 = x34 f723_0_init_GE(x36, x37, x38, x42) -> f723_0_init_GE'(x43, x44, x47, x48) :|: 1 <= x38 - 1 && 2 <= x37 - 1 && x49 <= x38 - 1 && x53 <= x38 - 1 && x54 <= x36 && 2 <= x36 - 1 && 2 <= x54 - 1 && x38 + 4 <= x36 && x36 = x43 && x37 = x44 && x38 = x47 f723_0_init_GE'(x55, x56, x59, x60) -> f1037_0_imprimer_GE(x61, x62, x63, x64) :|: 1 <= x59 - 1 && 2 <= x56 - 1 && x65 <= x59 - 1 && x66 <= x59 - 1 && x61 <= x55 && 2 <= x55 - 1 && 2 <= x61 - 1 && x59 + 4 <= x55 && 0 <= x59 - 2 * x65 && x59 - 2 * x65 <= 1 && x59 - 2 * x66 <= 1 && 0 <= x59 - 2 * x66 && 0 = x62 && x59 = x63 f1037_0_imprimer_GE(x67, x68, x69, x70) -> f1074_0_imprimer_GE(x71, x72, x73, x74) :|: x69 = x74 && 0 = x73 && x68 = x72 && x69 + 4 <= x67 && 2 <= x71 - 1 && 2 <= x67 - 1 && x68 <= x69 - 1 && x71 <= x67 f1074_0_imprimer_GE(x75, x76, x77, x78) -> f1037_0_imprimer_GE(x79, x80, x81, x82) :|: x78 = x81 && x76 + 1 = x80 && x78 + 4 <= x75 && 2 <= x79 - 1 && 2 <= x75 - 1 && x78 <= x77 && x79 <= x75 f1074_0_imprimer_GE(x83, x84, x85, x86) -> f1074_0_imprimer_GE(x87, x88, x89, x90) :|: x86 = x90 && x85 + 1 = x89 && x84 = x88 && x86 + 4 <= x83 && 2 <= x87 - 1 && 2 <= x83 - 1 && x85 <= x86 - 1 && x87 <= x83 __init(x91, x92, x93, x94) -> f1_0_main_Load(x95, x96, x97, x98) :|: 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) -> f1_0_main_Load'(arg1P, arg2P, arg3P, arg4P) :|: 0 <= 2 * x39 - 1 && 0 <= arg2 - 1 && 2 * x39 + 1 - 2 * x40 = 1 && -1 <= x39 - 1 && 0 <= arg1 - 1 && 2 <= x41 - 1 && arg1 = arg1P && arg2 = arg2P (2) f1_0_main_Load'(x, x1, x2, x3) -> f723_0_init_GE(x4, x5, x6, x7) :|: 0 <= 2 * x8 - 1 && 0 <= x1 - 1 && 2 * x8 + 1 - 2 * x9 = 1 && -1 <= x8 - 1 && 0 <= x - 1 && 2 <= x4 - 1 && 2 * x8 + 1 - 2 * x9 <= 1 && 0 <= 2 * x8 + 1 - 2 * x9 && 0 = x5 && 2 * x8 + 1 = x6 (3) f723_0_init_GE(x10, x11, x12, x13) -> f873_0_init_GE(x14, x15, x16, x17) :|: x12 = x17 && 0 = x16 && x11 = x15 && x12 + 4 <= x10 && 2 <= x14 - 1 && 2 <= x10 - 1 && x11 <= 2 && x14 <= x10 (4) f873_0_init_GE(x19, x20, x21, x22) -> f723_0_init_GE(x23, x24, x25, x26) :|: x22 = x25 && x20 + 1 = x24 && x22 + 4 <= x19 && 2 <= x23 - 1 && 2 <= x19 - 1 && 2 <= x21 - 1 && x23 <= x19 (5) f873_0_init_GE(x27, x28, x29, x30) -> f873_0_init_GE(x31, x32, x33, x34) :|: x28 <= x30 - 1 && x29 <= 2 && x29 <= x35 - 1 && -1 <= x35 - 1 && x31 <= x27 && 2 <= x27 - 1 && 2 <= x31 - 1 && x30 + 4 <= x27 && x28 = x32 && x29 + 1 = x33 && x30 = x34 (6) f723_0_init_GE(x36, x37, x38, x42) -> f723_0_init_GE'(x43, x44, x47, x48) :|: 1 <= x38 - 1 && 2 <= x37 - 1 && x49 <= x38 - 1 && x53 <= x38 - 1 && x54 <= x36 && 2 <= x36 - 1 && 2 <= x54 - 1 && x38 + 4 <= x36 && x36 = x43 && x37 = x44 && x38 = x47 (7) f723_0_init_GE'(x55, x56, x59, x60) -> f1037_0_imprimer_GE(x61, x62, x63, x64) :|: 1 <= x59 - 1 && 2 <= x56 - 1 && x65 <= x59 - 1 && x66 <= x59 - 1 && x61 <= x55 && 2 <= x55 - 1 && 2 <= x61 - 1 && x59 + 4 <= x55 && 0 <= x59 - 2 * x65 && x59 - 2 * x65 <= 1 && x59 - 2 * x66 <= 1 && 0 <= x59 - 2 * x66 && 0 = x62 && x59 = x63 (8) f1037_0_imprimer_GE(x67, x68, x69, x70) -> f1074_0_imprimer_GE(x71, x72, x73, x74) :|: x69 = x74 && 0 = x73 && x68 = x72 && x69 + 4 <= x67 && 2 <= x71 - 1 && 2 <= x67 - 1 && x68 <= x69 - 1 && x71 <= x67 (9) f1074_0_imprimer_GE(x75, x76, x77, x78) -> f1037_0_imprimer_GE(x79, x80, x81, x82) :|: x78 = x81 && x76 + 1 = x80 && x78 + 4 <= x75 && 2 <= x79 - 1 && 2 <= x75 - 1 && x78 <= x77 && x79 <= x75 (10) f1074_0_imprimer_GE(x83, x84, x85, x86) -> f1074_0_imprimer_GE(x87, x88, x89, x90) :|: x86 = x90 && x85 + 1 = x89 && x84 = x88 && x86 + 4 <= x83 && 2 <= x87 - 1 && 2 <= x83 - 1 && x85 <= x86 - 1 && x87 <= x83 (11) __init(x91, x92, x93, x94) -> f1_0_main_Load(x95, x96, x97, x98) :|: 0 <= 0 Arcs: (1) -> (2) (2) -> (3) (3) -> (5) (4) -> (3), (6) (5) -> (4), (5) (6) -> (7) (7) -> (8) (8) -> (9), (10) (9) -> (8) (10) -> (9), (10) (11) -> (1) This digraph is fully evaluated! ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Termination digraph: Nodes: (1) f723_0_init_GE(x10, x11, x12, x13) -> f873_0_init_GE(x14, x15, x16, x17) :|: x12 = x17 && 0 = x16 && x11 = x15 && x12 + 4 <= x10 && 2 <= x14 - 1 && 2 <= x10 - 1 && x11 <= 2 && x14 <= x10 (2) f873_0_init_GE(x19, x20, x21, x22) -> f723_0_init_GE(x23, x24, x25, x26) :|: x22 = x25 && x20 + 1 = x24 && x22 + 4 <= x19 && 2 <= x23 - 1 && 2 <= x19 - 1 && 2 <= x21 - 1 && x23 <= x19 (3) f873_0_init_GE(x27, x28, x29, x30) -> f873_0_init_GE(x31, x32, x33, x34) :|: x28 <= x30 - 1 && x29 <= 2 && x29 <= x35 - 1 && -1 <= x35 - 1 && x31 <= x27 && 2 <= x27 - 1 && 2 <= x31 - 1 && x30 + 4 <= x27 && x28 = x32 && x29 + 1 = x33 && x30 = x34 Arcs: (1) -> (3) (2) -> (1) (3) -> (2), (3) This digraph is fully evaluated! ---------------------------------------- (6) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (7) Obligation: Rules: f873_0_init_GE(x27:0, x28:0, x29:0, x30:0) -> f873_0_init_GE(x31:0, x28:0, x29:0 + 1, x30:0) :|: x31:0 > 2 && x30:0 + 4 <= x27:0 && x27:0 > 2 && x31:0 <= x27:0 && x35:0 > -1 && x35:0 - 1 >= x29:0 && x29:0 < 3 && x30:0 - 1 >= x28:0 f873_0_init_GE(x19:0, x20:0, x21:0, x17:0) -> f873_0_init_GE(x14:0, x20:0 + 1, 0, x17:0) :|: x23:0 >= x14:0 && x23:0 <= x19:0 && x21:0 > 2 && x20:0 < 2 && x19:0 > 2 && x23:0 > 2 && x14:0 > 2 && x23:0 >= x17:0 + 4 && x19:0 >= x17:0 + 4 ---------------------------------------- (8) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f873_0_init_GE(INTEGER, INTEGER, VARIABLE, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (9) Obligation: Rules: f873_0_init_GE(x27:0, x28:0, x29:0, x30:0) -> f873_0_init_GE(x31:0, x28:0, c, x30:0) :|: c = x29:0 + 1 && (x31:0 > 2 && x30:0 + 4 <= x27:0 && x27:0 > 2 && x31:0 <= x27:0 && x35:0 > -1 && x35:0 - 1 >= x29:0 && x29:0 < 3 && x30:0 - 1 >= x28:0) f873_0_init_GE(x19:0, x20:0, x21:0, x17:0) -> f873_0_init_GE(x14:0, c1, c2, x17:0) :|: c2 = 0 && c1 = x20:0 + 1 && (x23:0 >= x14:0 && x23:0 <= x19:0 && x21:0 > 2 && x20:0 < 2 && x19:0 > 2 && x23:0 > 2 && x14:0 > 2 && x23:0 >= x17:0 + 4 && x19:0 >= x17:0 + 4) ---------------------------------------- (10) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f873_0_init_GE(x, x1, x2, x3)] = 1 - x1 The following rules are decreasing: f873_0_init_GE(x19:0, x20:0, x21:0, x17:0) -> f873_0_init_GE(x14:0, c1, c2, x17:0) :|: c2 = 0 && c1 = x20:0 + 1 && (x23:0 >= x14:0 && x23:0 <= x19:0 && x21:0 > 2 && x20:0 < 2 && x19:0 > 2 && x23:0 > 2 && x14:0 > 2 && x23:0 >= x17:0 + 4 && x19:0 >= x17:0 + 4) The following rules are bounded: f873_0_init_GE(x19:0, x20:0, x21:0, x17:0) -> f873_0_init_GE(x14:0, c1, c2, x17:0) :|: c2 = 0 && c1 = x20:0 + 1 && (x23:0 >= x14:0 && x23:0 <= x19:0 && x21:0 > 2 && x20:0 < 2 && x19:0 > 2 && x23:0 > 2 && x14:0 > 2 && x23:0 >= x17:0 + 4 && x19:0 >= x17:0 + 4) ---------------------------------------- (11) Obligation: Rules: f873_0_init_GE(x27:0, x28:0, x29:0, x30:0) -> f873_0_init_GE(x31:0, x28:0, c, x30:0) :|: c = x29:0 + 1 && (x31:0 > 2 && x30:0 + 4 <= x27:0 && x27:0 > 2 && x31:0 <= x27:0 && x35:0 > -1 && x35:0 - 1 >= x29:0 && x29:0 < 3 && x30:0 - 1 >= x28:0) ---------------------------------------- (12) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f873_0_init_GE(x, x1, x2, x3)] = 2 - x2 The following rules are decreasing: f873_0_init_GE(x27:0, x28:0, x29:0, x30:0) -> f873_0_init_GE(x31:0, x28:0, c, x30:0) :|: c = x29:0 + 1 && (x31:0 > 2 && x30:0 + 4 <= x27:0 && x27:0 > 2 && x31:0 <= x27:0 && x35:0 > -1 && x35:0 - 1 >= x29:0 && x29:0 < 3 && x30:0 - 1 >= x28:0) The following rules are bounded: f873_0_init_GE(x27:0, x28:0, x29:0, x30:0) -> f873_0_init_GE(x31:0, x28:0, c, x30:0) :|: c = x29:0 + 1 && (x31:0 > 2 && x30:0 + 4 <= x27:0 && x27:0 > 2 && x31:0 <= x27:0 && x35:0 > -1 && x35:0 - 1 >= x29:0 && x29:0 < 3 && x30:0 - 1 >= x28:0) ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Termination digraph: Nodes: (1) f1037_0_imprimer_GE(x67, x68, x69, x70) -> f1074_0_imprimer_GE(x71, x72, x73, x74) :|: x69 = x74 && 0 = x73 && x68 = x72 && x69 + 4 <= x67 && 2 <= x71 - 1 && 2 <= x67 - 1 && x68 <= x69 - 1 && x71 <= x67 (2) f1074_0_imprimer_GE(x75, x76, x77, x78) -> f1037_0_imprimer_GE(x79, x80, x81, x82) :|: x78 = x81 && x76 + 1 = x80 && x78 + 4 <= x75 && 2 <= x79 - 1 && 2 <= x75 - 1 && x78 <= x77 && x79 <= x75 (3) f1074_0_imprimer_GE(x83, x84, x85, x86) -> f1074_0_imprimer_GE(x87, x88, x89, x90) :|: x86 = x90 && x85 + 1 = x89 && x84 = x88 && x86 + 4 <= x83 && 2 <= x87 - 1 && 2 <= x83 - 1 && x85 <= x86 - 1 && x87 <= x83 Arcs: (1) -> (2), (3) (2) -> (1) (3) -> (2), (3) This digraph is fully evaluated! ---------------------------------------- (15) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (16) Obligation: Rules: f1074_0_imprimer_GE(x83:0, x84:0, x85:0, x86:0) -> f1074_0_imprimer_GE(x87:0, x84:0, x85:0 + 1, x86:0) :|: x86:0 - 1 >= x85:0 && x87:0 <= x83:0 && x83:0 > 2 && x86:0 + 4 <= x83:0 && x87:0 > 2 f1074_0_imprimer_GE(x75:0, x76:0, x77:0, x74:0) -> f1074_0_imprimer_GE(x71:0, x76:0 + 1, 0, x74:0) :|: x79:0 >= x71:0 && x79:0 <= x75:0 && x77:0 >= x74:0 && x76:0 + 1 <= x74:0 - 1 && x75:0 > 2 && x79:0 > 2 && x71:0 > 2 && x79:0 >= x74:0 + 4 && x75:0 >= x74:0 + 4 ---------------------------------------- (17) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1074_0_imprimer_GE(INTEGER, VARIABLE, VARIABLE, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (18) Obligation: Rules: f1074_0_imprimer_GE(x83:0, x84:0, x85:0, x86:0) -> f1074_0_imprimer_GE(x87:0, x84:0, c, x86:0) :|: c = x85:0 + 1 && (x86:0 - 1 >= x85:0 && x87:0 <= x83:0 && x83:0 > 2 && x86:0 + 4 <= x83:0 && x87:0 > 2) f1074_0_imprimer_GE(x75:0, x76:0, x77:0, x74:0) -> f1074_0_imprimer_GE(x71:0, c1, c2, x74:0) :|: c2 = 0 && c1 = x76:0 + 1 && (x79:0 >= x71:0 && x79:0 <= x75:0 && x77:0 >= x74:0 && x76:0 + 1 <= x74:0 - 1 && x75:0 > 2 && x79:0 > 2 && x71:0 > 2 && x79:0 >= x74:0 + 4 && x75:0 >= x74:0 + 4) ---------------------------------------- (19) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1074_0_imprimer_GE ] = 2*f1074_0_imprimer_GE_4 + -2*f1074_0_imprimer_GE_2 The following rules are decreasing: f1074_0_imprimer_GE(x75:0, x76:0, x77:0, x74:0) -> f1074_0_imprimer_GE(x71:0, c1, c2, x74:0) :|: c2 = 0 && c1 = x76:0 + 1 && (x79:0 >= x71:0 && x79:0 <= x75:0 && x77:0 >= x74:0 && x76:0 + 1 <= x74:0 - 1 && x75:0 > 2 && x79:0 > 2 && x71:0 > 2 && x79:0 >= x74:0 + 4 && x75:0 >= x74:0 + 4) The following rules are bounded: f1074_0_imprimer_GE(x75:0, x76:0, x77:0, x74:0) -> f1074_0_imprimer_GE(x71:0, c1, c2, x74:0) :|: c2 = 0 && c1 = x76:0 + 1 && (x79:0 >= x71:0 && x79:0 <= x75:0 && x77:0 >= x74:0 && x76:0 + 1 <= x74:0 - 1 && x75:0 > 2 && x79:0 > 2 && x71:0 > 2 && x79:0 >= x74:0 + 4 && x75:0 >= x74:0 + 4) ---------------------------------------- (20) Obligation: Rules: f1074_0_imprimer_GE(x83:0, x84:0, x85:0, x86:0) -> f1074_0_imprimer_GE(x87:0, x84:0, c, x86:0) :|: c = x85:0 + 1 && (x86:0 - 1 >= x85:0 && x87:0 <= x83:0 && x83:0 > 2 && x86:0 + 4 <= x83:0 && x87:0 > 2) ---------------------------------------- (21) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f1074_0_imprimer_GE ] = f1074_0_imprimer_GE_4 + -1*f1074_0_imprimer_GE_3 The following rules are decreasing: f1074_0_imprimer_GE(x83:0, x84:0, x85:0, x86:0) -> f1074_0_imprimer_GE(x87:0, x84:0, c, x86:0) :|: c = x85:0 + 1 && (x86:0 - 1 >= x85:0 && x87:0 <= x83:0 && x83:0 > 2 && x86:0 + 4 <= x83:0 && x87:0 > 2) The following rules are bounded: f1074_0_imprimer_GE(x83:0, x84:0, x85:0, x86:0) -> f1074_0_imprimer_GE(x87:0, x84:0, c, x86:0) :|: c = x85:0 + 1 && (x86:0 - 1 >= x85:0 && x87:0 <= x83:0 && x83:0 > 2 && x86:0 + 4 <= x83:0 && x87:0 > 2) ---------------------------------------- (22) YES