37.04/14.61 MAYBE 37.04/14.62 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 37.04/14.62 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 37.04/14.62 37.04/14.62 37.04/14.62 Termination of the given C Problem could not be shown: 37.04/14.62 37.04/14.62 (0) C Problem 37.04/14.62 (1) CToIRSProof [EQUIVALENT, 0 ms] 37.04/14.62 (2) IntTRS 37.04/14.62 (3) IRS2T2 [EQUIVALENT, 0 ms] 37.04/14.62 (4) T2IntSys 37.04/14.62 (5) T2 Underapproximation [COMPLETE, 2832 ms] 37.04/14.62 (6) T2IntSys 37.04/14.62 (7) T2 Underapproximation [COMPLETE, 2584 ms] 37.04/14.62 (8) T2IntSys 37.04/14.62 (9) TerminationGraphProcessor [SOUND, 43 ms] 37.04/14.62 (10) IntTRS 37.04/14.62 (11) IntTRSCompressionProof [EQUIVALENT, 0 ms] 37.04/14.62 (12) IntTRS 37.04/14.62 (13) IntTRSPeriodicNontermProof [COMPLETE, 12 ms] 37.04/14.62 (14) NO 37.04/14.62 (15) CToLLVMProof [EQUIVALENT, 160 ms] 37.04/14.62 (16) LLVM problem 37.04/14.62 (17) LLVMToTerminationGraphProof [EQUIVALENT, 2093 ms] 37.04/14.62 (18) LLVM Symbolic Execution Graph 37.04/14.62 (19) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] 37.04/14.62 (20) LLVM Symbolic Execution Lasso 37.04/14.62 (21) Lasso2IRS [EQUIVALENT, 51 ms] 37.04/14.62 (22) IntTRS 37.04/14.62 (23) IRS2T2 [EQUIVALENT, 0 ms] 37.04/14.62 (24) T2IntSys 37.04/14.62 (25) T2 Underapproximation [COMPLETE, 2103 ms] 37.04/14.62 (26) T2IntSys 37.04/14.62 (27) T2 Underapproximation [COMPLETE, 1992 ms] 37.04/14.62 (28) T2IntSys 37.04/14.62 (29) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 37.04/14.62 (30) LLVM Symbolic Execution SCC 37.04/14.62 (31) SCC2IRS [SOUND, 1 ms] 37.04/14.62 (32) IntTRS 37.04/14.62 (33) IntTRSCompressionProof [EQUIVALENT, 0 ms] 37.04/14.62 (34) IntTRS 37.04/14.62 (35) IntTRSPeriodicNontermProof [COMPLETE, 11 ms] 37.04/14.62 (36) NO 37.04/14.62 (37) SCC2IRS [SOUND, 6 ms] 37.04/14.62 (38) IntTRS 37.04/14.62 (39) IRS2T2 [EQUIVALENT, 0 ms] 37.04/14.62 (40) T2IntSys 37.04/14.62 (41) T2 [COMPLETE, 1393 ms] 37.04/14.62 (42) NO 37.04/14.62 (43) SEGraph to IRS [EQUIVALENT, 60 ms] 37.04/14.62 (44) IntTRS 37.04/14.62 (45) IRS2T2 [EQUIVALENT, 0 ms] 37.04/14.62 (46) T2IntSys 37.04/14.62 (47) T2 Underapproximation [COMPLETE, 4603 ms] 37.04/14.62 (48) T2IntSys 37.04/14.62 (49) T2 Underapproximation [COMPLETE, 4342 ms] 37.04/14.62 (50) T2IntSys 37.04/14.62 37.04/14.62 37.04/14.62 ---------------------------------------- 37.04/14.62 37.04/14.62 (0) 37.04/14.62 Obligation: 37.04/14.62 c file /export/starexec/sandbox/benchmark/theBenchmark.c 37.04/14.62 ---------------------------------------- 37.04/14.62 37.04/14.62 (1) CToIRSProof (EQUIVALENT) 37.04/14.62 Parsed C Integer Program as IRS. 37.04/14.62 ---------------------------------------- 37.04/14.62 37.04/14.62 (2) 37.04/14.62 Obligation: 37.04/14.62 Rules: 37.04/14.62 f1(x, y, z) -> f2(x_1, y, z) :|: TRUE 37.04/14.62 f2(x1, x2, x3) -> f3(x1, 100, x3) :|: TRUE 37.04/14.62 f3(x4, x5, x6) -> f4(x4, x5, 1) :|: TRUE 37.04/14.62 f5(x7, x8, x9) -> f6(arith, x8, x9) :|: TRUE && arith = x7 - x8 37.04/14.62 f6(x25, x26, x27) -> f7(x25, x28, x27) :|: TRUE && x28 = x26 - x27 37.04/14.62 f7(x29, x30, x31) -> f8(x29, x30, x32) :|: TRUE && x32 = 0 - x31 37.04/14.62 f4(x16, x17, x18) -> f5(x16, x17, x18) :|: x16 >= 0 37.04/14.62 f8(x19, x20, x21) -> f4(x19, x20, x21) :|: TRUE 37.04/14.62 f4(x22, x23, x24) -> f9(x22, x23, x24) :|: x22 < 0 37.04/14.62 Start term: f1(x, y, z) 37.04/14.62 37.04/14.62 ---------------------------------------- 37.04/14.62 37.04/14.62 (3) IRS2T2 (EQUIVALENT) 37.04/14.62 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 37.04/14.62 37.04/14.62 (f1_3,1) 37.04/14.62 (f2_3,2) 37.04/14.62 (f3_3,3) 37.04/14.62 (f4_3,4) 37.04/14.62 (f5_3,5) 37.04/14.62 (f6_3,6) 37.04/14.62 (f7_3,7) 37.04/14.62 (f8_3,8) 37.04/14.62 (f9_3,9) 37.04/14.62 37.04/14.62 ---------------------------------------- 37.04/14.62 37.04/14.62 (4) 37.04/14.62 Obligation: 37.04/14.62 START: 1; 37.04/14.62 37.04/14.62 FROM: 1; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 oldX3 := nondet(); 37.04/14.62 assume(0 = 0); 37.04/14.62 x0 := oldX3; 37.04/14.62 x1 := oldX1; 37.04/14.62 x2 := oldX2; 37.04/14.62 TO: 2; 37.04/14.62 37.04/14.62 FROM: 2; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 assume(0 = 0); 37.04/14.62 x0 := oldX0; 37.04/14.62 x1 := 100; 37.04/14.62 x2 := oldX2; 37.04/14.62 TO: 3; 37.04/14.62 37.04/14.62 FROM: 3; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 assume(0 = 0); 37.04/14.62 x0 := oldX0; 37.04/14.62 x1 := oldX1; 37.04/14.62 x2 := 1; 37.04/14.62 TO: 4; 37.04/14.62 37.04/14.62 FROM: 5; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 oldX3 := -(oldX1 - oldX0); 37.04/14.62 assume(0 = 0 && oldX3 = oldX0 - oldX1); 37.04/14.62 x0 := -(oldX1 - oldX0); 37.04/14.62 x1 := oldX1; 37.04/14.62 x2 := oldX2; 37.04/14.62 TO: 6; 37.04/14.62 37.04/14.62 FROM: 6; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 oldX3 := -(oldX2 - oldX1); 37.04/14.62 assume(0 = 0 && oldX3 = oldX1 - oldX2); 37.04/14.62 x0 := oldX0; 37.04/14.62 x1 := -(oldX2 - oldX1); 37.04/14.62 x2 := oldX2; 37.04/14.62 TO: 7; 37.04/14.62 37.04/14.62 FROM: 7; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 oldX3 := -(0 - -(oldX2)); 37.04/14.62 assume(0 = 0 && oldX3 = 0 - oldX2); 37.04/14.62 x0 := oldX0; 37.04/14.62 x1 := oldX1; 37.04/14.62 x2 := -(0 - -(oldX2)); 37.04/14.62 TO: 8; 37.04/14.62 37.04/14.62 FROM: 4; 37.04/14.62 oldX0 := x0; 37.04/14.62 oldX1 := x1; 37.04/14.62 oldX2 := x2; 37.04/14.62 assume(oldX0 >= 0); 37.04/14.62 x0 := oldX0; 37.04/14.62 x1 := oldX1; 37.04/14.62 x2 := oldX2; 37.04/14.63 TO: 5; 37.04/14.63 37.04/14.63 FROM: 8; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := oldX0; 37.04/14.63 x1 := oldX1; 37.04/14.63 x2 := oldX2; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 4; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(oldX0 < 0); 37.04/14.63 x0 := oldX0; 37.04/14.63 x1 := oldX1; 37.04/14.63 x2 := oldX2; 37.04/14.63 TO: 9; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (5) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (6) 37.04/14.63 Obligation: 37.04/14.63 START: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := nondet(); 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := oldX3; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 2; 37.04/14.63 37.04/14.63 FROM: 2; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := 100; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 3; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := 1; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 5; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x0 - x1; 37.04/14.63 assume(0 = 0 && x0 - x1 = x0 - x1); 37.04/14.63 x0 := x0 - x1; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 6; 37.04/14.63 37.04/14.63 FROM: 6; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x1 - x2; 37.04/14.63 assume(0 = 0 && x1 - x2 = x1 - x2); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 7; 37.04/14.63 37.04/14.63 FROM: 7; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := 0 - x2; 37.04/14.63 assume(0 = 0 && 0 - x2 = 0 - x2); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := 0 - x2; 37.04/14.63 TO: 8; 37.04/14.63 37.04/14.63 FROM: 4; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(x0 >= 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 5; 37.04/14.63 37.04/14.63 FROM: 8; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 4; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(x0 < 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 9; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (7) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (8) 37.04/14.63 Obligation: 37.04/14.63 START: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := nondet(); 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := oldX3; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 2; 37.04/14.63 37.04/14.63 FROM: 2; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := 100; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 3; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := 1; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 5; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x0 - x1; 37.04/14.63 assume(0 = 0 && x0 - x1 = x0 - x1); 37.04/14.63 x0 := x0 - x1; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 6; 37.04/14.63 37.04/14.63 FROM: 6; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x1 - x2; 37.04/14.63 assume(0 = 0 && x1 - x2 = x1 - x2); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 7; 37.04/14.63 37.04/14.63 FROM: 7; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := -(x2) - 0; 37.04/14.63 assume(0 = 0 && 0 - x2 = 0 - x2); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := -(x2) - 0; 37.04/14.63 TO: 8; 37.04/14.63 37.04/14.63 FROM: 4; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(x0 >= 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 5; 37.04/14.63 37.04/14.63 FROM: 8; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(0 = 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 4; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 assume(x0 < 0); 37.04/14.63 x0 := x0; 37.04/14.63 x1 := x1; 37.04/14.63 x2 := x2; 37.04/14.63 TO: 9; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (9) TerminationGraphProcessor (SOUND) 37.04/14.63 Constructed the termination graph and obtained one non-trivial SCC. 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (10) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f4(x16, x17, x18) -> f5(x16, x17, x18) :|: x16 >= 0 37.04/14.63 f8(x19, x20, x21) -> f4(x19, x20, x21) :|: TRUE 37.04/14.63 f7(x29, x30, x31) -> f8(x29, x30, x32) :|: TRUE && x32 = 0 - x31 37.04/14.63 f6(x25, x26, x27) -> f7(x25, x28, x27) :|: TRUE && x28 = x26 - x27 37.04/14.63 f5(x7, x8, x9) -> f6(arith, x8, x9) :|: TRUE && arith = x7 - x8 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (11) IntTRSCompressionProof (EQUIVALENT) 37.04/14.63 Compressed rules. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (12) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f6(x25:0, x26:0, x27:0) -> f6(x25:0 - (x26:0 - x27:0), x26:0 - x27:0, 0 - x27:0) :|: x25:0 > -1 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (13) IntTRSPeriodicNontermProof (COMPLETE) 37.04/14.63 Normalized system to the following form: 37.04/14.63 f(pc, x25:0, x26:0, x27:0) -> f(1, x25:0 - (x26:0 - x27:0), x26:0 - x27:0, 0 - x27:0) :|: pc = 1 && x25:0 > -1 37.04/14.63 Witness term starting non-terminating reduction: f(1, 10, 0, 0) 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (14) 37.04/14.63 NO 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (15) CToLLVMProof (EQUIVALENT) 37.04/14.63 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (16) 37.04/14.63 Obligation: 37.04/14.63 LLVM Problem 37.04/14.63 37.04/14.63 Aliases: 37.04/14.63 37.04/14.63 Data layout: 37.04/14.63 37.04/14.63 "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 37.04/14.63 37.04/14.63 Machine: 37.04/14.63 37.04/14.63 "x86_64-pc-linux-gnu" 37.04/14.63 37.04/14.63 Type definitions: 37.04/14.63 37.04/14.63 Global variables: 37.04/14.63 37.04/14.63 Function declarations and definitions: 37.04/14.63 37.04/14.63 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 37.04/14.63 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 37.04/14.63 0: 37.04/14.63 %1 = alloca i32, align 4 37.04/14.63 %x = alloca i32, align 4 37.04/14.63 %y = alloca i32, align 4 37.04/14.63 %z = alloca i32, align 4 37.04/14.63 store 0, %1 37.04/14.63 %2 = call i32 @__VERIFIER_nondet_int() 37.04/14.63 store %2, %x 37.04/14.63 store 100, %y 37.04/14.63 store 1, %z 37.04/14.63 br %3 37.04/14.63 3: 37.04/14.63 %4 = load %x 37.04/14.63 %5 = icmp sge %4 0 37.04/14.63 br %5, %6, %15 37.04/14.63 6: 37.04/14.63 %7 = load %x 37.04/14.63 %8 = load %y 37.04/14.63 %9 = sub %7 %8 37.04/14.63 store %9, %x 37.04/14.63 %10 = load %y 37.04/14.63 %11 = load %z 37.04/14.63 %12 = sub %10 %11 37.04/14.63 store %12, %y 37.04/14.63 %13 = load %z 37.04/14.63 %14 = sub 0 %13 37.04/14.63 store %14, %z 37.04/14.63 br %3 37.04/14.63 15: 37.04/14.63 ret 0 37.04/14.63 37.04/14.63 37.04/14.63 Analyze Termination of all function calls matching the pattern: 37.04/14.63 main() 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (17) LLVMToTerminationGraphProof (EQUIVALENT) 37.04/14.63 Constructed symbolic execution graph for LLVM program and proved memory safety. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (18) 37.04/14.63 Obligation: 37.04/14.63 SE Graph 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (19) SymbolicExecutionGraphToLassoProof (EQUIVALENT) 37.04/14.63 Converted SEGraph to 1 independent lasso. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (20) 37.04/14.63 Obligation: 37.04/14.63 Lasso 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (21) Lasso2IRS (EQUIVALENT) 37.04/14.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 37.04/14.63 Generated rules. Obtained 50 rulesP rules: 37.04/14.63 f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 <= v161 37.04/14.63 f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: v170 + v163 = v161 37.04/14.63 f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) -> f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: v172 + v164 = v163 37.04/14.63 f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) -> f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: v174 + v164 = 0 && 0 <= 1 + v174 && v174 <= 1 37.04/14.63 f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_250(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_250(v153, v154, v155, v156, v157, v158, 1, v160, v161, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_81 -> f_82(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 37.04/14.63 f_82(v1, v2, 3, 1, 4) -> f_83(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 37.04/14.63 f_83(v1, v3, v2, v4, 3, 1, 4) -> f_84(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 37.04/14.63 f_84(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_85(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 37.04/14.63 f_85(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_86(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_86(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_87(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_87(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_88(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_88(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_89(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 3, 1, 4) :|: TRUE 37.04/14.63 f_89(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 3, 1, 4) -> f_90(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: TRUE 37.04/14.63 f_90(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_91(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: TRUE 37.04/14.63 f_91(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_92(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: 0 = 0 37.04/14.63 f_92(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_93(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: 0 <= v9 37.04/14.63 f_93(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_95(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: 0 = 0 37.04/14.63 f_95(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_97(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: TRUE 37.04/14.63 f_97(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_99(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: 0 = 0 37.04/14.63 f_99(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_100(v1, v3, v5, v7, v9, 1, 100, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_100(v1, v3, v5, v7, v9, 1, 100, v2, v4, v6, v8, 0, 3, 4) -> f_101(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 100 + v11 = v9 && 0 <= 100 + v11 37.04/14.63 f_101(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_102(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_102(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_103(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_103(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_104(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_104(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_105(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_105(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_106(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_106(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_107(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_107(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_108(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_108(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_109(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_109(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_110(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_110(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_130(v1, v3, v5, v7, v9, v9, 1, 100, v11, 1, 99, -1, v2, v4, v6, v8, 0, 3, 100, 99, 4) :|: TRUE 37.04/14.63 f_130(v15, v16, v17, v18, v19, v20, 1, v22, v23, v24, v25, v26, v27, v28, v29, v30, 0, 3, 100, 99, 4) -> f_150(v15, v16, v17, v18, v19, v20, 1, v22, v23, v24, v25, v26, v27, v28, v29, v30, 0, 3, 99, 100, 98, 101, 4) :|: TRUE 37.04/14.63 f_150(v38, v39, v40, v41, v42, v43, 1, v45, v46, v47, v48, v49, v50, v51, v52, v53, 0, 3, 99, 100, 98, 101, 4) -> f_170(v38, v39, v40, v41, v42, v43, 1, v45, v46, v47, v48, v49, v50, v51, v52, v53, 0, 3, 98, 101, 97, 4) :|: TRUE 37.04/14.63 f_170(v61, v62, v63, v64, v65, v66, 1, v68, v69, v70, v71, v72, v73, v74, v75, v76, 0, 3, 98, 101, 97, 4) -> f_190(v61, v62, v63, v64, v65, v66, 1, v68, v69, v70, v71, v72, v73, v74, v75, v76, 0, 3, 4) :|: TRUE 37.04/14.63 f_190(v84, v85, v86, v87, v88, v89, 1, v91, v92, v93, v94, v95, v96, v97, v98, v99, 0, 3, 4) -> f_210(v84, v85, v86, v87, v88, v89, 1, v91, v92, v93, v94, v95, v96, v97, v98, v99, 0, 3, 4) :|: TRUE 37.04/14.63 f_210(v107, v108, v109, v110, v111, v112, 1, v114, v115, v116, v117, v118, v119, v120, v121, v122, 0, 3, 4) -> f_230(v107, v108, v109, v110, v111, v112, 1, v114, v115, v116, v117, v118, v119, v120, v121, v122, 0, 3, 4) :|: TRUE 37.04/14.63 f_230(v130, v131, v132, v133, v134, v135, 1, v137, v138, v139, v140, v141, v142, v143, v144, v145, 0, 3, 4) -> f_250(v130, v131, v132, v133, v134, v135, 1, v137, v138, v139, v140, v141, v142, v143, v144, v145, 0, 3, 4) :|: TRUE 37.04/14.63 Combined rules. Obtained 2 rulesP rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0 + (v172:0 + v164:0), 1, v158:0, v160:0, v162:0, v172:0 + v164:0, v164:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, 1, v170:0 + (v172:0 + v164:0), v172:0 + v164:0, v164:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) :|: v170:0 + (v172:0 + v164:0) > -1 && v174:0 > -2 && v174:0 < 2 && v174:0 + v164:0 = 0 37.04/14.63 f_81 -> f_251(v1:0, v3:0, v5:0, v7:0, 100 + v11:0, v11:0, 1, 100 + v11:0, 100, 1, 99, -1, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v11:0 > -101 37.04/14.63 Filtered unneeded arguments: 37.04/14.63 f_251(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_251(x6, x11, x12) 37.04/14.63 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 f_81 -> f_251(v11:0, 99, -1) :|: v11:0 > -101 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (22) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 f_81 -> f_251(v11:0, 99, -1) :|: v11:0 > -101 37.04/14.63 Start term: f_81 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (23) IRS2T2 (EQUIVALENT) 37.04/14.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 37.04/14.63 37.04/14.63 (f_251_3,1) 37.04/14.63 (f_81_3,2) 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (24) 37.04/14.63 Obligation: 37.04/14.63 START: 2; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX4 := oldX1 - oldX2; 37.04/14.63 oldX5 := -(oldX2 - 0); 37.04/14.63 oldX3 := oldX0 - (oldX4 + oldX2); 37.04/14.63 assume(oldX5 > -2 && oldX3 + (oldX4 + oldX2) > -1 && oldX5 + oldX2 = 0 && oldX5 < 2 && oldX0 = oldX3 + (oldX4 + oldX2) && oldX1 = oldX4 + oldX2); 37.04/14.63 x0 := oldX0 - (oldX4 + oldX2); 37.04/14.63 x1 := oldX1 - oldX2; 37.04/14.63 x2 := -(oldX2 - 0); 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 2; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := nondet(); 37.04/14.63 assume(oldX3 > -101); 37.04/14.63 x0 := oldX3; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (25) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (26) 37.04/14.63 Obligation: 37.04/14.63 START: 2; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX4 := x1 - x2; 37.04/14.63 oldX5 := 0 - x2; 37.04/14.63 oldX3 := x0 - (x1 - x2 + x2); 37.04/14.63 assume(0 - x2 > -2 && x0 - (x1 - x2 + x2) + (x1 - x2 + x2) > -1 && 0 - x2 + x2 = 0 && 0 - x2 < 2 && x0 = x0 - (x1 - x2 + x2) + (x1 - x2 + x2) && x1 = x1 - x2 + x2); 37.04/14.63 x0 := x0 - (x1 - x2 + x2); 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := 0 - x2; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 2; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := nondet(); 37.04/14.63 assume(oldX3 > -101); 37.04/14.63 x0 := oldX3; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (27) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (28) 37.04/14.63 Obligation: 37.04/14.63 START: 2; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX4 := x1 - x2; 37.04/14.63 oldX5 := -(x2) - 0; 37.04/14.63 oldX3 := x0 - (x1 - x2 + x2); 37.04/14.63 assume(0 - x2 > -2 && x0 - (x1 - x2 + x2) + (x1 - x2 + x2) > -1 && 0 - x2 + x2 = 0 && 0 - x2 < 2 && x0 = x0 - (x1 - x2 + x2) + (x1 - x2 + x2) && x1 = x1 - x2 + x2); 37.04/14.63 x0 := x0 - (x1 - x2 + x2); 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := -(x2) - 0; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 2; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := nondet(); 37.04/14.63 assume(oldX3 > -101); 37.04/14.63 x0 := oldX3; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (29) SymbolicExecutionGraphToSCCProof (SOUND) 37.04/14.63 Splitted symbolic execution graph to 1 SCC. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (30) 37.04/14.63 Obligation: 37.04/14.63 SCC 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (31) SCC2IRS (SOUND) 37.04/14.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 37.04/14.63 Generated rules. Obtained 17 rulesP rules: 37.04/14.63 f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 <= v161 37.04/14.63 f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: v170 + v163 = v161 37.04/14.63 f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) -> f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: v172 + v164 = v163 37.04/14.63 f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) -> f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: v174 + v164 = 0 && 0 <= 1 + v174 && v174 <= 1 37.04/14.63 f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_250(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_250(v153, v154, v155, v156, v157, v158, 1, v160, v161, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 Combined rules. Obtained 1 rulesP rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0 + (v172:0 + v164:0), 1, v158:0, v160:0, v162:0, v172:0 + v164:0, v164:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, 1, v170:0 + (v172:0 + v164:0), v172:0 + v164:0, v164:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) :|: v170:0 + (v172:0 + v164:0) > -1 && v174:0 > -2 && v174:0 < 2 && v174:0 + v164:0 = 0 37.04/14.63 Filtered unneeded arguments: 37.04/14.63 f_251(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_251(x6, x11, x12) 37.04/14.63 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (32) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (33) IntTRSCompressionProof (EQUIVALENT) 37.04/14.63 Compressed rules. 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (34) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f_251(sum~v170:0:0~sum~v172:0:0~v164:0:0, sum~v172:0:0~v164:0:0, v164:0:0) -> f_251(v170:0:0, v172:0:0, v174:0:0) :|: v174:0:0 + v164:0:0 = 0 && v174:0:0 < 2 && v170:0:0 + (v172:0:0 + v164:0:0) > -1 && v174:0:0 > -2 && sum~v170:0:0~sum~v172:0:0~v164:0:0 = v170:0:0 + (v172:0:0 + v164:0:0) && sum~v172:0:0~v164:0:0 = v172:0:0 + v164:0:0 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (35) IntTRSPeriodicNontermProof (COMPLETE) 37.04/14.63 Normalized system to the following form: 37.04/14.63 f(pc, sum~v170:0:0~sum~v172:0:0~v164:0:0, sum~v172:0:0~v164:0:0, v164:0:0) -> f(1, v170:0:0, v172:0:0, v174:0:0) :|: pc = 1 && (v174:0:0 + v164:0:0 = 0 && v174:0:0 < 2 && v170:0:0 + (v172:0:0 + v164:0:0) > -1 && v174:0:0 > -2 && sum~v170:0:0~sum~v172:0:0~v164:0:0 = v170:0:0 + (v172:0:0 + v164:0:0) && sum~v172:0:0~v164:0:0 = v172:0:0 + v164:0:0) 37.04/14.63 Witness term starting non-terminating reduction: f(1, 2, 0, 0) 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (36) 37.04/14.63 NO 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (37) SCC2IRS (SOUND) 37.04/14.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 37.04/14.63 Generated rules. Obtained 17 rulesP rules: 37.04/14.63 f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 <= v161 37.04/14.63 f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: v170 + v163 = v161 37.04/14.63 f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) -> f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: v172 + v164 = v163 37.04/14.63 f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) -> f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: v174 + v164 = 0 && 0 <= 1 + v174 && v174 <= 1 37.04/14.63 f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_250(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: 1 <= v153 && 1 <= v154 && 1 <= v155 && 1 <= v156 && 0 <= v157 && 0 <= v161 && 0 <= 1 + v164 && v164 <= 1 && 0 <= 1 + v174 && v174 <= 1 && 4 <= v165 && 4 <= v166 && 4 <= v167 && 4 <= v168 && v153 <= v165 && v154 <= v166 && v155 <= v167 && v156 <= v168 37.04/14.63 f_250(v153, v154, v155, v156, v157, v158, 1, v160, v161, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 Combined rules. Obtained 1 rulesP rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0 + (v172:0 + v164:0), 1, v158:0, v160:0, v162:0, v172:0 + v164:0, v164:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, 1, v170:0 + (v172:0 + v164:0), v172:0 + v164:0, v164:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) :|: v154:0 > 0 && v153:0 > 0 && v155:0 > 0 && v156:0 > 0 && v157:0 > -1 && v170:0 + (v172:0 + v164:0) > -1 && v164:0 > -2 && v164:0 < 2 && v174:0 > -2 && v174:0 < 2 && v165:0 > 3 && v166:0 > 3 && v167:0 > 3 && v168:0 > 3 && v174:0 + v164:0 = 0 && v165:0 >= v153:0 && v166:0 >= v154:0 && v168:0 >= v156:0 && v167:0 >= v155:0 37.04/14.63 Filtered unneeded arguments: 37.04/14.63 f_251(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_251(x1, x2, x3, x4, x5, x6, x11, x12, x13, x14, x15, x16) 37.04/14.63 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0, v165:0, v166:0, v167:0, v168:0) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0) :|: v153:0 > 0 && v154:0 > 0 && v155:0 > 0 && v156:0 > 0 && v157:0 > -1 && v170:0 + (v172:0 + v164:0) > -1 && v164:0 > -2 && v164:0 < 2 && v174:0 > -2 && v174:0 < 2 && v165:0 > 3 && v166:0 > 3 && v167:0 > 3 && v168:0 > 3 && v174:0 + v164:0 = 0 && v165:0 >= v153:0 && v166:0 >= v154:0 && v167:0 >= v155:0 && v168:0 >= v156:0 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (38) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0, v165:0, v166:0, v167:0, v168:0) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0) :|: v153:0 > 0 && v154:0 > 0 && v155:0 > 0 && v156:0 > 0 && v157:0 > -1 && v170:0 + (v172:0 + v164:0) > -1 && v164:0 > -2 && v164:0 < 2 && v174:0 > -2 && v174:0 < 2 && v165:0 > 3 && v166:0 > 3 && v167:0 > 3 && v168:0 > 3 && v174:0 + v164:0 = 0 && v165:0 >= v153:0 && v166:0 >= v154:0 && v167:0 >= v155:0 && v168:0 >= v156:0 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (39) IRS2T2 (EQUIVALENT) 37.04/14.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 37.04/14.63 37.04/14.63 (f_251_12,1) 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (40) 37.04/14.63 Obligation: 37.04/14.63 START: 0; 37.04/14.63 37.04/14.63 FROM: 0; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX13 := oldX6 - oldX7; 37.04/14.63 oldX14 := -(oldX7 - 0); 37.04/14.63 oldX12 := oldX5 - (oldX13 + oldX7); 37.04/14.63 assume(oldX0 > 0 && oldX1 > 0 && oldX2 > 0 && oldX3 > 0 && oldX4 > -1 && oldX12 + (oldX13 + oldX7) > -1 && oldX7 > -2 && oldX7 < 2 && oldX14 > -2 && oldX14 < 2 && oldX8 > 3 && oldX9 > 3 && oldX10 > 3 && oldX11 > 3 && oldX14 + oldX7 = 0 && oldX8 >= oldX0 && oldX9 >= oldX1 && oldX10 >= oldX2 && oldX11 >= oldX3 && oldX5 = oldX12 + (oldX13 + oldX7) && oldX6 = oldX13 + oldX7); 37.04/14.63 x0 := oldX0; 37.04/14.63 x1 := oldX1; 37.04/14.63 x2 := oldX2; 37.04/14.63 x3 := oldX3; 37.04/14.63 x4 := oldX4; 37.04/14.63 x5 := oldX5 - (oldX13 + oldX7); 37.04/14.63 x6 := oldX6 - oldX7; 37.04/14.63 x7 := -(oldX7 - 0); 37.04/14.63 x8 := oldX8; 37.04/14.63 x9 := oldX9; 37.04/14.63 x10 := oldX10; 37.04/14.63 x11 := oldX11; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (41) T2 (COMPLETE) 37.04/14.63 Found this recurrent set for cutpoint 5: x0 == 1 and x1 == 1 and x10 == 4 and x11 == 4 and x2 == 1 and x3 == 1 and x4 == 0 and x5 == 0 and x6 == 0 and x7 == 0 and x8 == 4 and x9 == 4 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (42) 37.04/14.63 NO 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (43) SEGraph to IRS (EQUIVALENT) 37.04/14.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 37.04/14.63 Generated rules. Obtained 56 rulesP rules: 37.04/14.63 f_81 -> f_82(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 37.04/14.63 f_82(v1, v2, 3, 1, 4) -> f_83(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 37.04/14.63 f_83(v1, v3, v2, v4, 3, 1, 4) -> f_84(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 37.04/14.63 f_84(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_85(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 37.04/14.63 f_85(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_86(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_86(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_87(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_87(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_88(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE 37.04/14.63 f_88(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_89(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 3, 1, 4) :|: TRUE 37.04/14.63 f_89(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 3, 1, 4) -> f_90(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: TRUE 37.04/14.63 f_90(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_91(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: TRUE 37.04/14.63 f_91(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_92(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: 0 = 0 37.04/14.63 f_92(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_93(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: 0 <= v9 37.04/14.63 f_92(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_94(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) :|: v9 < 0 37.04/14.63 f_93(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_95(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: 0 = 0 37.04/14.63 f_94(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 100, 1, 3, 4) -> f_96(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 100, 1, 3, 4) :|: 0 = 0 37.04/14.63 f_95(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_97(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: TRUE 37.04/14.63 f_96(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 100, 1, 3, 4) -> f_98(v1, v3, v5, v7, v9, 0, v2, v4, v6, v8, 100, 1, 3, 4) :|: TRUE 37.04/14.63 f_97(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_99(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) :|: 0 = 0 37.04/14.63 f_99(v1, v3, v5, v7, v9, 1, v2, v4, v6, v8, 0, 100, 3, 4) -> f_100(v1, v3, v5, v7, v9, 1, 100, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_100(v1, v3, v5, v7, v9, 1, 100, v2, v4, v6, v8, 0, 3, 4) -> f_101(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 100 + v11 = v9 && 0 <= 100 + v11 37.04/14.63 f_101(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_102(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_102(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_103(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_103(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_104(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_104(v1, v3, v5, v7, v9, 1, 100, v11, v2, v4, v6, v8, 0, 3, 4) -> f_105(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_105(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_106(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_106(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_107(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_107(v1, v3, v5, v7, v9, 1, 100, v11, 99, v2, v4, v6, v8, 0, 3, 4) -> f_108(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_108(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_109(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_109(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_110(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE 37.04/14.63 f_110(v1, v3, v5, v7, v9, 1, 100, v11, 99, -1, v2, v4, v6, v8, 0, 3, 4) -> f_130(v1, v3, v5, v7, v9, v9, 1, 100, v11, 1, 99, -1, v2, v4, v6, v8, 0, 3, 100, 99, 4) :|: TRUE 37.04/14.63 f_130(v15, v16, v17, v18, v19, v20, 1, v22, v23, v24, v25, v26, v27, v28, v29, v30, 0, 3, 100, 99, 4) -> f_150(v15, v16, v17, v18, v19, v20, 1, v22, v23, v24, v25, v26, v27, v28, v29, v30, 0, 3, 99, 100, 98, 101, 4) :|: TRUE 37.04/14.63 f_150(v38, v39, v40, v41, v42, v43, 1, v45, v46, v47, v48, v49, v50, v51, v52, v53, 0, 3, 99, 100, 98, 101, 4) -> f_170(v38, v39, v40, v41, v42, v43, 1, v45, v46, v47, v48, v49, v50, v51, v52, v53, 0, 3, 98, 101, 97, 4) :|: TRUE 37.04/14.63 f_170(v61, v62, v63, v64, v65, v66, 1, v68, v69, v70, v71, v72, v73, v74, v75, v76, 0, 3, 98, 101, 97, 4) -> f_190(v61, v62, v63, v64, v65, v66, 1, v68, v69, v70, v71, v72, v73, v74, v75, v76, 0, 3, 4) :|: TRUE 37.04/14.63 f_190(v84, v85, v86, v87, v88, v89, 1, v91, v92, v93, v94, v95, v96, v97, v98, v99, 0, 3, 4) -> f_210(v84, v85, v86, v87, v88, v89, 1, v91, v92, v93, v94, v95, v96, v97, v98, v99, 0, 3, 4) :|: TRUE 37.04/14.63 f_210(v107, v108, v109, v110, v111, v112, 1, v114, v115, v116, v117, v118, v119, v120, v121, v122, 0, 3, 4) -> f_230(v107, v108, v109, v110, v111, v112, 1, v114, v115, v116, v117, v118, v119, v120, v121, v122, 0, 3, 4) :|: TRUE 37.04/14.63 f_230(v130, v131, v132, v133, v134, v135, 1, v137, v138, v139, v140, v141, v142, v143, v144, v145, 0, 3, 4) -> f_250(v130, v131, v132, v133, v134, v135, 1, v137, v138, v139, v140, v141, v142, v143, v144, v145, 0, 3, 4) :|: TRUE 37.04/14.63 f_250(v153, v154, v155, v156, v157, v158, 1, v160, v161, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 <= v161 37.04/14.63 f_251(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_253(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: v161 < 0 37.04/14.63 f_252(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_253(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_255(v153, v154, v155, v156, v157, v161, 0, v158, v160, v162, v163, v164, v165, v166, v167, v168, 3, 1, 4) :|: 0 = 0 37.04/14.63 f_254(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_255(v153, v154, v155, v156, v157, v161, 0, v158, v160, v162, v163, v164, v165, v166, v167, v168, 3, 1, 4) -> f_257(v153, v154, v155, v156, v157, v161, 0, v158, v160, v162, v163, v164, v165, v166, v167, v168, 3, 1, 4) :|: TRUE 37.04/14.63 f_256(v153, v154, v155, v156, v157, v161, 1, v158, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_258(v153, v154, v155, v156, v157, v161, 1, v160, v162, v163, v164, v165, v166, v167, v168, 0, 3, 4) -> f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_259(v153, v154, v155, v156, v157, v161, 1, v163, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: v170 + v163 = v161 37.04/14.63 f_260(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_261(v153, v154, v155, v156, v157, v161, 1, v163, v170, v160, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_262(v153, v154, v155, v156, v157, v161, 1, v163, v170, v162, v164, v165, v166, v167, v168, 0, 3, 4) -> f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_263(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v162, v165, v166, v167, v168, 0, 3, 4) -> f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: v172 + v164 = v163 37.04/14.63 f_264(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_265(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v162, v165, v166, v167, v168, 0, 3, 4) -> f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) :|: 0 = 0 37.04/14.63 f_266(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v165, v166, v167, v168, 0, 3, 4) -> f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: v174 + v164 = 0 && 0 <= 1 + v174 && v174 <= 1 37.04/14.63 f_267(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_268(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 f_269(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) -> f_250(v153, v154, v155, v156, v157, v161, 1, v163, v170, v164, v172, v174, v165, v166, v167, v168, 0, 3, 4) :|: TRUE 37.04/14.63 Combined rules. Obtained 4 rulesP rules: 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0 + (v172:0 + v164:0), 1, v158:0, v160:0, v162:0, v172:0 + v164:0, v164:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) -> f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v170:0, 1, v170:0 + (v172:0 + v164:0), v172:0 + v164:0, v164:0, v172:0, v174:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) :|: v170:0 + (v172:0 + v164:0) > -1 && v174:0 > -2 && v174:0 < 2 && v174:0 + v164:0 = 0 37.04/14.63 f_251(v153:0, v154:0, v155:0, v156:0, v157:0, v161:0, 1, v158:0, v160:0, v162:0, v163:0, v164:0, v165:0, v166:0, v167:0, v168:0, 0, 3, 4) -> f_257(v153:0, v154:0, v155:0, v156:0, v157:0, v161:0, 0, v158:0, v160:0, v162:0, v163:0, v164:0, v165:0, v166:0, v167:0, v168:0, 3, 1, 4) :|: v161:0 < 0 37.04/14.63 f_81 -> f_98(v1:0, v3:0, v5:0, v7:0, v9:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 100, 1, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 < 0 37.04/14.63 f_81 -> f_251(v1:0, v3:0, v5:0, v7:0, 100 + v11:0, v11:0, 1, 100 + v11:0, 100, 1, 99, -1, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v11:0 > -101 37.04/14.63 Filtered unneeded arguments: 37.04/14.63 f_251(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_251(x6, x11, x12) 37.04/14.63 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 f_251(v161:0, v163:0, v164:0) -> f_257(v153:0, v154:0, v155:0, v156:0, v157:0, v161:0, 0, v158:0, v160:0, v162:0, v163:0, v164:0, v165:0, v166:0, v167:0, v168:0, 3, 1, 4) :|: v161:0 < 0 37.04/14.63 f_81 -> f_98(v1:0, v3:0, v5:0, v7:0, v9:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 100, 1, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v9:0 < 0 && v7:0 > 0 37.04/14.63 f_81 -> f_251(v11:0, 99, -1) :|: v11:0 > -101 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (44) 37.04/14.63 Obligation: 37.04/14.63 Rules: 37.04/14.63 f_251(sum~v170:0~sum~v172:0~v164:0, sum~v172:0~v164:0, v164:0) -> f_251(v170:0, v172:0, v174:0) :|: v174:0 > -2 && v170:0 + (v172:0 + v164:0) > -1 && v174:0 + v164:0 = 0 && v174:0 < 2 && sum~v170:0~sum~v172:0~v164:0 = v170:0 + (v172:0 + v164:0) && sum~v172:0~v164:0 = v172:0 + v164:0 37.04/14.63 f_251(x, x1, x2) -> f_257(x3, x4, x5, x6, x7, x, 0, x8, x9, x10, x1, x2, x11, x12, x13, x14, 3, 1, 4) :|: x < 0 37.04/14.63 f_81 -> f_98(v1:0, v3:0, v5:0, v7:0, v9:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 100, 1, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v9:0 < 0 && v7:0 > 0 37.04/14.63 f_81 -> f_251(v11:0, 99, -1) :|: v11:0 > -101 37.04/14.63 Start term: f_81 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (45) IRS2T2 (EQUIVALENT) 37.04/14.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 37.04/14.63 37.04/14.63 (f_251_19,1) 37.04/14.63 (f_257_19,2) 37.04/14.63 (f_81_19,3) 37.04/14.63 (f_98_19,4) 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (46) 37.04/14.63 Obligation: 37.04/14.63 START: 3; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX20 := oldX1 - oldX2; 37.04/14.63 oldX21 := -(oldX2 - 0); 37.04/14.63 oldX19 := oldX0 - (oldX20 + oldX2); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 oldX36 := nondet(); 37.04/14.63 oldX37 := nondet(); 37.04/14.63 assume(oldX21 > -2 && oldX19 + (oldX20 + oldX2) > -1 && oldX21 + oldX2 = 0 && oldX21 < 2 && oldX0 = oldX19 + (oldX20 + oldX2) && oldX1 = oldX20 + oldX2); 37.04/14.63 x0 := oldX0 - (oldX20 + oldX2); 37.04/14.63 x1 := oldX1 - oldX2; 37.04/14.63 x2 := -(oldX2 - 0); 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX24; 37.04/14.63 x6 := oldX25; 37.04/14.63 x7 := oldX26; 37.04/14.63 x8 := oldX27; 37.04/14.63 x9 := oldX28; 37.04/14.63 x10 := oldX29; 37.04/14.63 x11 := oldX30; 37.04/14.63 x12 := oldX31; 37.04/14.63 x13 := oldX32; 37.04/14.63 x14 := oldX33; 37.04/14.63 x15 := oldX34; 37.04/14.63 x16 := oldX35; 37.04/14.63 x17 := oldX36; 37.04/14.63 x18 := oldX37; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 assume(oldX0 < 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX0; 37.04/14.63 x6 := 0; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX1; 37.04/14.63 x11 := oldX2; 37.04/14.63 x12 := oldX27; 37.04/14.63 x13 := oldX28; 37.04/14.63 x14 := oldX29; 37.04/14.63 x15 := oldX30; 37.04/14.63 x16 := 3; 37.04/14.63 x17 := 1; 37.04/14.63 x18 := 4; 37.04/14.63 TO: 2; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 assume(oldX19 > 0 && oldX20 > 0 && oldX21 > 0 && oldX23 < 0 && oldX22 > 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := 0; 37.04/14.63 x6 := 3 + oldX19; 37.04/14.63 x7 := 3 + oldX20; 37.04/14.63 x8 := 3 + oldX21; 37.04/14.63 x9 := 3 + oldX22; 37.04/14.63 x10 := 100; 37.04/14.63 x11 := 1; 37.04/14.63 x12 := 3; 37.04/14.63 x13 := 4; 37.04/14.63 x14 := oldX24; 37.04/14.63 x15 := oldX25; 37.04/14.63 x16 := oldX26; 37.04/14.63 x17 := oldX27; 37.04/14.63 x18 := oldX28; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 assume(oldX19 > -101); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 x3 := oldX20; 37.04/14.63 x4 := oldX21; 37.04/14.63 x5 := oldX22; 37.04/14.63 x6 := oldX23; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX27; 37.04/14.63 x11 := oldX28; 37.04/14.63 x12 := oldX29; 37.04/14.63 x13 := oldX30; 37.04/14.63 x14 := oldX31; 37.04/14.63 x15 := oldX32; 37.04/14.63 x16 := oldX33; 37.04/14.63 x17 := oldX34; 37.04/14.63 x18 := oldX35; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (47) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (48) 37.04/14.63 Obligation: 37.04/14.63 START: 3; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX20 := x1 - x2; 37.04/14.63 oldX21 := 0 - x2; 37.04/14.63 oldX19 := x0 - (x1 - x2 + x2); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 oldX36 := nondet(); 37.04/14.63 oldX37 := nondet(); 37.04/14.63 assume(0 - x2 > -2 && x0 - (x1 - x2 + x2) + (x1 - x2 + x2) > -1 && 0 - x2 + x2 = 0 && 0 - x2 < 2 && x0 = x0 - (x1 - x2 + x2) + (x1 - x2 + x2) && x1 = x1 - x2 + x2); 37.04/14.63 x0 := x0 - (x1 - x2 + x2); 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := 0 - x2; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX24; 37.04/14.63 x6 := oldX25; 37.04/14.63 x7 := oldX26; 37.04/14.63 x8 := oldX27; 37.04/14.63 x9 := oldX28; 37.04/14.63 x10 := oldX29; 37.04/14.63 x11 := oldX30; 37.04/14.63 x12 := oldX31; 37.04/14.63 x13 := oldX32; 37.04/14.63 x14 := oldX33; 37.04/14.63 x15 := oldX34; 37.04/14.63 x16 := oldX35; 37.04/14.63 x17 := oldX36; 37.04/14.63 x18 := oldX37; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 assume(x0 < 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX0; 37.04/14.63 x6 := 0; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX1; 37.04/14.63 x11 := oldX2; 37.04/14.63 x12 := oldX27; 37.04/14.63 x13 := oldX28; 37.04/14.63 x14 := oldX29; 37.04/14.63 x15 := oldX30; 37.04/14.63 x16 := 3; 37.04/14.63 x17 := 1; 37.04/14.63 x18 := 4; 37.04/14.63 TO: 2; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 assume(oldX19 > 0 && oldX20 > 0 && oldX21 > 0 && oldX23 < 0 && oldX22 > 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := 0; 37.04/14.63 x6 := oldX19 + 3; 37.04/14.63 x7 := oldX20 + 3; 37.04/14.63 x8 := oldX21 + 3; 37.04/14.63 x9 := oldX22 + 3; 37.04/14.63 x10 := 100; 37.04/14.63 x11 := 1; 37.04/14.63 x12 := 3; 37.04/14.63 x13 := 4; 37.04/14.63 x14 := oldX24; 37.04/14.63 x15 := oldX25; 37.04/14.63 x16 := oldX26; 37.04/14.63 x17 := oldX27; 37.04/14.63 x18 := oldX28; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 assume(oldX19 > -101); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 x3 := oldX20; 37.04/14.63 x4 := oldX21; 37.04/14.63 x5 := oldX22; 37.04/14.63 x6 := oldX23; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX27; 37.04/14.63 x11 := oldX28; 37.04/14.63 x12 := oldX29; 37.04/14.63 x13 := oldX30; 37.04/14.63 x14 := oldX31; 37.04/14.63 x15 := oldX32; 37.04/14.63 x16 := oldX33; 37.04/14.63 x17 := oldX34; 37.04/14.63 x18 := oldX35; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (49) T2 Underapproximation (COMPLETE) 37.04/14.63 Added the following guard statements: 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 37.04/14.63 ---------------------------------------- 37.04/14.63 37.04/14.63 (50) 37.04/14.63 Obligation: 37.04/14.63 START: 3; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX20 := x1 - x2; 37.04/14.63 oldX21 := -(x2) - 0; 37.04/14.63 oldX19 := x0 - (x1 - x2 + x2); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 oldX36 := nondet(); 37.04/14.63 oldX37 := nondet(); 37.04/14.63 assume(0 - x2 > -2 && x0 - (x1 - x2 + x2) + (x1 - x2 + x2) > -1 && 0 - x2 + x2 = 0 && 0 - x2 < 2 && x0 = x0 - (x1 - x2 + x2) + (x1 - x2 + x2) && x1 = x1 - x2 + x2); 37.04/14.63 x0 := x0 - (x1 - x2 + x2); 37.04/14.63 x1 := x1 - x2; 37.04/14.63 x2 := -(x2) - 0; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX24; 37.04/14.63 x6 := oldX25; 37.04/14.63 x7 := oldX26; 37.04/14.63 x8 := oldX27; 37.04/14.63 x9 := oldX28; 37.04/14.63 x10 := oldX29; 37.04/14.63 x11 := oldX30; 37.04/14.63 x12 := oldX31; 37.04/14.63 x13 := oldX32; 37.04/14.63 x14 := oldX33; 37.04/14.63 x15 := oldX34; 37.04/14.63 x16 := oldX35; 37.04/14.63 x17 := oldX36; 37.04/14.63 x18 := oldX37; 37.04/14.63 TO: 1; 37.04/14.63 37.04/14.63 FROM: 1; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 assume(x0 < 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := oldX0; 37.04/14.63 x6 := 0; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX1; 37.04/14.63 x11 := oldX2; 37.04/14.63 x12 := oldX27; 37.04/14.63 x13 := oldX28; 37.04/14.63 x14 := oldX29; 37.04/14.63 x15 := oldX30; 37.04/14.63 x16 := 3; 37.04/14.63 x17 := 1; 37.04/14.63 x18 := 4; 37.04/14.63 TO: 2; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 assume(oldX19 > 0 && oldX20 > 0 && oldX21 > 0 && oldX23 < 0 && oldX22 > 0); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := oldX20; 37.04/14.63 x2 := oldX21; 37.04/14.63 x3 := oldX22; 37.04/14.63 x4 := oldX23; 37.04/14.63 x5 := 0; 37.04/14.63 x6 := oldX19 + 3; 37.04/14.63 x7 := oldX20 + 3; 37.04/14.63 x8 := oldX21 + 3; 37.04/14.63 x9 := oldX22 + 3; 37.04/14.63 x10 := 100; 37.04/14.63 x11 := 1; 37.04/14.63 x12 := 3; 37.04/14.63 x13 := 4; 37.04/14.63 x14 := oldX24; 37.04/14.63 x15 := oldX25; 37.04/14.63 x16 := oldX26; 37.04/14.63 x17 := oldX27; 37.04/14.63 x18 := oldX28; 37.04/14.63 TO: 4; 37.04/14.63 37.04/14.63 FROM: 3; 37.04/14.63 oldX0 := x0; 37.04/14.63 oldX1 := x1; 37.04/14.63 oldX2 := x2; 37.04/14.63 oldX3 := x3; 37.04/14.63 oldX4 := x4; 37.04/14.63 oldX5 := x5; 37.04/14.63 oldX6 := x6; 37.04/14.63 oldX7 := x7; 37.04/14.63 oldX8 := x8; 37.04/14.63 oldX9 := x9; 37.04/14.63 oldX10 := x10; 37.04/14.63 oldX11 := x11; 37.04/14.63 oldX12 := x12; 37.04/14.63 oldX13 := x13; 37.04/14.63 oldX14 := x14; 37.04/14.63 oldX15 := x15; 37.04/14.63 oldX16 := x16; 37.04/14.63 oldX17 := x17; 37.04/14.63 oldX18 := x18; 37.04/14.63 oldX19 := nondet(); 37.04/14.63 oldX20 := nondet(); 37.04/14.63 oldX21 := nondet(); 37.04/14.63 oldX22 := nondet(); 37.04/14.63 oldX23 := nondet(); 37.04/14.63 oldX24 := nondet(); 37.04/14.63 oldX25 := nondet(); 37.04/14.63 oldX26 := nondet(); 37.04/14.63 oldX27 := nondet(); 37.04/14.63 oldX28 := nondet(); 37.04/14.63 oldX29 := nondet(); 37.04/14.63 oldX30 := nondet(); 37.04/14.63 oldX31 := nondet(); 37.04/14.63 oldX32 := nondet(); 37.04/14.63 oldX33 := nondet(); 37.04/14.63 oldX34 := nondet(); 37.04/14.63 oldX35 := nondet(); 37.04/14.63 assume(oldX19 > -101); 37.04/14.63 x0 := oldX19; 37.04/14.63 x1 := 99; 37.04/14.63 x2 := -1; 37.04/14.63 x3 := oldX20; 37.04/14.63 x4 := oldX21; 37.04/14.63 x5 := oldX22; 37.04/14.63 x6 := oldX23; 37.04/14.63 x7 := oldX24; 37.04/14.63 x8 := oldX25; 37.04/14.63 x9 := oldX26; 37.04/14.63 x10 := oldX27; 37.04/14.63 x11 := oldX28; 37.04/14.63 x12 := oldX29; 37.04/14.63 x13 := oldX30; 37.04/14.63 x14 := oldX31; 37.04/14.63 x15 := oldX32; 37.04/14.63 x16 := oldX33; 37.04/14.63 x17 := oldX34; 37.04/14.63 x18 := oldX35; 37.04/14.63 TO: 1; 37.04/14.63 37.14/14.67 EOF