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, 1016 ms] (4) IRSwT (5) IntTRSCompressionProof [EQUIVALENT, 0 ms] (6) IRSwT (7) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (8) IRSwT (9) TempFilterProof [SOUND, 89 ms] (10) IntTRS (11) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (12) IntTRS (13) RankingReductionPairProof [EQUIVALENT, 0 ms] (14) YES ---------------------------------------- (0) Obligation: Rules: f1_0_main_Load(arg1, arg2, arg3, arg4) -> f162_0_power_GT(arg1P, arg2P, arg3P, arg4P) :|: 0 = arg2P && 0 = arg1P && 0 = arg2 && 0 <= arg1 - 1 f1_0_main_Load(x, x1, x2, x3) -> f97_0_random_GT(x4, x5, x6, x7) :|: 0 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && 0 <= x1 - 1 && x4 <= x f1_0_main_Load(x8, x9, x11, x12) -> f97_0_random_GT(x13, x15, x16, x17) :|: 0 <= x13 - 1 && 0 <= x8 - 1 && x13 <= x8 && 0 <= x9 - 1 && -1 <= x15 - 1 f97_0_random_GT(x18, x20, x21, x22) -> f162_0_power_GT(x23, x24, x25, x26) :|: 0 = x24 && x20 = x23 && 0 <= x18 - 1 f97_0_random_GT(x27, x28, x29, x30) -> f155_0_main_InvokeMethod(x31, x32, x33, x34) :|: x31 <= x27 && 1 <= x35 - 1 && 0 <= x27 - 1 && 0 <= x31 - 1 && x28 = x32 && 0 = x33 f97_0_random_GT(x36, x38, x39, x40) -> f155_0_main_InvokeMethod(x42, x43, x44, x45) :|: 1 <= x46 - 1 && -1 <= x44 - 1 && x42 <= x36 && 0 <= x36 - 1 && 0 <= x42 - 1 && x38 = x43 f155_0_main_InvokeMethod(x48, x49, x50, x51) -> f162_0_power_GT(x52, x53, x54, x55) :|: 0 <= x48 - 1 && 1 <= x56 - 1 && x49 = x52 && x50 = x53 f162_0_power_GT(x57, x58, x59, x60) -> f162_0_power_GT'(x61, x62, x63, x64) :|: x58 = x62 && x57 = x61 && 1 <= x58 - 1 && x57 <= 1 f162_0_power_GT'(x65, x66, x67, x68) -> f213_0_power_NE(x69, x70, x71, x72) :|: 1 <= x66 - 1 && x65 <= 1 && x66 - 2 * x73 <= 1 && 0 <= x66 - 2 * x73 && x65 = x69 && x66 = x70 && x66 - 2 * x73 = x71 f162_0_power_GT(x74, x75, x76, x77) -> f162_0_power_GT'(x78, x79, x80, x81) :|: x75 = x79 && x74 = x78 && 1 <= x75 - 1 && 2 <= x74 - 1 f162_0_power_GT'(x82, x83, x84, x85) -> f213_0_power_NE(x86, x87, x88, x89) :|: 1 <= x83 - 1 && 2 <= x82 - 1 && x83 - 2 * x90 <= 1 && 0 <= x83 - 2 * x90 && x82 = x86 && x83 = x87 && x83 - 2 * x90 = x88 f213_0_power_NE(x91, x92, x93, x94) -> f213_0_power_NE'(x95, x96, x97, x98) :|: 1 <= x92 - 1 && 0 <= x99 - 1 && x99 <= x92 - 1 && 0 = x93 && x91 = x95 && x92 = x96 && 0 = x97 && x94 = x98 f213_0_power_NE'(x100, x101, x102, x103) -> f162_0_power_GT(x104, x105, x106, x107) :|: x100 = x104 && 0 = x102 && 0 <= x101 - 2 * x105 && x101 - 2 * x105 <= 1 && 0 <= x105 - 1 && x105 <= x101 - 1 && 1 <= x101 - 1 f213_0_power_NE(x108, x109, x110, x111) -> f162_0_power_GT(x112, x113, x114, x115) :|: x109 - 1 = x113 && x108 = x112 && 1 = x110 && x109 - 1 <= x109 - 1 && 1 <= x109 - 1 __init(x116, x117, x118, x119) -> f1_0_main_Load(x120, x121, x122, x123) :|: 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) -> f162_0_power_GT(arg1P, arg2P, arg3P, arg4P) :|: 0 = arg2P && 0 = arg1P && 0 = arg2 && 0 <= arg1 - 1 f1_0_main_Load(x, x1, x2, x3) -> f97_0_random_GT(x4, x5, x6, x7) :|: 0 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && 0 <= x1 - 1 && x4 <= x f1_0_main_Load(x8, x9, x11, x12) -> f97_0_random_GT(x13, x15, x16, x17) :|: 0 <= x13 - 1 && 0 <= x8 - 1 && x13 <= x8 && 0 <= x9 - 1 && -1 <= x15 - 1 f97_0_random_GT(x18, x20, x21, x22) -> f162_0_power_GT(x23, x24, x25, x26) :|: 0 = x24 && x20 = x23 && 0 <= x18 - 1 f97_0_random_GT(x27, x28, x29, x30) -> f155_0_main_InvokeMethod(x31, x32, x33, x34) :|: x31 <= x27 && 1 <= x35 - 1 && 0 <= x27 - 1 && 0 <= x31 - 1 && x28 = x32 && 0 = x33 f97_0_random_GT(x36, x38, x39, x40) -> f155_0_main_InvokeMethod(x42, x43, x44, x45) :|: 1 <= x46 - 1 && -1 <= x44 - 1 && x42 <= x36 && 0 <= x36 - 1 && 0 <= x42 - 1 && x38 = x43 f155_0_main_InvokeMethod(x48, x49, x50, x51) -> f162_0_power_GT(x52, x53, x54, x55) :|: 0 <= x48 - 1 && 1 <= x56 - 1 && x49 = x52 && x50 = x53 f162_0_power_GT(x57, x58, x59, x60) -> f162_0_power_GT'(x61, x62, x63, x64) :|: x58 = x62 && x57 = x61 && 1 <= x58 - 1 && x57 <= 1 f162_0_power_GT'(x65, x66, x67, x68) -> f213_0_power_NE(x69, x70, x71, x72) :|: 1 <= x66 - 1 && x65 <= 1 && x66 - 2 * x73 <= 1 && 0 <= x66 - 2 * x73 && x65 = x69 && x66 = x70 && x66 - 2 * x73 = x71 f162_0_power_GT(x74, x75, x76, x77) -> f162_0_power_GT'(x78, x79, x80, x81) :|: x75 = x79 && x74 = x78 && 1 <= x75 - 1 && 2 <= x74 - 1 f162_0_power_GT'(x82, x83, x84, x85) -> f213_0_power_NE(x86, x87, x88, x89) :|: 1 <= x83 - 1 && 2 <= x82 - 1 && x83 - 2 * x90 <= 1 && 0 <= x83 - 2 * x90 && x82 = x86 && x83 = x87 && x83 - 2 * x90 = x88 f213_0_power_NE(x91, x92, x93, x94) -> f213_0_power_NE'(x95, x96, x97, x98) :|: 1 <= x92 - 1 && 0 <= x99 - 1 && x99 <= x92 - 1 && 0 = x93 && x91 = x95 && x92 = x96 && 0 = x97 && x94 = x98 f213_0_power_NE'(x100, x101, x102, x103) -> f162_0_power_GT(x104, x105, x106, x107) :|: x100 = x104 && 0 = x102 && 0 <= x101 - 2 * x105 && x101 - 2 * x105 <= 1 && 0 <= x105 - 1 && x105 <= x101 - 1 && 1 <= x101 - 1 f213_0_power_NE(x108, x109, x110, x111) -> f162_0_power_GT(x112, x113, x114, x115) :|: x109 - 1 = x113 && x108 = x112 && 1 = x110 && x109 - 1 <= x109 - 1 && 1 <= x109 - 1 __init(x116, x117, x118, x119) -> f1_0_main_Load(x120, x121, x122, x123) :|: 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) -> f162_0_power_GT(arg1P, arg2P, arg3P, arg4P) :|: 0 = arg2P && 0 = arg1P && 0 = arg2 && 0 <= arg1 - 1 (2) f1_0_main_Load(x, x1, x2, x3) -> f97_0_random_GT(x4, x5, x6, x7) :|: 0 = x5 && 0 <= x4 - 1 && 0 <= x - 1 && 0 <= x1 - 1 && x4 <= x (3) f1_0_main_Load(x8, x9, x11, x12) -> f97_0_random_GT(x13, x15, x16, x17) :|: 0 <= x13 - 1 && 0 <= x8 - 1 && x13 <= x8 && 0 <= x9 - 1 && -1 <= x15 - 1 (4) f97_0_random_GT(x18, x20, x21, x22) -> f162_0_power_GT(x23, x24, x25, x26) :|: 0 = x24 && x20 = x23 && 0 <= x18 - 1 (5) f97_0_random_GT(x27, x28, x29, x30) -> f155_0_main_InvokeMethod(x31, x32, x33, x34) :|: x31 <= x27 && 1 <= x35 - 1 && 0 <= x27 - 1 && 0 <= x31 - 1 && x28 = x32 && 0 = x33 (6) f97_0_random_GT(x36, x38, x39, x40) -> f155_0_main_InvokeMethod(x42, x43, x44, x45) :|: 1 <= x46 - 1 && -1 <= x44 - 1 && x42 <= x36 && 0 <= x36 - 1 && 0 <= x42 - 1 && x38 = x43 (7) f155_0_main_InvokeMethod(x48, x49, x50, x51) -> f162_0_power_GT(x52, x53, x54, x55) :|: 0 <= x48 - 1 && 1 <= x56 - 1 && x49 = x52 && x50 = x53 (8) f162_0_power_GT(x57, x58, x59, x60) -> f162_0_power_GT'(x61, x62, x63, x64) :|: x58 = x62 && x57 = x61 && 1 <= x58 - 1 && x57 <= 1 (9) f162_0_power_GT'(x65, x66, x67, x68) -> f213_0_power_NE(x69, x70, x71, x72) :|: 1 <= x66 - 1 && x65 <= 1 && x66 - 2 * x73 <= 1 && 0 <= x66 - 2 * x73 && x65 = x69 && x66 = x70 && x66 - 2 * x73 = x71 (10) f162_0_power_GT(x74, x75, x76, x77) -> f162_0_power_GT'(x78, x79, x80, x81) :|: x75 = x79 && x74 = x78 && 1 <= x75 - 1 && 2 <= x74 - 1 (11) f162_0_power_GT'(x82, x83, x84, x85) -> f213_0_power_NE(x86, x87, x88, x89) :|: 1 <= x83 - 1 && 2 <= x82 - 1 && x83 - 2 * x90 <= 1 && 0 <= x83 - 2 * x90 && x82 = x86 && x83 = x87 && x83 - 2 * x90 = x88 (12) f213_0_power_NE(x91, x92, x93, x94) -> f213_0_power_NE'(x95, x96, x97, x98) :|: 1 <= x92 - 1 && 0 <= x99 - 1 && x99 <= x92 - 1 && 0 = x93 && x91 = x95 && x92 = x96 && 0 = x97 && x94 = x98 (13) f213_0_power_NE'(x100, x101, x102, x103) -> f162_0_power_GT(x104, x105, x106, x107) :|: x100 = x104 && 0 = x102 && 0 <= x101 - 2 * x105 && x101 - 2 * x105 <= 1 && 0 <= x105 - 1 && x105 <= x101 - 1 && 1 <= x101 - 1 (14) f213_0_power_NE(x108, x109, x110, x111) -> f162_0_power_GT(x112, x113, x114, x115) :|: x109 - 1 = x113 && x108 = x112 && 1 = x110 && x109 - 1 <= x109 - 1 && 1 <= x109 - 1 (15) __init(x116, x117, x118, x119) -> f1_0_main_Load(x120, x121, x122, x123) :|: 0 <= 0 Arcs: (2) -> (4), (5), (6) (3) -> (4), (5), (6) (5) -> (7) (6) -> (7) (7) -> (8), (10) (8) -> (9) (9) -> (12), (14) (10) -> (11) (11) -> (12), (14) (12) -> (13) (13) -> (8), (10) (14) -> (8), (10) (15) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (4) Obligation: Termination digraph: Nodes: (1) f162_0_power_GT(x57, x58, x59, x60) -> f162_0_power_GT'(x61, x62, x63, x64) :|: x58 = x62 && x57 = x61 && 1 <= x58 - 1 && x57 <= 1 (2) f213_0_power_NE'(x100, x101, x102, x103) -> f162_0_power_GT(x104, x105, x106, x107) :|: x100 = x104 && 0 = x102 && 0 <= x101 - 2 * x105 && x101 - 2 * x105 <= 1 && 0 <= x105 - 1 && x105 <= x101 - 1 && 1 <= x101 - 1 (3) f213_0_power_NE(x91, x92, x93, x94) -> f213_0_power_NE'(x95, x96, x97, x98) :|: 1 <= x92 - 1 && 0 <= x99 - 1 && x99 <= x92 - 1 && 0 = x93 && x91 = x95 && x92 = x96 && 0 = x97 && x94 = x98 (4) f162_0_power_GT'(x82, x83, x84, x85) -> f213_0_power_NE(x86, x87, x88, x89) :|: 1 <= x83 - 1 && 2 <= x82 - 1 && x83 - 2 * x90 <= 1 && 0 <= x83 - 2 * x90 && x82 = x86 && x83 = x87 && x83 - 2 * x90 = x88 (5) f162_0_power_GT(x74, x75, x76, x77) -> f162_0_power_GT'(x78, x79, x80, x81) :|: x75 = x79 && x74 = x78 && 1 <= x75 - 1 && 2 <= x74 - 1 (6) f213_0_power_NE(x108, x109, x110, x111) -> f162_0_power_GT(x112, x113, x114, x115) :|: x109 - 1 = x113 && x108 = x112 && 1 = x110 && x109 - 1 <= x109 - 1 && 1 <= x109 - 1 (7) f162_0_power_GT'(x65, x66, x67, x68) -> f213_0_power_NE(x69, x70, x71, x72) :|: 1 <= x66 - 1 && x65 <= 1 && x66 - 2 * x73 <= 1 && 0 <= x66 - 2 * x73 && x65 = x69 && x66 = x70 && x66 - 2 * x73 = x71 Arcs: (1) -> (7) (2) -> (1), (5) (3) -> (2) (4) -> (3), (6) (5) -> (4) (6) -> (1), (5) (7) -> (3), (6) This digraph is fully evaluated! ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: f162_0_power_GT'(x82:0, x83:0, x84:0, x85:0) -> f213_0_power_NE(x82:0, x83:0, x83:0 - 2 * x90:0, x89:0) :|: x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1 f213_0_power_NE(x104:0, x92:0, cons_0, x94:0) -> f162_0_power_GT(x104:0, x105:0, x106:0, x107:0) :|: x92:0 - 1 >= x105:0 && x105:0 > 0 && x92:0 - 2 * x105:0 <= 1 && x92:0 - 2 * x105:0 >= 0 && x99:0 <= x92:0 - 1 && x99:0 > 0 && x92:0 > 1 && cons_0 = 0 f213_0_power_NE(x108:0, x109:0, cons_1, x111:0) -> f162_0_power_GT(x108:0, x109:0 - 1, x114:0, x115:0) :|: x109:0 > 1 && cons_1 = 1 f162_0_power_GT'(x65:0, x66:0, x67:0, x68:0) -> f213_0_power_NE(x65:0, x66:0, x66:0 - 2 * x73:0, x72:0) :|: x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1 f162_0_power_GT(x57:0, x58:0, x59:0, x60:0) -> f162_0_power_GT'(x57:0, x58:0, x63:0, x64:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0, x76:0, x77:0) -> f162_0_power_GT'(x74:0, x75:0, x80:0, x81:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (7) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f162_0_power_GT'(x1, x2, x3, x4) -> f162_0_power_GT'(x1, x2) f213_0_power_NE(x1, x2, x3, x4) -> f213_0_power_NE(x1, x2, x3) f162_0_power_GT(x1, x2, x3, x4) -> f162_0_power_GT(x1, x2) ---------------------------------------- (8) Obligation: Rules: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, x83:0 - 2 * x90:0) :|: x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1 f213_0_power_NE(x104:0, x92:0, cons_0) -> f162_0_power_GT(x104:0, x105:0) :|: x92:0 - 1 >= x105:0 && x105:0 > 0 && x92:0 - 2 * x105:0 <= 1 && x92:0 - 2 * x105:0 >= 0 && x99:0 <= x92:0 - 1 && x99:0 > 0 && x92:0 > 1 && cons_0 = 0 f213_0_power_NE(x108:0, x109:0, cons_1) -> f162_0_power_GT(x108:0, x109:0 - 1) :|: x109:0 > 1 && cons_1 = 1 f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, x66:0 - 2 * x73:0) :|: x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1 f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (9) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f162_0_power_GT'(INTEGER, INTEGER) f213_0_power_NE(VARIABLE, INTEGER, INTEGER) f162_0_power_GT(VARIABLE, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (10) Obligation: Rules: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, c) :|: c = x83:0 - 2 * x90:0 && (x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1) f213_0_power_NE(x104:0, x92:0, c1) -> f162_0_power_GT(x104:0, x105:0) :|: c1 = 0 && (x92:0 - 1 >= x105:0 && x105:0 > 0 && x92:0 - 2 * x105:0 <= 1 && x92:0 - 2 * x105:0 >= 0 && x99:0 <= x92:0 - 1 && x99:0 > 0 && x92:0 > 1 && cons_0 = 0) f213_0_power_NE(x108:0, x109:0, c2) -> f162_0_power_GT(x108:0, c3) :|: c3 = x109:0 - 1 && c2 = 1 && (x109:0 > 1 && cons_1 = 1) f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, c4) :|: c4 = x66:0 - 2 * x73:0 && (x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1) f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (11) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f162_0_power_GT'(x, x1)] = x1 [f213_0_power_NE(x2, x3, x4)] = x3 [f162_0_power_GT(x5, x6)] = x6 The following rules are decreasing: f213_0_power_NE(x104:0, x92:0, c1) -> f162_0_power_GT(x104:0, x105:0) :|: c1 = 0 && (x92:0 - 1 >= x105:0 && x105:0 > 0 && x92:0 - 2 * x105:0 <= 1 && x92:0 - 2 * x105:0 >= 0 && x99:0 <= x92:0 - 1 && x99:0 > 0 && x92:0 > 1 && cons_0 = 0) f213_0_power_NE(x108:0, x109:0, c2) -> f162_0_power_GT(x108:0, c3) :|: c3 = x109:0 - 1 && c2 = 1 && (x109:0 > 1 && cons_1 = 1) The following rules are bounded: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, c) :|: c = x83:0 - 2 * x90:0 && (x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1) f213_0_power_NE(x104:0, x92:0, c1) -> f162_0_power_GT(x104:0, x105:0) :|: c1 = 0 && (x92:0 - 1 >= x105:0 && x105:0 > 0 && x92:0 - 2 * x105:0 <= 1 && x92:0 - 2 * x105:0 >= 0 && x99:0 <= x92:0 - 1 && x99:0 > 0 && x92:0 > 1 && cons_0 = 0) f213_0_power_NE(x108:0, x109:0, c2) -> f162_0_power_GT(x108:0, c3) :|: c3 = x109:0 - 1 && c2 = 1 && (x109:0 > 1 && cons_1 = 1) f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, c4) :|: c4 = x66:0 - 2 * x73:0 && (x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1) f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (12) Obligation: Rules: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, c) :|: c = x83:0 - 2 * x90:0 && (x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1) f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, c4) :|: c4 = x66:0 - 2 * x73:0 && (x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1) f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (13) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f162_0_power_GT' ] = 0 [ f213_0_power_NE ] = -1 [ f162_0_power_GT ] = 1/2*f162_0_power_GT_2 The following rules are decreasing: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, c) :|: c = x83:0 - 2 * x90:0 && (x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1) f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, c4) :|: c4 = x66:0 - 2 * x73:0 && (x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1) f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 The following rules are bounded: f162_0_power_GT'(x82:0, x83:0) -> f213_0_power_NE(x82:0, x83:0, c) :|: c = x83:0 - 2 * x90:0 && (x83:0 - 2 * x90:0 <= 1 && x83:0 - 2 * x90:0 >= 0 && x82:0 > 2 && x83:0 > 1) f162_0_power_GT'(x65:0, x66:0) -> f213_0_power_NE(x65:0, x66:0, c4) :|: c4 = x66:0 - 2 * x73:0 && (x66:0 - 2 * x73:0 <= 1 && x66:0 - 2 * x73:0 >= 0 && x65:0 < 2 && x66:0 > 1) f162_0_power_GT(x57:0, x58:0) -> f162_0_power_GT'(x57:0, x58:0) :|: x57:0 < 2 && x58:0 > 1 f162_0_power_GT(x74:0, x75:0) -> f162_0_power_GT'(x74:0, x75:0) :|: x74:0 > 2 && x75:0 > 1 ---------------------------------------- (14) YES