11.94/3.77 YES 11.94/3.77 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 11.94/3.77 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.94/3.77 11.94/3.77 11.94/3.77 Termination of the given C Problem could be proven: 11.94/3.77 11.94/3.77 (0) C Problem 11.94/3.77 (1) CToIRSProof [EQUIVALENT, 0 ms] 11.94/3.77 (2) IntTRS 11.94/3.77 (3) IRS2T2 [EQUIVALENT, 0 ms] 11.94/3.77 (4) T2IntSys 11.94/3.77 (5) T2 [EQUIVALENT, 1916 ms] 11.94/3.77 (6) YES 11.94/3.77 11.94/3.77 11.94/3.77 ---------------------------------------- 11.94/3.77 11.94/3.77 (0) 11.94/3.77 Obligation: 11.94/3.77 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 11.94/3.77 ---------------------------------------- 11.94/3.77 11.94/3.77 (1) CToIRSProof (EQUIVALENT) 11.94/3.77 Parsed C Integer Program as IRS. 11.94/3.77 ---------------------------------------- 11.94/3.77 11.94/3.77 (2) 11.94/3.77 Obligation: 11.94/3.77 Rules: 11.94/3.77 f1(x, y, i, r, N) -> f2(x, y, i, r, 10) :|: TRUE 11.94/3.77 f2(x1, x2, x3, x4, x5) -> f3(0, x2, x3, x4, x5) :|: TRUE 11.94/3.77 f3(x6, x7, x8, x9, x10) -> f4(x6, 0, x8, x9, x10) :|: TRUE 11.94/3.77 f4(x11, x12, x13, x14, x15) -> f5(x11, x12, 0, x14, x15) :|: TRUE 11.94/3.77 f6(x16, x17, x18, x19, x20) -> f7(x16, x17, arith, x19, x20) :|: TRUE && arith = x18 + 1 11.94/3.77 f7(x21, x22, x23, x24, x25) -> f8(x21, x22, x23, x26, x25) :|: TRUE 11.94/3.78 f12(x162, x163, x164, x165, x166) -> f15(x167, x163, x164, x165, x166) :|: TRUE && x167 = x162 + 1 11.94/3.78 f16(x168, x169, x170, x171, x172) -> f19(x173, x169, x170, x171, x172) :|: TRUE && x173 = x168 - 1 11.94/3.78 f20(x174, x175, x176, x177, x178) -> f23(x174, x179, x176, x177, x178) :|: TRUE && x179 = x175 + 1 11.94/3.78 f24(x180, x181, x182, x183, x184) -> f27(x180, x185, x182, x183, x184) :|: TRUE && x185 = x181 - 1 11.94/3.78 f21(x47, x48, x49, x50, x51) -> f24(x47, x48, x49, x50, x51) :|: x50 = 3 11.94/3.78 f21(x52, x53, x54, x55, x56) -> f25(x52, x53, x54, x55, x56) :|: x55 < 3 11.94/3.78 f21(x186, x187, x188, x189, x190) -> f25(x186, x187, x188, x189, x190) :|: x189 > 3 11.94/3.78 f27(x57, x58, x59, x60, x61) -> f26(x57, x58, x59, x60, x61) :|: TRUE 11.94/3.78 f25(x62, x63, x64, x65, x66) -> f26(x62, x63, x64, x65, x66) :|: TRUE 11.94/3.78 f17(x67, x68, x69, x70, x71) -> f20(x67, x68, x69, x70, x71) :|: x70 = 2 11.94/3.78 f17(x72, x73, x74, x75, x76) -> f21(x72, x73, x74, x75, x76) :|: x75 < 2 11.94/3.78 f17(x191, x192, x193, x194, x195) -> f21(x191, x192, x193, x194, x195) :|: x194 > 2 11.94/3.78 f23(x77, x78, x79, x80, x81) -> f22(x77, x78, x79, x80, x81) :|: TRUE 11.94/3.78 f26(x82, x83, x84, x85, x86) -> f22(x82, x83, x84, x85, x86) :|: TRUE 11.94/3.78 f13(x87, x88, x89, x90, x91) -> f16(x87, x88, x89, x90, x91) :|: x90 = 1 11.94/3.78 f13(x92, x93, x94, x95, x96) -> f17(x92, x93, x94, x95, x96) :|: x95 < 1 11.94/3.78 f13(x196, x197, x198, x199, x200) -> f17(x196, x197, x198, x199, x200) :|: x199 > 1 11.94/3.78 f19(x97, x98, x99, x100, x101) -> f18(x97, x98, x99, x100, x101) :|: TRUE 11.94/3.78 f22(x102, x103, x104, x105, x106) -> f18(x102, x103, x104, x105, x106) :|: TRUE 11.94/3.78 f9(x107, x108, x109, x110, x111) -> f12(x107, x108, x109, x110, x111) :|: x110 = 0 11.94/3.78 f9(x112, x113, x114, x115, x116) -> f13(x112, x113, x114, x115, x116) :|: x115 < 0 11.94/3.78 f9(x201, x202, x203, x204, x205) -> f13(x201, x202, x203, x204, x205) :|: x204 > 0 11.94/3.78 f15(x117, x118, x119, x120, x121) -> f14(x117, x118, x119, x120, x121) :|: TRUE 11.94/3.78 f18(x122, x123, x124, x125, x126) -> f14(x122, x123, x124, x125, x126) :|: TRUE 11.94/3.78 f8(x127, x128, x129, x130, x131) -> f9(x127, x128, x129, x130, x131) :|: x130 >= 0 && x130 <= 3 11.94/3.78 f8(x132, x133, x134, x135, x136) -> f10(x132, x133, x134, x135, x136) :|: x135 < 0 11.94/3.78 f8(x206, x207, x208, x209, x210) -> f10(x206, x207, x208, x209, x210) :|: x209 > 3 11.94/3.78 f14(x137, x138, x139, x140, x141) -> f11(x137, x138, x139, x140, x141) :|: TRUE 11.94/3.78 f10(x142, x143, x144, x145, x146) -> f11(x142, x143, x144, x145, x146) :|: TRUE 11.94/3.78 f5(x147, x148, x149, x150, x151) -> f6(x147, x148, x149, x150, x151) :|: x149 < x151 11.94/3.78 f11(x152, x153, x154, x155, x156) -> f5(x152, x153, x154, x155, x156) :|: TRUE 11.94/3.78 f5(x157, x158, x159, x160, x161) -> f28(x157, x158, x159, x160, x161) :|: x159 >= x161 11.94/3.78 Start term: f1(x, y, i, r, N) 11.94/3.78 11.94/3.78 ---------------------------------------- 11.94/3.78 11.94/3.78 (3) IRS2T2 (EQUIVALENT) 11.94/3.78 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 11.94/3.78 11.94/3.78 (f1_5,1) 11.94/3.78 (f2_5,2) 11.94/3.78 (f3_5,3) 11.94/3.78 (f4_5,4) 11.94/3.78 (f5_5,5) 11.94/3.78 (f6_5,6) 11.94/3.78 (f7_5,7) 11.94/3.78 (f8_5,8) 11.94/3.78 (f12_5,9) 11.94/3.78 (f15_5,10) 11.94/3.78 (f16_5,11) 11.94/3.78 (f19_5,12) 11.94/3.78 (f20_5,13) 11.94/3.78 (f23_5,14) 11.94/3.78 (f24_5,15) 11.94/3.78 (f27_5,16) 11.94/3.78 (f21_5,17) 11.94/3.78 (f25_5,18) 11.94/3.78 (f26_5,19) 11.94/3.78 (f17_5,20) 11.94/3.78 (f22_5,21) 11.94/3.78 (f13_5,22) 11.94/3.78 (f18_5,23) 11.94/3.78 (f9_5,24) 11.94/3.78 (f14_5,25) 11.94/3.78 (f10_5,26) 11.94/3.78 (f11_5,27) 11.94/3.78 (f28_5,28) 11.94/3.78 11.94/3.78 ---------------------------------------- 11.94/3.78 11.94/3.78 (4) 11.94/3.78 Obligation: 11.94/3.78 START: 1; 11.94/3.78 11.94/3.78 FROM: 1; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := 10; 11.94/3.78 TO: 2; 11.94/3.78 11.94/3.78 FROM: 2; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := 0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 3; 11.94/3.78 11.94/3.78 FROM: 3; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := 0; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 4; 11.94/3.78 11.94/3.78 FROM: 4; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := 0; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 5; 11.94/3.78 11.94/3.78 FROM: 6; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := -(-(oldX2 + 1)); 11.94/3.78 assume(0 = 0 && oldX5 = oldX2 + 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := -(-(oldX2 + 1)); 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 7; 11.94/3.78 11.94/3.78 FROM: 7; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := nondet(); 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX5; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 8; 11.94/3.78 11.94/3.78 FROM: 9; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := -(-(oldX0 + 1)); 11.94/3.78 assume(0 = 0 && oldX5 = oldX0 + 1); 11.94/3.78 x0 := -(-(oldX0 + 1)); 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 10; 11.94/3.78 11.94/3.78 FROM: 11; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := -(1 - oldX0); 11.94/3.78 assume(0 = 0 && oldX5 = oldX0 - 1); 11.94/3.78 x0 := -(1 - oldX0); 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 12; 11.94/3.78 11.94/3.78 FROM: 13; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := -(-(oldX1 + 1)); 11.94/3.78 assume(0 = 0 && oldX5 = oldX1 + 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := -(-(oldX1 + 1)); 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 14; 11.94/3.78 11.94/3.78 FROM: 15; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 oldX5 := -(1 - oldX1); 11.94/3.78 assume(0 = 0 && oldX5 = oldX1 - 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := -(1 - oldX1); 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 16; 11.94/3.78 11.94/3.78 FROM: 17; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 = 3); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 15; 11.94/3.78 11.94/3.78 FROM: 17; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 < 3); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 18; 11.94/3.78 11.94/3.78 FROM: 17; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 > 3); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 18; 11.94/3.78 11.94/3.78 FROM: 16; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 19; 11.94/3.78 11.94/3.78 FROM: 18; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 19; 11.94/3.78 11.94/3.78 FROM: 20; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 = 2); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 13; 11.94/3.78 11.94/3.78 FROM: 20; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 < 2); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 17; 11.94/3.78 11.94/3.78 FROM: 20; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 > 2); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 17; 11.94/3.78 11.94/3.78 FROM: 14; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 21; 11.94/3.78 11.94/3.78 FROM: 19; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 21; 11.94/3.78 11.94/3.78 FROM: 22; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 = 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 11; 11.94/3.78 11.94/3.78 FROM: 22; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 < 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 20; 11.94/3.78 11.94/3.78 FROM: 22; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 > 1); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 20; 11.94/3.78 11.94/3.78 FROM: 12; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 23; 11.94/3.78 11.94/3.78 FROM: 21; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 23; 11.94/3.78 11.94/3.78 FROM: 24; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 9; 11.94/3.78 11.94/3.78 FROM: 24; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 < 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 22; 11.94/3.78 11.94/3.78 FROM: 24; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 > 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 22; 11.94/3.78 11.94/3.78 FROM: 10; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 25; 11.94/3.78 11.94/3.78 FROM: 23; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 25; 11.94/3.78 11.94/3.78 FROM: 8; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 >= 0 && oldX3 <= 3); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 24; 11.94/3.78 11.94/3.78 FROM: 8; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 < 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 26; 11.94/3.78 11.94/3.78 FROM: 8; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX3 > 3); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 26; 11.94/3.78 11.94/3.78 FROM: 25; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 27; 11.94/3.78 11.94/3.78 FROM: 26; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 27; 11.94/3.78 11.94/3.78 FROM: 5; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX2 < oldX4); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 6; 11.94/3.78 11.94/3.78 FROM: 27; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(0 = 0); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 5; 11.94/3.78 11.94/3.78 FROM: 5; 11.94/3.78 oldX0 := x0; 11.94/3.78 oldX1 := x1; 11.94/3.78 oldX2 := x2; 11.94/3.78 oldX3 := x3; 11.94/3.78 oldX4 := x4; 11.94/3.78 assume(oldX2 >= oldX4); 11.94/3.78 x0 := oldX0; 11.94/3.78 x1 := oldX1; 11.94/3.78 x2 := oldX2; 11.94/3.78 x3 := oldX3; 11.94/3.78 x4 := oldX4; 11.94/3.78 TO: 28; 11.94/3.78 11.94/3.78 11.94/3.78 ---------------------------------------- 11.94/3.78 11.94/3.78 (5) T2 (EQUIVALENT) 11.94/3.78 Initially, performed program simplifications using lexicographic rank functions: 11.94/3.78 * Removed transitions 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 54 using the following rank functions: 11.94/3.78 - Rank function 1: 11.94/3.78 RF for loc. 19: -21-30*x2+30*x4 11.94/3.78 RF for loc. 20: -23-30*x2+30*x4 11.94/3.78 RF for loc. 21: -22-30*x2+30*x4 11.94/3.78 RF for loc. 22: -19-30*x2+30*x4 11.94/3.78 RF for loc. 23: -25-30*x2+30*x4 11.94/3.78 RF for loc. 24: -17-30*x2+30*x4 11.94/3.78 RF for loc. 25: -26-30*x2+30*x4 11.94/3.78 RF for loc. 26: -24-30*x2+8*x3+30*x4 11.94/3.78 RF for loc. 27: -27-30*x2+30*x4 11.94/3.78 RF for loc. 28: -30*x2+30*x4 11.94/3.78 RF for loc. 29: -1-30*x2+30*x4 11.94/3.78 RF for loc. 30: -28-30*x2+30*x4 11.94/3.78 RF for loc. 31: -29-30*x2+30*x4 11.94/3.78 Bound for (chained) transitions 50: 1 11.94/3.78 Bound for (chained) transitions 51: 1 11.94/3.78 - Rank function 2: 11.94/3.78 RF for loc. 19: 6 11.94/3.78 RF for loc. 20: 4 11.94/3.78 RF for loc. 21: 5 11.94/3.78 RF for loc. 22: 7 11.94/3.78 RF for loc. 23: 3 11.94/3.78 RF for loc. 24: 8*oldX2 11.94/3.78 RF for loc. 25: 2 11.94/3.78 RF for loc. 26: 1+8*x2 11.94/3.78 RF for loc. 27: 1 11.94/3.78 RF for loc. 28: 2+8*x2 11.94/3.78 RF for loc. 29: 8*x2 11.94/3.78 RF for loc. 30: 0 11.94/3.78 RF for loc. 31: -1 11.94/3.78 Bound for (chained) transitions 26: 6 11.94/3.78 Bound for (chained) transitions 27: 6 11.94/3.78 Bound for (chained) transitions 28: 6 11.94/3.78 Bound for (chained) transitions 29: 5 11.94/3.78 Bound for (chained) transitions 30: 7 11.94/3.78 Bound for (chained) transitions 31: 7 11.94/3.78 Bound for (chained) transitions 32: 7 11.94/3.78 Bound for (chained) transitions 33: 4 11.94/3.78 Bound for (chained) transitions 34: 8 11.94/3.78 Bound for (chained) transitions 35: 8 11.94/3.78 Bound for (chained) transitions 36: 8 11.94/3.78 Bound for (chained) transitions 37: 3 11.94/3.78 Bound for (chained) transitions 38: 9 11.94/3.78 Bound for (chained) transitions 39: 9 11.94/3.78 Bound for (chained) transitions 40: 9 11.94/3.78 Bound for (chained) transitions 41: 2 11.94/3.78 Bound for (chained) transitions 42: 10 11.94/3.78 Bound for (chained) transitions 43: 10 11.94/3.78 Bound for (chained) transitions 44: 10 11.94/3.78 Bound for (chained) transitions 45: 1 11.94/3.78 Bound for (chained) transitions 46: 8 11.94/3.78 Bound for (chained) transitions 47, 54: 0 11.94/3.78 11.94/3.78 ---------------------------------------- 11.94/3.78 11.94/3.78 (6) 11.94/3.78 YES 12.02/8.00 EOF