11.84/3.91 YES 11.84/3.92 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 11.84/3.92 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.84/3.92 11.84/3.92 11.84/3.92 Termination of the given C Problem could be proven: 11.84/3.92 11.84/3.92 (0) C Problem 11.84/3.92 (1) CToIRSProof [EQUIVALENT, 0 ms] 11.84/3.92 (2) IntTRS 11.84/3.92 (3) IRS2T2 [EQUIVALENT, 0 ms] 11.84/3.92 (4) T2IntSys 11.84/3.92 (5) T2 [EQUIVALENT, 2045 ms] 11.84/3.92 (6) YES 11.84/3.92 11.84/3.92 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (0) 11.84/3.92 Obligation: 11.84/3.92 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (1) CToIRSProof (EQUIVALENT) 11.84/3.92 Parsed C Integer Program as IRS. 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (2) 11.84/3.92 Obligation: 11.84/3.92 Rules: 11.84/3.92 f1(i, j, an, bn) -> f2(x_1, j, an, bn) :|: TRUE 11.84/3.92 f2(x, x1, x2, x3) -> f3(x, x4, x2, x3) :|: TRUE 11.84/3.92 f3(x5, x6, x7, x8) -> f4(x5, x6, x9, x8) :|: TRUE 11.84/3.92 f4(x10, x11, x12, x13) -> f5(x10, x11, x12, x14) :|: TRUE 11.84/3.92 f10(x15, x16, x17, x18) -> f13(x15, arith, x17, x18) :|: TRUE && arith = x16 + 1 11.84/3.92 f11(x109, x110, x111, x112) -> f14(x113, x110, x111, x112) :|: TRUE && x113 = x109 + 1 11.84/3.92 f7(x23, x24, x25, x26) -> f10(x23, x24, x25, x26) :|: x27 < 0 11.84/3.92 f7(x114, x115, x116, x117) -> f10(x114, x115, x116, x117) :|: x118 > 0 11.84/3.92 f7(x28, x29, x30, x31) -> f11(x28, x29, x30, x31) :|: x32 = 0 11.84/3.92 f13(x33, x34, x35, x36) -> f12(x33, x34, x35, x36) :|: TRUE 11.84/3.92 f14(x37, x38, x39, x40) -> f12(x37, x38, x39, x40) :|: TRUE 11.84/3.92 f15(x119, x120, x121, x122) -> f18(x123, x120, x121, x122) :|: TRUE && x123 = x119 + 1 11.84/3.92 f19(x124, x125, x126, x127) -> f22(x124, x128, x126, x127) :|: TRUE && x128 = x125 + 1 11.84/3.92 f16(x49, x50, x51, x52) -> f19(x49, x50, x51, x52) :|: x51 <= x49 && x52 >= x50 11.84/3.92 f16(x53, x54, x55, x56) -> f20(x53, x54, x55, x56) :|: x55 > x53 11.84/3.92 f16(x129, x130, x131, x132) -> f20(x129, x130, x131, x132) :|: x132 < x130 11.84/3.92 f22(x57, x58, x59, x60) -> f21(x57, x58, x59, x60) :|: TRUE 11.84/3.92 f20(x61, x62, x63, x64) -> f21(x61, x62, x63, x64) :|: TRUE 11.84/3.92 f8(x65, x66, x67, x68) -> f15(x65, x66, x67, x68) :|: x67 >= x65 && x68 <= x66 11.84/3.92 f8(x69, x70, x71, x72) -> f16(x69, x70, x71, x72) :|: x71 < x69 11.84/3.92 f8(x133, x134, x135, x136) -> f16(x133, x134, x135, x136) :|: x136 > x134 11.84/3.92 f18(x73, x74, x75, x76) -> f17(x73, x74, x75, x76) :|: TRUE 11.84/3.92 f21(x77, x78, x79, x80) -> f17(x77, x78, x79, x80) :|: TRUE 11.84/3.92 f6(x81, x82, x83, x84) -> f7(x81, x82, x83, x84) :|: x83 >= x81 && x84 >= x82 11.84/3.92 f6(x85, x86, x87, x88) -> f8(x85, x86, x87, x88) :|: x87 < x85 11.84/3.92 f6(x137, x138, x139, x140) -> f8(x137, x138, x139, x140) :|: x140 < x138 11.84/3.92 f12(x89, x90, x91, x92) -> f9(x89, x90, x91, x92) :|: TRUE 11.84/3.92 f17(x93, x94, x95, x96) -> f9(x93, x94, x95, x96) :|: TRUE 11.84/3.92 f5(x97, x98, x99, x100) -> f6(x97, x98, x99, x100) :|: x99 <= x97 && x100 >= x98 11.84/3.92 f5(x141, x142, x143, x144) -> f6(x141, x142, x143, x144) :|: x143 >= x141 && x144 >= x142 11.84/3.92 f5(x145, x146, x147, x148) -> f6(x145, x146, x147, x148) :|: x147 >= x145 && x148 <= x146 11.84/3.92 f9(x101, x102, x103, x104) -> f5(x101, x102, x103, x104) :|: TRUE 11.84/3.92 f5(x105, x106, x107, x108) -> f23(x105, x106, x107, x108) :|: x107 < x105 && x107 < x105 && x107 > x105 11.84/3.92 f5(x149, x150, x151, x152) -> f23(x149, x150, x151, x152) :|: x151 < x149 && x151 < x149 && x152 < x150 11.84/3.92 f5(x153, x154, x155, x156) -> f23(x153, x154, x155, x156) :|: x155 < x153 && x156 > x154 && x155 > x153 11.84/3.92 f5(x157, x158, x159, x160) -> f23(x157, x158, x159, x160) :|: x159 < x157 && x160 > x158 && x160 < x158 11.84/3.92 f5(x161, x162, x163, x164) -> f23(x161, x162, x163, x164) :|: x164 < x162 && x163 < x161 && x163 > x161 11.84/3.92 f5(x165, x166, x167, x168) -> f23(x165, x166, x167, x168) :|: x168 < x166 && x167 < x165 && x168 < x166 11.84/3.92 f5(x169, x170, x171, x172) -> f23(x169, x170, x171, x172) :|: x172 < x170 && x172 > x170 && x171 > x169 11.84/3.92 f5(x173, x174, x175, x176) -> f23(x173, x174, x175, x176) :|: x176 < x174 && x176 > x174 && x176 < x174 11.84/3.92 Start term: f1(i, j, an, bn) 11.84/3.92 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (3) IRS2T2 (EQUIVALENT) 11.84/3.92 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 11.84/3.92 11.84/3.92 (f1_4,1) 11.84/3.92 (f2_4,2) 11.84/3.92 (f3_4,3) 11.84/3.92 (f4_4,4) 11.84/3.92 (f5_4,5) 11.84/3.92 (f10_4,6) 11.84/3.92 (f13_4,7) 11.84/3.92 (f11_4,8) 11.84/3.92 (f14_4,9) 11.84/3.92 (f7_4,10) 11.84/3.92 (f12_4,11) 11.84/3.92 (f15_4,12) 11.84/3.92 (f18_4,13) 11.84/3.92 (f19_4,14) 11.84/3.92 (f22_4,15) 11.84/3.92 (f16_4,16) 11.84/3.92 (f20_4,17) 11.84/3.92 (f21_4,18) 11.84/3.92 (f8_4,19) 11.84/3.92 (f17_4,20) 11.84/3.92 (f6_4,21) 11.84/3.92 (f9_4,22) 11.84/3.92 (f23_4,23) 11.84/3.92 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (4) 11.84/3.92 Obligation: 11.84/3.92 START: 1; 11.84/3.92 11.84/3.92 FROM: 1; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX4; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 2; 11.84/3.92 11.84/3.92 FROM: 2; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX4; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 3; 11.84/3.92 11.84/3.92 FROM: 3; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX4; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 4; 11.84/3.92 11.84/3.92 FROM: 4; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX4; 11.84/3.92 TO: 5; 11.84/3.92 11.84/3.92 FROM: 6; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := -(-(oldX1 + 1)); 11.84/3.92 assume(0 = 0 && oldX4 = oldX1 + 1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := -(-(oldX1 + 1)); 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 7; 11.84/3.92 11.84/3.92 FROM: 8; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := -(-(oldX0 + 1)); 11.84/3.92 assume(0 = 0 && oldX4 = oldX0 + 1); 11.84/3.92 x0 := -(-(oldX0 + 1)); 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 9; 11.84/3.92 11.84/3.92 FROM: 10; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(oldX4 < 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 6; 11.84/3.92 11.84/3.92 FROM: 10; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := nondet(); 11.84/3.92 assume(oldX4 > 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 6; 11.84/3.92 11.84/3.92 FROM: 10; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := -(0); 11.84/3.92 assume(oldX4 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 8; 11.84/3.92 11.84/3.92 FROM: 7; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 11; 11.84/3.92 11.84/3.92 FROM: 9; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 11; 11.84/3.92 11.84/3.92 FROM: 12; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := -(-(oldX0 + 1)); 11.84/3.92 assume(0 = 0 && oldX4 = oldX0 + 1); 11.84/3.92 x0 := -(-(oldX0 + 1)); 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 13; 11.84/3.92 11.84/3.92 FROM: 14; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 oldX4 := -(-(oldX1 + 1)); 11.84/3.92 assume(0 = 0 && oldX4 = oldX1 + 1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := -(-(oldX1 + 1)); 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 15; 11.84/3.92 11.84/3.92 FROM: 16; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 <= oldX0 && oldX3 >= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 14; 11.84/3.92 11.84/3.92 FROM: 16; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 > oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 17; 11.84/3.92 11.84/3.92 FROM: 16; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 17; 11.84/3.92 11.84/3.92 FROM: 15; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 18; 11.84/3.92 11.84/3.92 FROM: 17; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 18; 11.84/3.92 11.84/3.92 FROM: 19; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 >= oldX0 && oldX3 <= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 12; 11.84/3.92 11.84/3.92 FROM: 19; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 16; 11.84/3.92 11.84/3.92 FROM: 19; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 > oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 16; 11.84/3.92 11.84/3.92 FROM: 13; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 20; 11.84/3.92 11.84/3.92 FROM: 18; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 20; 11.84/3.92 11.84/3.92 FROM: 21; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 >= oldX0 && oldX3 >= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 10; 11.84/3.92 11.84/3.92 FROM: 21; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 19; 11.84/3.92 11.84/3.92 FROM: 21; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 19; 11.84/3.92 11.84/3.92 FROM: 11; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 22; 11.84/3.92 11.84/3.92 FROM: 20; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 22; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 <= oldX0 && oldX3 >= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 21; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 >= oldX0 && oldX3 >= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 21; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 >= oldX0 && oldX3 <= oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 21; 11.84/3.92 11.84/3.92 FROM: 22; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(0 = 0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 5; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0 && oldX2 < oldX0 && oldX2 > oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0 && oldX2 < oldX0 && oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0 && oldX3 > oldX1 && oldX2 > oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX2 < oldX0 && oldX3 > oldX1 && oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1 && oldX2 < oldX0 && oldX2 > oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1 && oldX2 < oldX0 && oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1 && oldX3 > oldX1 && oldX2 > oldX0); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 FROM: 5; 11.84/3.92 oldX0 := x0; 11.84/3.92 oldX1 := x1; 11.84/3.92 oldX2 := x2; 11.84/3.92 oldX3 := x3; 11.84/3.92 assume(oldX3 < oldX1 && oldX3 > oldX1 && oldX3 < oldX1); 11.84/3.92 x0 := oldX0; 11.84/3.92 x1 := oldX1; 11.84/3.92 x2 := oldX2; 11.84/3.92 x3 := oldX3; 11.84/3.92 TO: 23; 11.84/3.92 11.84/3.92 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (5) T2 (EQUIVALENT) 11.84/3.92 Initially, performed program simplifications using lexicographic rank functions: 11.84/3.92 * Removed transitions 31, 32, 33, 34, 35, 39, 43, 46 using the following rank functions: 11.84/3.92 - Rank function 1: 11.84/3.92 RF for loc. 17: -2-2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 18: 1-2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 19: -1-2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 20: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 21: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 22: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 23: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 24: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 25: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 26: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 RF for loc. 27: -2*x0-4*x1+2*x2+4*x3 11.84/3.92 Bound for (chained) transitions 43: 0 11.84/3.92 - Rank function 2: 11.84/3.92 RF for loc. 17: 1-x1+x3 11.84/3.92 RF for loc. 18: 1-x1+x3 11.84/3.92 RF for loc. 19: 2-x1+x3 11.84/3.92 RF for loc. 20: -x1+x3 11.84/3.92 RF for loc. 21: -x1+x3 11.84/3.92 RF for loc. 22: -x1+x3 11.84/3.92 RF for loc. 23: -x1+x3 11.84/3.92 RF for loc. 24: -x1+x3 11.84/3.92 RF for loc. 25: -x1+x3 11.84/3.92 RF for loc. 26: -x1+x3 11.84/3.92 RF for loc. 27: -x1+x3 11.84/3.92 Bound for (chained) transitions 35: 0 11.84/3.92 - Rank function 3: 11.84/3.92 RF for loc. 17: 2 11.84/3.92 RF for loc. 18: 1 11.84/3.92 RF for loc. 19: 3 11.84/3.92 RF for loc. 20: 0 11.84/3.92 RF for loc. 21: 0 11.84/3.92 RF for loc. 22: 0 11.84/3.92 RF for loc. 23: 0 11.84/3.92 RF for loc. 24: 0 11.84/3.92 RF for loc. 25: 0 11.84/3.92 RF for loc. 26: 0 11.84/3.92 RF for loc. 27: 0 11.84/3.92 Bound for (chained) transitions 31: 2 11.84/3.92 Bound for (chained) transitions 32: 3 11.84/3.92 Bound for (chained) transitions 33: 3 11.84/3.92 Bound for (chained) transitions 34: 3 11.84/3.92 Bound for (chained) transitions 46: 1 11.84/3.92 - Rank function 4: 11.84/3.92 RF for loc. 20: -x0+x2 11.84/3.92 RF for loc. 21: -x0+x2 11.84/3.92 RF for loc. 22: -x0+x2 11.84/3.92 RF for loc. 23: -x0+x2 11.84/3.92 RF for loc. 24: -x0+x2 11.84/3.92 RF for loc. 25: -x0+x2 11.84/3.92 RF for loc. 26: -x0+x2 11.84/3.92 RF for loc. 27: -x0+x2 11.84/3.92 Bound for (chained) transitions 39: 0 11.84/3.92 11.84/3.92 ---------------------------------------- 11.84/3.92 11.84/3.92 (6) 11.84/3.92 YES 12.13/3.96 EOF