41.87/16.59 MAYBE 41.87/16.61 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 41.87/16.61 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 41.87/16.61 41.87/16.61 41.87/16.61 Termination of the given C Problem could not be shown: 41.87/16.61 41.87/16.61 (0) C Problem 41.87/16.61 (1) CToIRSProof [EQUIVALENT, 0 ms] 41.87/16.61 (2) IntTRS 41.87/16.61 (3) IRS2T2 [EQUIVALENT, 0 ms] 41.87/16.61 (4) T2IntSys 41.87/16.61 (5) T2 Underapproximation [COMPLETE, 1254 ms] 41.87/16.61 (6) T2IntSys 41.87/16.61 (7) T2 Underapproximation [COMPLETE, 1292 ms] 41.87/16.61 (8) T2IntSys 41.87/16.61 (9) TerminationGraphProcessor [SOUND, 50 ms] 41.87/16.61 (10) IntTRS 41.87/16.61 (11) IntTRSCompressionProof [EQUIVALENT, 0 ms] 41.87/16.61 (12) IntTRS 41.87/16.61 (13) IntTRSNonPeriodicNontermProof [COMPLETE, 0 ms] 41.87/16.61 (14) NO 41.87/16.61 (15) CToLLVMProof [EQUIVALENT, 157 ms] 41.87/16.61 (16) LLVM problem 41.87/16.61 (17) LLVMToTerminationGraphProof [EQUIVALENT, 637 ms] 41.87/16.61 (18) LLVM Symbolic Execution Graph 41.87/16.61 (19) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] 41.87/16.61 (20) AND 41.87/16.61 (21) LLVM Symbolic Execution Lasso 41.87/16.61 (22) Lasso2IRS [EQUIVALENT, 50 ms] 41.87/16.61 (23) IntTRS 41.87/16.61 (24) IRS2T2 [EQUIVALENT, 0 ms] 41.87/16.61 (25) T2IntSys 41.87/16.61 (26) T2 Underapproximation [COMPLETE, 1162 ms] 41.87/16.61 (27) T2IntSys 41.87/16.61 (28) LLVM Symbolic Execution Lasso 41.87/16.61 (29) Lasso2IRS [EQUIVALENT, 30 ms] 41.87/16.61 (30) IntTRS 41.87/16.61 (31) IRS2T2 [EQUIVALENT, 0 ms] 41.87/16.61 (32) T2IntSys 41.87/16.61 (33) T2 Underapproximation [COMPLETE, 1282 ms] 41.87/16.61 (34) T2IntSys 41.87/16.61 (35) T2 Underapproximation [COMPLETE, 1062 ms] 41.87/16.61 (36) T2IntSys 41.87/16.61 (37) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 41.87/16.61 (38) AND 41.87/16.61 (39) LLVM Symbolic Execution SCC 41.87/16.61 (40) SCC2IRS [SOUND, 4 ms] 41.87/16.61 (41) IntTRS 41.87/16.61 (42) IRS2T2 [EQUIVALENT, 0 ms] 41.87/16.61 (43) T2IntSys 41.87/16.61 (44) T2 Underapproximation [COMPLETE, 1263 ms] 41.87/16.61 (45) T2IntSys 41.87/16.61 (46) T2 Underapproximation [COMPLETE, 1373 ms] 41.87/16.61 (47) T2IntSys 41.87/16.61 (48) IntTRSCompressionProof [EQUIVALENT, 0 ms] 41.87/16.61 (49) IntTRS 41.87/16.61 (50) TerminationGraphProcessor [EQUIVALENT, 3 ms] 41.87/16.61 (51) IntTRS 41.87/16.61 (52) IntTRSCompressionProof [EQUIVALENT, 0 ms] 41.87/16.61 (53) IntTRS 41.87/16.61 (54) LLVM Symbolic Execution SCC 41.87/16.61 (55) SCC2IRS [SOUND, 13 ms] 41.87/16.61 (56) IntTRS 41.87/16.61 (57) IntTRSNonPeriodicNontermProof [COMPLETE, 3 ms] 41.87/16.61 (58) NO 41.87/16.61 (59) SCC2IRS [SOUND, 0 ms] 41.87/16.61 (60) IntTRS 41.87/16.61 (61) IntTRSCompressionProof [EQUIVALENT, 0 ms] 41.87/16.61 (62) IntTRS 41.87/16.61 (63) IntTRSNonPeriodicNontermProof [COMPLETE, 6 ms] 41.87/16.61 (64) NO 41.87/16.61 (65) SEGraph to IRS [EQUIVALENT, 34 ms] 41.87/16.61 (66) IntTRS 41.87/16.61 (67) IRS2T2 [EQUIVALENT, 0 ms] 41.87/16.61 (68) T2IntSys 41.87/16.61 (69) T2 Underapproximation [COMPLETE, 5264 ms] 41.87/16.61 (70) T2IntSys 41.87/16.61 (71) T2 Underapproximation [COMPLETE, 5283 ms] 41.87/16.61 (72) T2IntSys 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (0) 41.87/16.61 Obligation: 41.87/16.61 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (1) CToIRSProof (EQUIVALENT) 41.87/16.61 Parsed C Integer Program as IRS. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (2) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f1(i) -> f2(x_1) :|: TRUE 41.87/16.61 f4(x) -> f7(arith) :|: TRUE && arith = x - 1 41.87/16.61 f5(x9) -> f8(x10) :|: TRUE && x10 = x9 + 1 41.87/16.61 f3(x2) -> f4(x2) :|: x2 < 0 41.87/16.61 f3(x3) -> f5(x3) :|: x3 >= 0 41.87/16.61 f7(x4) -> f6(x4) :|: TRUE 41.87/16.61 f8(x5) -> f6(x5) :|: TRUE 41.87/16.61 f2(x6) -> f3(x6) :|: x6 * x6 > 9 41.87/16.61 f6(x7) -> f2(x7) :|: TRUE 41.87/16.61 f2(x8) -> f9(x8) :|: x8 * x8 <= 9 41.87/16.61 Start term: f1(i) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (3) IRS2T2 (EQUIVALENT) 41.87/16.61 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 41.87/16.61 41.87/16.61 (f1_1,1) 41.87/16.61 (f2_1,2) 41.87/16.61 (f4_1,3) 41.87/16.61 (f7_1,4) 41.87/16.61 (f5_1,5) 41.87/16.61 (f8_1,6) 41.87/16.61 (f3_1,7) 41.87/16.61 (f6_1,8) 41.87/16.61 (f9_1,9) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (4) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := -(1 - oldX0); 41.87/16.61 assume(0 = 0 && oldX1 = oldX0 - 1); 41.87/16.61 x0 := -(1 - oldX0); 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 FROM: 5; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := -(-(oldX0 + 1)); 41.87/16.61 assume(0 = 0 && oldX1 = oldX0 + 1); 41.87/16.61 x0 := -(-(oldX0 + 1)); 41.87/16.61 TO: 6; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(oldX0 < 0); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(oldX0 >= 0); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 5; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 6; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(oldX0 * oldX0 > 9); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 7; 41.87/16.61 41.87/16.61 FROM: 8; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(oldX0 * oldX0 <= 9); 41.87/16.61 x0 := oldX0; 41.87/16.61 TO: 9; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (5) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 5: 41.87/16.61 assume(x0 >= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (6) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := -1 - -(x0); 41.87/16.61 assume(0 = 0 && -1 - -(x0) = x0 - 1); 41.87/16.61 x0 := -1 - -(x0); 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 FROM: 5; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 + 1; 41.87/16.61 assume(0 = 0 && x0 + 1 = x0 + 1); 41.87/16.61 assume(x0 >= 0); 41.87/16.61 x0 := x0 + 1; 41.87/16.61 TO: 6; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 < 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 >= 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 5; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 6; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 * x0 > 9); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 7; 41.87/16.61 41.87/16.61 FROM: 8; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 * x0 <= 9); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 9; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (7) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 3: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 Transition 5: 41.87/16.61 assume(x0 >= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (8) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := oldX1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 - 1; 41.87/16.61 assume(0 = 0 && -1 - -(x0) = x0 - 1); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 FROM: 5; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 + 1; 41.87/16.61 assume(0 = 0 && x0 + 1 = x0 + 1); 41.87/16.61 assume(x0 >= 0); 41.87/16.61 assume(x0 >= 0); 41.87/16.61 x0 := x0 + 1; 41.87/16.61 TO: 6; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 < 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 7; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 >= 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 5; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 6; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 8; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 * x0 > 9); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 7; 41.87/16.61 41.87/16.61 FROM: 8; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(0 = 0); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 * x0 <= 9); 41.87/16.61 x0 := x0; 41.87/16.61 TO: 9; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (9) TerminationGraphProcessor (SOUND) 41.87/16.61 Constructed the termination graph and obtained one non-trivial SCC. 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (10) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f2(x6) -> f3(x6) :|: x6 * x6 > 9 41.87/16.61 f6(x7) -> f2(x7) :|: TRUE 41.87/16.61 f7(x4) -> f6(x4) :|: TRUE 41.87/16.61 f4(x) -> f7(arith) :|: TRUE && arith = x - 1 41.87/16.61 f3(x2) -> f4(x2) :|: x2 < 0 41.87/16.61 f8(x5) -> f6(x5) :|: TRUE 41.87/16.61 f5(x9) -> f8(x10) :|: TRUE && x10 = x9 + 1 41.87/16.61 f3(x3) -> f5(x3) :|: x3 >= 0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (11) IntTRSCompressionProof (EQUIVALENT) 41.87/16.61 Compressed rules. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (12) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f6(x7:0) -> f6(x7:0 + 1) :|: x7:0 * x7:0 > 9 && x7:0 > -1 41.87/16.61 f6(x) -> f6(x - 1) :|: x * x > 9 && x < 0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (13) IntTRSNonPeriodicNontermProof (COMPLETE) 41.87/16.61 Normalized system to the following form: 41.87/16.61 f(pc, x7:0) -> f(1, x7:0 + 1) :|: pc = 1 && (x7:0 * x7:0 > 9 && x7:0 > -1) 41.87/16.61 f(pc, x) -> f(1, x - 1) :|: pc = 1 && (x * x > 9 && x < 0) 41.87/16.61 Proved unsatisfiability of the following formula, indicating that the system is never left after entering: 41.87/16.61 ((((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and ((((run1_1 * run1_1) * 1)) > ((1 * 9)) and ((run1_1 * 1)) > ((1 * -1))))) or ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * -1))) and (((run1_0 * 1)) = ((1 * 1)) and ((((run1_1 * run1_1) * 1)) > ((1 * 9)) and ((run1_1 * 1)) < 0)))) and (!(((run2_0 * 1)) = ((1 * 1)) and ((((run2_1 * run2_1) * 1)) > ((1 * 9)) and ((run2_1 * 1)) > ((1 * -1)))) and !(((run2_0 * 1)) = ((1 * 1)) and ((((run2_1 * run2_1) * 1)) > ((1 * 9)) and ((run2_1 * 1)) < 0)))) 41.87/16.61 Proved satisfiability of the following formula, indicating that the system is entered at least once: 41.87/16.61 (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and ((((run1_1 * run1_1) * 1)) > ((1 * 9)) and ((run1_1 * 1)) > ((1 * -1))))) or ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1) + (1 * -1))) and (((run1_0 * 1)) = ((1 * 1)) and ((((run1_1 * run1_1) * 1)) > ((1 * 9)) and ((run1_1 * 1)) < 0)))) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (14) 41.87/16.61 NO 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (15) CToLLVMProof (EQUIVALENT) 41.87/16.61 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (16) 41.87/16.61 Obligation: 41.87/16.61 LLVM Problem 41.87/16.61 41.87/16.61 Aliases: 41.87/16.61 41.87/16.61 Data layout: 41.87/16.61 41.87/16.61 "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" 41.87/16.61 41.87/16.61 Machine: 41.87/16.61 41.87/16.61 "x86_64-pc-linux-gnu" 41.87/16.61 41.87/16.61 Type definitions: 41.87/16.61 41.87/16.61 Global variables: 41.87/16.61 41.87/16.61 Function declarations and definitions: 41.87/16.61 41.87/16.61 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 41.87/16.61 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 41.87/16.61 0: 41.87/16.61 %1 = alloca i32, align 4 41.87/16.61 %i = alloca i32, align 4 41.87/16.61 store 0, %1 41.87/16.61 %2 = call i32 @__VERIFIER_nondet_int() 41.87/16.61 store %2, %i 41.87/16.61 br %3 41.87/16.61 3: 41.87/16.61 %4 = load %i 41.87/16.61 %5 = load %i 41.87/16.61 %6 = mul %4 %5 41.87/16.61 %7 = icmp sgt %6 9 41.87/16.61 br %7, %8, %18 41.87/16.61 8: 41.87/16.61 %9 = load %i 41.87/16.61 %10 = icmp slt %9 0 41.87/16.61 br %10, %11, %14 41.87/16.61 11: 41.87/16.61 %12 = load %i 41.87/16.61 %13 = sub %12 1 41.87/16.61 store %13, %i 41.87/16.61 br %17 41.87/16.61 14: 41.87/16.61 %15 = load %i 41.87/16.61 %16 = add %15 1 41.87/16.61 store %16, %i 41.87/16.61 br %17 41.87/16.61 17: 41.87/16.61 br %3 41.87/16.61 18: 41.87/16.61 ret 0 41.87/16.61 41.87/16.61 41.87/16.61 Analyze Termination of all function calls matching the pattern: 41.87/16.61 main() 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (17) LLVMToTerminationGraphProof (EQUIVALENT) 41.87/16.61 Constructed symbolic execution graph for LLVM program and proved memory safety. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (18) 41.87/16.61 Obligation: 41.87/16.61 SE Graph 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (19) SymbolicExecutionGraphToLassoProof (EQUIVALENT) 41.87/16.61 Converted SEGraph to 2 independent lassos. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (20) 41.87/16.61 Complex Obligation (AND) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (21) 41.87/16.61 Obligation: 41.87/16.61 Lasso 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (22) Lasso2IRS (EQUIVALENT) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 38 rulesP rules: 41.87/16.61 f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) -> f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) -> f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) :|: v94 = v88 * v88 41.87/16.61 f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) -> f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 9 < v94 41.87/16.61 f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) -> f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: 1 + v100 = v88 && 3 + v100 <= 0 41.87/16.61 f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_178(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 f_178(v82, v83, v84, v85, v86, 1, v88, v89, v90, 0, 3, 10, 2, 4) -> f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 f_75 -> f_76(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 41.87/16.61 f_76(v1, v2, 3, 1, 4) -> f_77(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 41.87/16.61 f_77(v1, v3, v2, v4, 3, 1, 4) -> f_78(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_78(v1, v3, v2, v4, 0, 3, 1, 4) -> f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) :|: v7 = v5 * v5 41.87/16.61 f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) -> f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) :|: 9 < v7 41.87/16.61 f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) -> f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: TRUE 41.87/16.61 f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_92(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: v5 < 0 41.87/16.61 f_92(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_94(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_94(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_96(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: TRUE 41.87/16.61 f_96(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_98(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_98(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_100(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: 1 + v8 = v5 && 2 + v8 <= 0 41.87/16.61 f_100(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_102(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_102(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_104(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_104(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_106(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_106(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_142(v1, v3, v5, v5, v7, 1, v8, v2, v4, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 f_142(v42, v43, v44, v45, v46, 1, v48, v49, v50, 0, 3, 10, 2, 4) -> f_178(v42, v43, v44, v45, v46, 1, v48, v49, v50, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 Combined rules. Obtained 2 rulesP rules: 41.87/16.61 f_75 -> f_180(v1:0, v3:0, 1 + v8:0, v8:0, 1 + v8:0, (1 + v8:0) * (1 + v8:0), 1, 3 + v1:0, 3 + v3:0, 0, 3, 10, 2, 4) :|: v3:0 > 0 && v1:0 > 0 && 9 < (1 + v8:0) * (1 + v8:0) && v8:0 < -1 41.87/16.61 f_180(v82:0, v83:0, v84:0, 1 + v100:0, v85:0, v86:0, 1, v89:0, v90:0, 0, 3, 10, 2, 4) -> f_180(v82:0, v83:0, v84:0, v100:0, 1 + v100:0, (1 + v100:0) * (1 + v100:0), 1, v89:0, v90:0, 0, 3, 10, 2, 4) :|: v100:0 < -2 && 9 < (1 + v100:0) * (1 + v100:0) 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_180(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_180(x4) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 41.87/16.61 f_75 -> f_180(v8:0) :|: 9 < 1 + v8:0 + (v8:0 + v8:0 * v8:0) && v8:0 < -1 41.87/16.61 f_180(sum~cons_1~v100:0) -> f_180(v100:0) :|: v100:0 < -2 && 9 < 1 + v100:0 + (v100:0 + v100:0 * v100:0) && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (23) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_75 -> f_180(v8:0) :|: 9 < 1 + v8:0 + (v8:0 + v8:0 * v8:0) && v8:0 < -1 41.87/16.61 f_180(sum~cons_1~v100:0) -> f_180(v100:0) :|: v100:0 < -2 && 9 < 1 + v100:0 + (v100:0 + v100:0 * v100:0) && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 Start term: f_75 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (24) IRS2T2 (EQUIVALENT) 41.87/16.61 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 41.87/16.61 41.87/16.61 (f_75_1,1) 41.87/16.61 (f_180_1,2) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (25) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(9 < 1 + oldX1 + (oldX1 + oldX1 * oldX1) && oldX1 < -1); 41.87/16.61 x0 := oldX1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := oldX0 - 1; 41.87/16.61 assume(oldX1 < -2 && 9 < 1 + oldX1 + (oldX1 + oldX1 * oldX1) && oldX0 = 1 + oldX1); 41.87/16.61 x0 := oldX0 - 1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (26) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 2: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (27) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(9 < 1 + oldX1 + (oldX1 + oldX1 * oldX1) && oldX1 < -1); 41.87/16.61 x0 := oldX1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 - 1; 41.87/16.61 assume(x0 - 1 < -2 && 9 < 1 + (x0 - 1) + (x0 - 1 + (x0 - 1) * (x0 - 1)) && x0 = 1 + (x0 - 1)); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (28) 41.87/16.61 Obligation: 41.87/16.61 Lasso 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (29) Lasso2IRS (EQUIVALENT) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 37 rulesP rules: 41.87/16.61 f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) -> f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) -> f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) :|: v95 = v73 * v73 41.87/16.61 f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) -> f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 9 < v95 41.87/16.61 f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) -> f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: v101 = 1 + v73 && 2 <= v101 41.87/16.61 f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_176(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 f_176(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 f_75 -> f_76(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 41.87/16.61 f_76(v1, v2, 3, 1, 4) -> f_77(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 41.87/16.61 f_77(v1, v3, v2, v4, 3, 1, 4) -> f_78(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_78(v1, v3, v2, v4, 0, 3, 1, 4) -> f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) :|: v7 = v5 * v5 41.87/16.61 f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) -> f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) :|: 9 < v7 41.87/16.61 f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) -> f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: TRUE 41.87/16.61 f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_93(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 <= v5 41.87/16.61 f_93(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_95(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_95(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_97(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_97(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_99(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_99(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_101(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: v9 = 1 + v5 && 1 <= v9 41.87/16.61 f_101(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_103(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_103(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_105(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_105(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_140(v1, v3, v5, v5, v7, 1, 0, v9, v2, v4, 3, 10, 4) :|: TRUE 41.87/16.61 f_140(v26, v27, v28, v29, v30, 1, 0, v33, v34, v35, 3, 10, 4) -> f_176(v26, v27, v28, v29, v30, 1, 0, v33, v34, v35, 3, 10, 4) :|: TRUE 41.87/16.61 Combined rules. Obtained 2 rulesP rules: 41.87/16.61 f_179(v66:0, v67:0, v68:0, v69:0, v70:0, 1, 0, v73:0, v74:0, v75:0, 3, 10, 4) -> f_179(v66:0, v67:0, v68:0, v73:0, v73:0 * v73:0, 1, 0, 1 + v73:0, v74:0, v75:0, 3, 10, 4) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 f_75 -> f_179(v1:0, v3:0, v5:0, v5:0, v5:0 * v5:0, 1, 0, 1 + v5:0, 3 + v1:0, 3 + v3:0, 3, 10, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 * v5:0 > 9 && v5:0 > -1 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_179(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) -> f_179(x8) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 41.87/16.61 f_179(v73:0) -> f_179(1 + v73:0) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 f_75 -> f_179(1 + v5:0) :|: v5:0 * v5:0 > 9 && v5:0 > -1 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (30) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_179(v73:0) -> f_179(1 + v73:0) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 f_75 -> f_179(1 + v5:0) :|: v5:0 * v5:0 > 9 && v5:0 > -1 41.87/16.61 Start term: f_75 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (31) IRS2T2 (EQUIVALENT) 41.87/16.61 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 41.87/16.61 41.87/16.61 (f_179_1,1) 41.87/16.61 (f_75_1,2) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (32) 41.87/16.61 Obligation: 41.87/16.61 START: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(oldX0 > 0 && oldX0 * oldX0 > 9); 41.87/16.61 x0 := 1 + oldX0; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(oldX1 * oldX1 > 9 && oldX1 > -1); 41.87/16.61 x0 := 1 + oldX1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (33) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (34) 41.87/16.61 Obligation: 41.87/16.61 START: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 > 0 && x0 * x0 > 9); 41.87/16.61 x0 := x0 + 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(oldX1 * oldX1 > 9 && oldX1 > -1); 41.87/16.61 x0 := oldX1 + 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (35) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (36) 41.87/16.61 Obligation: 41.87/16.61 START: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 assume(x0 > 0 && x0 * x0 > 9); 41.87/16.61 x0 := x0 + 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 2; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := nondet(); 41.87/16.61 assume(oldX1 * oldX1 > 9 && oldX1 > -1); 41.87/16.61 x0 := oldX1 + 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (37) SymbolicExecutionGraphToSCCProof (SOUND) 41.87/16.61 Splitted symbolic execution graph to 2 SCCs. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (38) 41.87/16.61 Complex Obligation (AND) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (39) 41.87/16.61 Obligation: 41.87/16.61 SCC 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (40) SCC2IRS (SOUND) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 15 rulesP rules: 41.87/16.61 f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) -> f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) -> f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) :|: v94 = v88 * v88 41.87/16.61 f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) -> f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 9 < v94 41.87/16.61 f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) -> f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: 1 + v100 = v88 && 3 + v100 <= 0 41.87/16.61 f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_178(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 f_178(v82, v83, v84, v85, v86, 1, v88, v89, v90, 0, 3, 10, 2, 4) -> f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 Combined rules. Obtained 1 rulesP rules: 41.87/16.61 f_180(v82:0, v83:0, v84:0, 1 + v100:0, v85:0, v86:0, 1, v89:0, v90:0, 0, 3, 10, 2, 4) -> f_180(v82:0, v83:0, v84:0, v100:0, 1 + v100:0, (1 + v100:0) * (1 + v100:0), 1, v89:0, v90:0, 0, 3, 10, 2, 4) :|: v100:0 < -2 && 9 < (1 + v100:0) * (1 + v100:0) 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_180(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_180(x4) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 41.87/16.61 f_180(sum~cons_1~v100:0) -> f_180(v100:0) :|: v100:0 < -2 && 9 < 1 + v100:0 + (v100:0 + v100:0 * v100:0) && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (41) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_180(sum~cons_1~v100:0) -> f_180(v100:0) :|: v100:0 < -2 && 9 < 1 + v100:0 + (v100:0 + v100:0 * v100:0) && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (42) IRS2T2 (EQUIVALENT) 41.87/16.61 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 41.87/16.61 41.87/16.61 (f_180_1,1) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (43) 41.87/16.61 Obligation: 41.87/16.61 START: 0; 41.87/16.61 41.87/16.61 FROM: 0; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := oldX0 - 1; 41.87/16.61 assume(oldX1 < -2 && 9 < 1 + oldX1 + (oldX1 + oldX1 * oldX1) && oldX0 = 1 + oldX1); 41.87/16.61 x0 := oldX0 - 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (44) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 1: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (45) 41.87/16.61 Obligation: 41.87/16.61 START: 0; 41.87/16.61 41.87/16.61 FROM: 0; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 - 1; 41.87/16.61 assume(x0 - 1 < -2 && 9 < 1 + (x0 - 1) + (x0 - 1 + (x0 - 1) * (x0 - 1)) && x0 = 1 + (x0 - 1)); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (46) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 1: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (47) 41.87/16.61 Obligation: 41.87/16.61 START: 0; 41.87/16.61 41.87/16.61 FROM: 0; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x0 - 1; 41.87/16.61 assume(x0 - 1 < -2 && 9 < 1 + (x0 - 1) + (x0 - 1 + (x0 - 1) * (x0 - 1)) && x0 = 1 + (x0 - 1)); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 TO: 1; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (48) IntTRSCompressionProof (EQUIVALENT) 41.87/16.61 Compressed rules. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (49) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_180(sum~cons_1~v100:0:0) -> f_180(v100:0:0) :|: v100:0:0 < -2 && 9 < 1 + v100:0:0 + (v100:0:0 + v100:0:0 * v100:0:0) && sum~cons_1~v100:0:0 = 1 + v100:0:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (50) TerminationGraphProcessor (EQUIVALENT) 41.87/16.61 Constructed the termination graph and obtained one non-trivial SCC. 41.87/16.61 41.87/16.61 f_180(sum~cons_1~v100:0:0) -> f_180(v100:0:0) :|: v100:0:0 < -2 && 9 < 1 + v100:0:0 + (v100:0:0 + v100:0:0 * v100:0:0) && sum~cons_1~v100:0:0 = 1 + v100:0:0 41.87/16.61 has been transformed into 41.87/16.61 f_180(sum~cons_1~v100:0:0) -> f_180(v100:0:0) :|: sum~cons_1~v100:0:0 = x5 && (v100:0:0 < -2 && 9 < 1 + v100:0:0 + (v100:0:0 + v100:0:0 * v100:0:0) && sum~cons_1~v100:0:0 = 1 + v100:0:0) && x5 < -2 && 9 < 1 + x5 + (x5 + x5 * x5). 41.87/16.61 41.87/16.61 41.87/16.61 f_180(sum~cons_1~v100:0:0) -> f_180(v100:0:0) :|: sum~cons_1~v100:0:0 = x5 && (v100:0:0 < -2 && 9 < 1 + v100:0:0 + (v100:0:0 + v100:0:0 * v100:0:0) && sum~cons_1~v100:0:0 = 1 + v100:0:0) && x5 < -2 && 9 < 1 + x5 + (x5 + x5 * x5) and 41.87/16.61 f_180(sum~cons_1~v100:0:0) -> f_180(v100:0:0) :|: sum~cons_1~v100:0:0 = x5 && (v100:0:0 < -2 && 9 < 1 + v100:0:0 + (v100:0:0 + v100:0:0 * v100:0:0) && sum~cons_1~v100:0:0 = 1 + v100:0:0) && x5 < -2 && 9 < 1 + x5 + (x5 + x5 * x5) 41.87/16.61 have been merged into the new rule 41.87/16.61 f_180(x12) -> f_180(x13) :|: x12 = x14 && (x15 < -2 && 9 < 1 + x15 + (x15 + x15 * x15) && x12 = 1 + x15) && x14 < -2 && 9 < 1 + x14 + (x14 + x14 * x14) && (x15 = x16 && (x13 < -2 && 9 < 1 + x13 + (x13 + x13 * x13) && x15 = 1 + x13) && x16 < -2 && 9 < 1 + x16 + (x16 + x16 * x16)) 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (51) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_180(x17) -> f_180(x18) :|: TRUE && x17 + -1 * x19 = 0 && x20 <= -3 && -2 * x20 + -1 * (x20 * x20) <= -9 && x17 + -1 * x20 = 1 && x19 <= -3 && -2 * x19 + -1 * (x19 * x19) <= -9 && x20 + -1 * x21 = 0 && x18 <= -3 && -2 * x18 + -1 * (x18 * x18) <= -9 && x20 + -1 * x18 = 1 && x21 <= -3 && -2 * x21 + -1 * (x21 * x21) <= -9 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (52) IntTRSCompressionProof (EQUIVALENT) 41.87/16.61 Compressed rules. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (53) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_180(x17:0) -> f_180(x18:0) :|: x21:0 < -2 && -9 >= -2 * x21:0 + -1 * (x21:0 * x21:0) && x20:0 + -1 * x18:0 = 1 && -9 >= -2 * x18:0 + -1 * (x18:0 * x18:0) && x18:0 < -2 && x20:0 + -1 * x21:0 = 0 && -9 >= -2 * x19:0 + -1 * (x19:0 * x19:0) && x19:0 < -2 && x17:0 + -1 * x20:0 = 1 && -9 >= -2 * x20:0 + -1 * (x20:0 * x20:0) && x17:0 + -1 * x19:0 = 0 && x20:0 < -2 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (54) 41.87/16.61 Obligation: 41.87/16.61 SCC 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (55) SCC2IRS (SOUND) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 15 rulesP rules: 41.87/16.61 f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) -> f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) -> f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) :|: v95 = v73 * v73 41.87/16.61 f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) -> f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 9 < v95 41.87/16.61 f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) -> f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: v101 = 1 + v73 && 2 <= v101 41.87/16.61 f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_176(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 f_176(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 Combined rules. Obtained 1 rulesP rules: 41.87/16.61 f_179(v66:0, v67:0, v68:0, v69:0, v70:0, 1, 0, v73:0, v74:0, v75:0, 3, 10, 4) -> f_179(v66:0, v67:0, v68:0, v73:0, v73:0 * v73:0, 1, 0, 1 + v73:0, v74:0, v75:0, 3, 10, 4) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_179(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) -> f_179(x8) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 41.87/16.61 f_179(v73:0) -> f_179(1 + v73:0) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (56) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_179(v73:0) -> f_179(1 + v73:0) :|: v73:0 > 0 && v73:0 * v73:0 > 9 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (57) IntTRSNonPeriodicNontermProof (COMPLETE) 41.87/16.61 Normalized system to the following form: 41.87/16.61 f(pc, v73:0) -> f(1, 1 + v73:0) :|: pc = 1 && (v73:0 > 0 && v73:0 * v73:0 > 9) 41.87/16.61 Proved unsatisfiability of the following formula, indicating that the system is never left after entering: 41.87/16.61 (((run2_0 = ((1 * 1)) and run2_1 = ((1 * 1) + (run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and (((run1_1 * 1)) > 0 and (((run1_1 * run1_1) * 1)) > ((1 * 9))))) and !(((run2_0 * 1)) = ((1 * 1)) and (((run2_1 * 1)) > 0 and (((run2_1 * run2_1) * 1)) > ((1 * 9))))) 41.87/16.61 Proved satisfiability of the following formula, indicating that the system is entered at least once: 41.87/16.61 ((run2_0 = ((1 * 1)) and run2_1 = ((1 * 1) + (run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and (((run1_1 * 1)) > 0 and (((run1_1 * run1_1) * 1)) > ((1 * 9))))) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (58) 41.87/16.61 NO 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (59) SCC2IRS (SOUND) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 15 rulesP rules: 41.87/16.61 f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) -> f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) -> f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) :|: v95 = v73 * v73 41.87/16.61 f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) -> f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 9 < v95 41.87/16.61 f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) -> f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: v101 = 1 + v73 && 2 <= v101 41.87/16.61 f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_176(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 10, 4) :|: v68 <= v73 && 1 <= v66 && 1 <= v67 && 0 <= v68 && 0 <= v73 && 10 <= v95 && 1 <= v101 && 4 <= v74 && 4 <= v75 && v66 <= v74 && v67 <= v75 41.87/16.61 f_176(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 Combined rules. Obtained 1 rulesP rules: 41.87/16.61 f_179(v66:0, v67:0, v68:0, v69:0, v70:0, 1, 0, v73:0, v74:0, v75:0, 3, 10, 4) -> f_179(v66:0, v67:0, v68:0, v73:0, v73:0 * v73:0, 1, 0, 1 + v73:0, v74:0, v75:0, 3, 10, 4) :|: v73:0 > 0 && v66:0 > 0 && v73:0 >= v68:0 && v73:0 * v73:0 > 9 && v67:0 > 0 && v68:0 > -1 && v74:0 > 3 && v75:0 > 3 && v75:0 >= v67:0 && v74:0 >= v66:0 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_179(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) -> f_179(x1, x2, x3, x8, x9, x10) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 41.87/16.61 f_179(v66:0, v67:0, v68:0, v73:0, v74:0, v75:0) -> f_179(v66:0, v67:0, v68:0, 1 + v73:0, v74:0, v75:0) :|: v66:0 > 0 && v73:0 > 0 && v73:0 >= v68:0 && v73:0 * v73:0 > 9 && v67:0 > 0 && v68:0 > -1 && v74:0 > 3 && v75:0 > 3 && v74:0 >= v66:0 && v75:0 >= v67:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (60) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_179(v66:0, v67:0, v68:0, v73:0, v74:0, v75:0) -> f_179(v66:0, v67:0, v68:0, 1 + v73:0, v74:0, v75:0) :|: v66:0 > 0 && v73:0 > 0 && v73:0 >= v68:0 && v73:0 * v73:0 > 9 && v67:0 > 0 && v68:0 > -1 && v74:0 > 3 && v75:0 > 3 && v74:0 >= v66:0 && v75:0 >= v67:0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (61) IntTRSCompressionProof (EQUIVALENT) 41.87/16.61 Compressed rules. 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (62) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_179(v66:0:0, v67:0:0, v68:0:0, v73:0:0, v74:0:0, v75:0:0) -> f_179(v66:0:0, v67:0:0, v68:0:0, 1 + v73:0:0, v74:0:0, v75:0:0) :|: v74:0:0 >= v66:0:0 && v75:0:0 >= v67:0:0 && v75:0:0 > 3 && v74:0:0 > 3 && v68:0:0 > -1 && v67:0:0 > 0 && v73:0:0 * v73:0:0 > 9 && v73:0:0 >= v68:0:0 && v73:0:0 > 0 && v66:0:0 > 0 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (63) IntTRSNonPeriodicNontermProof (COMPLETE) 41.87/16.61 Normalized system to the following form: 41.87/16.61 f(pc, v66:0:0, v67:0:0, v68:0:0, v73:0:0, v74:0:0, v75:0:0) -> f(1, v66:0:0, v67:0:0, v68:0:0, 1 + v73:0:0, v74:0:0, v75:0:0) :|: pc = 1 && (v74:0:0 >= v66:0:0 && v75:0:0 >= v67:0:0 && v75:0:0 > 3 && v74:0:0 > 3 && v68:0:0 > -1 && v67:0:0 > 0 && v73:0:0 * v73:0:0 > 9 && v73:0:0 >= v68:0:0 && v73:0:0 > 0 && v66:0:0 > 0) 41.87/16.61 Proved unsatisfiability of the following formula, indicating that the system is never left after entering: 41.87/16.61 (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1)) and run2_2 = ((run1_2 * 1)) and run2_3 = ((run1_3 * 1)) and run2_4 = ((1 * 1) + (run1_4 * 1)) and run2_5 = ((run1_5 * 1)) and run2_6 = ((run1_6 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and (((((((((((run1_5 * 1)) >= ((run1_1 * 1)) and ((run1_6 * 1)) >= ((run1_2 * 1))) and ((run1_6 * 1)) > ((1 * 3))) and ((run1_5 * 1)) > ((1 * 3))) and ((run1_3 * 1)) > ((1 * -1))) and ((run1_2 * 1)) > 0) and (((run1_4 * run1_4) * 1)) > ((1 * 9))) and ((run1_4 * 1)) >= ((run1_3 * 1))) and ((run1_4 * 1)) > 0) and ((run1_1 * 1)) > 0))) and !(((run2_0 * 1)) = ((1 * 1)) and (((((((((((run2_5 * 1)) >= ((run2_1 * 1)) and ((run2_6 * 1)) >= ((run2_2 * 1))) and ((run2_6 * 1)) > ((1 * 3))) and ((run2_5 * 1)) > ((1 * 3))) and ((run2_3 * 1)) > ((1 * -1))) and ((run2_2 * 1)) > 0) and (((run2_4 * run2_4) * 1)) > ((1 * 9))) and ((run2_4 * 1)) >= ((run2_3 * 1))) and ((run2_4 * 1)) > 0) and ((run2_1 * 1)) > 0))) 41.87/16.61 Proved satisfiability of the following formula, indicating that the system is entered at least once: 41.87/16.61 ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1)) and run2_2 = ((run1_2 * 1)) and run2_3 = ((run1_3 * 1)) and run2_4 = ((1 * 1) + (run1_4 * 1)) and run2_5 = ((run1_5 * 1)) and run2_6 = ((run1_6 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and (((((((((((run1_5 * 1)) >= ((run1_1 * 1)) and ((run1_6 * 1)) >= ((run1_2 * 1))) and ((run1_6 * 1)) > ((1 * 3))) and ((run1_5 * 1)) > ((1 * 3))) and ((run1_3 * 1)) > ((1 * -1))) and ((run1_2 * 1)) > 0) and (((run1_4 * run1_4) * 1)) > ((1 * 9))) and ((run1_4 * 1)) >= ((run1_3 * 1))) and ((run1_4 * 1)) > 0) and ((run1_1 * 1)) > 0))) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (64) 41.87/16.61 NO 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (65) SEGraph to IRS (EQUIVALENT) 41.87/16.61 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 41.87/16.61 Generated rules. Obtained 71 rulesP rules: 41.87/16.61 f_75 -> f_76(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 41.87/16.61 f_76(v1, v2, 3, 1, 4) -> f_77(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 41.87/16.61 f_77(v1, v3, v2, v4, 3, 1, 4) -> f_78(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_78(v1, v3, v2, v4, 0, 3, 1, 4) -> f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_79(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_80(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 41.87/16.61 f_81(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_82(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 41.87/16.61 f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) :|: v7 = v5 * v5 41.87/16.61 f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) -> f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) :|: 9 < v7 41.87/16.61 f_84(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4) -> f_86(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 9) :|: v7 <= 9 41.87/16.61 f_85(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 10) -> f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_86(v1, v3, v5, v7, v2, v4, 0, 3, 1, 4, 9) -> f_88(v1, v3, v5, v7, 0, v2, v4, 3, 1, 4, 9) :|: 0 = 0 41.87/16.61 f_87(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: TRUE 41.87/16.61 f_88(v1, v3, v5, v7, 0, v2, v4, 3, 1, 4, 9) -> f_90(v1, v3, v5, v7, 0, v2, v4, 3, 1, 4, 9) :|: TRUE 41.87/16.61 f_89(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_92(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: v5 < 0 41.87/16.61 f_91(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_93(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 <= v5 41.87/16.61 f_92(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_94(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_93(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_95(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_94(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_96(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: TRUE 41.87/16.61 f_95(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_97(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_96(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_98(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_97(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_99(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_98(v1, v3, v5, v7, 1, v2, v4, 0, 3, 4, 10) -> f_100(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: 1 + v8 = v5 && 2 + v8 <= 0 41.87/16.61 f_99(v1, v3, v5, v7, 1, 0, v2, v4, 3, 4, 10) -> f_101(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: v9 = 1 + v5 && 1 <= v9 41.87/16.61 f_100(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_102(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_101(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_103(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_102(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_104(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_103(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_105(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) :|: TRUE 41.87/16.61 f_104(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_106(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_105(v1, v3, v5, v7, 1, 0, v9, v2, v4, 3, 4, 10) -> f_140(v1, v3, v5, v5, v7, 1, 0, v9, v2, v4, 3, 10, 4) :|: TRUE 41.87/16.61 f_106(v1, v3, v5, v7, 1, v8, v2, v4, 0, 3, 4, 10, 2) -> f_142(v1, v3, v5, v5, v7, 1, v8, v2, v4, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 f_140(v26, v27, v28, v29, v30, 1, 0, v33, v34, v35, 3, 10, 4) -> f_176(v26, v27, v28, v29, v30, 1, 0, v33, v34, v35, 3, 10, 4) :|: TRUE 41.87/16.61 f_142(v42, v43, v44, v45, v46, 1, v48, v49, v50, 0, 3, 10, 2, 4) -> f_178(v42, v43, v44, v45, v46, 1, v48, v49, v50, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 f_176(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 f_178(v82, v83, v84, v85, v86, 1, v88, v89, v90, 0, 3, 10, 2, 4) -> f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 f_179(v66, v67, v68, v69, v70, 1, 0, v73, v74, v75, 3, 10, 4) -> f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_180(v82, v83, v84, v88, v85, v86, 1, v89, v90, 0, 3, 10, 2, 4) -> f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) :|: 0 = 0 41.87/16.61 f_181(v66, v67, v68, v73, v69, v70, 1, 0, v74, v75, 3, 10, 4) -> f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) :|: 0 = 0 41.87/16.61 f_182(v82, v83, v84, v88, v86, 1, v85, v89, v90, 0, 3, 10, 2, 4) -> f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) :|: v94 = v88 * v88 41.87/16.61 f_183(v66, v67, v68, v73, v70, 1, v69, 0, v74, v75, 3, 10, 4) -> f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) :|: v95 = v73 * v73 41.87/16.61 f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) -> f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 9 < v94 41.87/16.61 f_184(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4) -> f_187(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 9) :|: v94 <= 9 41.87/16.61 f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) -> f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 9 < v95 41.87/16.61 f_185(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4) -> f_189(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 9) :|: v95 <= 9 41.87/16.61 f_186(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_187(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 9) -> f_191(v82, v83, v84, v88, v94, 0, v85, 1, v89, v90, 3, 2, 4, 9) :|: 0 = 0 41.87/16.61 f_188(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_189(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 9) -> f_193(v66, v67, v68, v73, v95, 0, v69, v74, v75, 3, 1, 4, 9) :|: 0 = 0 41.87/16.61 f_190(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_191(v82, v83, v84, v88, v94, 0, v85, 1, v89, v90, 3, 2, 4, 9) -> f_195(v82, v83, v84, v88, v94, 0, v85, 1, v89, v90, 3, 2, 4, 9) :|: TRUE 41.87/16.61 f_192(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_193(v66, v67, v68, v73, v95, 0, v69, v74, v75, 3, 1, 4, 9) -> f_197(v66, v67, v68, v73, v95, 0, v69, v74, v75, 3, 1, 4, 9) :|: TRUE 41.87/16.61 f_194(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_196(v66, v67, v68, v73, v95, 1, v69, 0, v74, v75, 3, 4, 10) -> f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_198(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_199(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_200(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_201(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) :|: TRUE 41.87/16.61 f_202(v82, v83, v84, v88, v94, 1, v85, v89, v90, 0, 3, 2, 4, 10) -> f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) :|: 0 = 0 41.87/16.61 f_203(v66, v67, v68, v73, v95, 1, 0, v69, v74, v75, 3, 4, 10) -> f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) :|: 0 = 0 41.87/16.61 f_204(v82, v83, v84, v88, v94, 1, v89, v90, 0, 3, 2, 4, 10) -> f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: 1 + v100 = v88 && 3 + v100 <= 0 41.87/16.61 f_205(v66, v67, v68, v73, v95, 1, 0, v74, v75, 3, 4, 10) -> f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: v101 = 1 + v73 && 2 <= v101 41.87/16.61 f_206(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_207(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_208(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_209(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) :|: TRUE 41.87/16.61 f_210(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) :|: TRUE 41.87/16.61 f_211(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 4, 10, 2) -> f_176(v66, v67, v68, v73, v95, 1, 0, v101, v74, v75, 3, 10, 4) :|: TRUE 41.87/16.61 f_212(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 2, 4, 10) -> f_178(v82, v83, v84, v88, v94, 1, v100, v89, v90, 0, 3, 10, 2, 4) :|: TRUE 41.87/16.61 Combined rules. Obtained 7 rulesP rules: 41.87/16.61 f_75 -> f_90(v1:0, v3:0, v5:0, v5:0 * v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4, 9) :|: v3:0 > 0 && v1:0 > 0 && v5:0 * v5:0 < 10 41.87/16.61 f_75 -> f_184(v1:0, v3:0, 1 + v8:0, v8:0, v8:0 * v8:0, 1, 1 + v8:0, 3 + v1:0, 3 + v3:0, 0, 3, 2, 4) :|: v3:0 > 0 && v1:0 > 0 && 9 < (1 + v8:0) * (1 + v8:0) && v8:0 < -1 41.87/16.61 f_184(v82:0, v83:0, v84:0, 1 + v100:0, v94:0, 1, v85:0, v89:0, v90:0, 0, 3, 2, 4) -> f_184(v82:0, v83:0, v84:0, v100:0, v100:0 * v100:0, 1, 1 + v100:0, v89:0, v90:0, 0, 3, 2, 4) :|: v100:0 < -2 && v94:0 > 9 41.87/16.61 f_75 -> f_185(v1:0, v3:0, v5:0, 1 + v5:0, (1 + v5:0) * (1 + v5:0), 1, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 * v5:0 > 9 && v5:0 > -1 41.87/16.61 f_184(v82:0, v83:0, v84:0, v88:0, v94:0, 1, v85:0, v89:0, v90:0, 0, 3, 2, 4) -> f_195(v82:0, v83:0, v84:0, v88:0, v94:0, 0, v85:0, 1, v89:0, v90:0, 3, 2, 4, 9) :|: v94:0 < 10 41.87/16.61 f_185(v66:0, v67:0, v68:0, v73:0, v95:0, 1, v69:0, 0, v74:0, v75:0, 3, 4) -> f_197(v66:0, v67:0, v68:0, v73:0, v95:0, 0, v69:0, v74:0, v75:0, 3, 1, 4, 9) :|: v95:0 < 10 41.87/16.61 f_185(v66:0, v67:0, v68:0, v73:0, v95:0, 1, v69:0, 0, v74:0, v75:0, 3, 4) -> f_185(v66:0, v67:0, v68:0, 1 + v73:0, (1 + v73:0) * (1 + v73:0), 1, v73:0, 0, v74:0, v75:0, 3, 4) :|: v73:0 > 0 && v95:0 > 9 41.87/16.61 Filtered unneeded arguments: 41.87/16.61 f_184(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) -> f_184(x4, x5) 41.87/16.61 f_185(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_185(x4, x5) 41.87/16.61 Removed division, modulo operations, cleaned up constraints. Obtained 7 rules.P rules: 41.87/16.61 f_75 -> f_90(v1:0, v3:0, v5:0, v5:0 * v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4, 9) :|: v1:0 > 0 && v5:0 * v5:0 < 10 && v3:0 > 0 41.87/16.61 f_75 -> f_184(v8:0, v8:0 * v8:0) :|: 9 < 1 + v8:0 + (v8:0 + v8:0 * v8:0) && v8:0 < -1 41.87/16.61 f_184(sum~cons_1~v100:0, v94:0) -> f_184(v100:0, v100:0 * v100:0) :|: v100:0 < -2 && v94:0 > 9 && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 f_75 -> f_185(1 + v5:0, 1 + v5:0 + (v5:0 + v5:0 * v5:0)) :|: v5:0 * v5:0 > 9 && v5:0 > -1 41.87/16.61 f_184(v88:0, v94:0) -> f_195(v82:0, v83:0, v84:0, v88:0, v94:0, 0, v85:0, 1, v89:0, v90:0, 3, 2, 4, 9) :|: v94:0 < 10 41.87/16.61 f_185(v73:0, v95:0) -> f_197(v66:0, v67:0, v68:0, v73:0, v95:0, 0, v69:0, v74:0, v75:0, 3, 1, 4, 9) :|: v95:0 < 10 41.87/16.61 f_185(v73:0, v95:0) -> f_185(1 + v73:0, 1 + v73:0 + (v73:0 + v73:0 * v73:0)) :|: v73:0 > 0 && v95:0 > 9 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (66) 41.87/16.61 Obligation: 41.87/16.61 Rules: 41.87/16.61 f_75 -> f_90(v1:0, v3:0, v5:0, v5:0 * v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4, 9) :|: v1:0 > 0 && v5:0 * v5:0 < 10 && v3:0 > 0 41.87/16.61 f_75 -> f_184(v8:0, v8:0 * v8:0) :|: 9 < 1 + v8:0 + (v8:0 + v8:0 * v8:0) && v8:0 < -1 41.87/16.61 f_184(sum~cons_1~v100:0, v94:0) -> f_184(v100:0, v100:0 * v100:0) :|: v100:0 < -2 && v94:0 > 9 && sum~cons_1~v100:0 = 1 + v100:0 41.87/16.61 f_75 -> f_185(1 + x, 1 + x + (x + x * x)) :|: x * x > 9 && x > -1 41.87/16.61 f_184(x1, x2) -> f_195(x3, x4, x5, x1, x2, 0, x6, 1, x7, x8, 3, 2, 4, 9) :|: x2 < 10 41.87/16.61 f_185(v73:0, v95:0) -> f_197(v66:0, v67:0, v68:0, v73:0, v95:0, 0, v69:0, v74:0, v75:0, 3, 1, 4, 9) :|: v95:0 < 10 41.87/16.61 f_185(x9, x10) -> f_185(1 + x9, 1 + x9 + (x9 + x9 * x9)) :|: x9 > 0 && x10 > 9 41.87/16.61 Start term: f_75 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (67) IRS2T2 (EQUIVALENT) 41.87/16.61 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 41.87/16.61 41.87/16.61 (f_75_14,1) 41.87/16.61 (f_90_14,2) 41.87/16.61 (f_184_14,3) 41.87/16.61 (f_185_14,4) 41.87/16.61 (f_195_14,5) 41.87/16.61 (f_197_14,6) 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (68) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 assume(oldX14 > 0 && oldX16 * oldX16 < 10 && oldX15 > 0); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX16 * oldX16; 41.87/16.61 x4 := 0; 41.87/16.61 x5 := 3 + oldX14; 41.87/16.61 x6 := 3 + oldX15; 41.87/16.61 x7 := 3; 41.87/16.61 x8 := 1; 41.87/16.61 x9 := 4; 41.87/16.61 x10 := 9; 41.87/16.61 x11 := oldX17; 41.87/16.61 x12 := oldX18; 41.87/16.61 x13 := oldX19; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(9 < 1 + oldX14 + (oldX14 + oldX14 * oldX14) && oldX14 < -1); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := oldX0 - 1; 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(oldX14 < -2 && oldX1 > 9 && oldX0 = 1 + oldX14); 41.87/16.61 x0 := oldX0 - 1; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(oldX14 * oldX14 > 9 && oldX14 > -1); 41.87/16.61 x0 := 1 + oldX14; 41.87/16.61 x1 := 1 + oldX14 + (oldX14 + oldX14 * oldX14); 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 assume(oldX1 < 10); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX0; 41.87/16.61 x4 := oldX1; 41.87/16.61 x5 := 0; 41.87/16.61 x6 := oldX17; 41.87/16.61 x7 := 1; 41.87/16.61 x8 := oldX18; 41.87/16.61 x9 := oldX19; 41.87/16.61 x10 := 3; 41.87/16.61 x11 := 2; 41.87/16.61 x12 := 4; 41.87/16.61 x13 := 9; 41.87/16.61 TO: 5; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 assume(oldX1 < 10); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX0; 41.87/16.61 x4 := oldX1; 41.87/16.61 x5 := 0; 41.87/16.61 x6 := oldX17; 41.87/16.61 x7 := oldX18; 41.87/16.61 x8 := oldX19; 41.87/16.61 x9 := 3; 41.87/16.61 x10 := 1; 41.87/16.61 x11 := 4; 41.87/16.61 x12 := 9; 41.87/16.61 x13 := oldX20; 41.87/16.61 TO: 6; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 assume(oldX0 > 0 && oldX1 > 9); 41.87/16.61 x0 := 1 + oldX0; 41.87/16.61 x1 := 1 + oldX0 + (oldX0 + oldX0 * oldX0); 41.87/16.61 x2 := oldX14; 41.87/16.61 x3 := oldX15; 41.87/16.61 x4 := oldX16; 41.87/16.61 x5 := oldX17; 41.87/16.61 x6 := oldX18; 41.87/16.61 x7 := oldX19; 41.87/16.61 x8 := oldX20; 41.87/16.61 x9 := oldX21; 41.87/16.61 x10 := oldX22; 41.87/16.61 x11 := oldX23; 41.87/16.61 x12 := oldX24; 41.87/16.61 x13 := oldX25; 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (69) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 3: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (70) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 assume(oldX14 > 0 && oldX16 * oldX16 < 10 && oldX15 > 0); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX16 * oldX16; 41.87/16.61 x4 := 0; 41.87/16.61 x5 := oldX14 + 3; 41.87/16.61 x6 := oldX15 + 3; 41.87/16.61 x7 := 3; 41.87/16.61 x8 := 1; 41.87/16.61 x9 := 4; 41.87/16.61 x10 := 9; 41.87/16.61 x11 := oldX17; 41.87/16.61 x12 := oldX18; 41.87/16.61 x13 := oldX19; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(9 < 1 + oldX14 + (oldX14 + oldX14 * oldX14) && oldX14 < -1); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := x0 - 1; 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(x0 - 1 < -2 && x1 > 9 && x0 = 1 + (x0 - 1)); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(oldX14 * oldX14 > 9 && oldX14 > -1); 41.87/16.61 x0 := oldX14 + 1; 41.87/16.61 x1 := oldX14 + (oldX14 + oldX14 * oldX14) + 1; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 assume(x1 < 10); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX0; 41.87/16.61 x4 := oldX1; 41.87/16.61 x5 := 0; 41.87/16.61 x6 := oldX17; 41.87/16.61 x7 := 1; 41.87/16.61 x8 := oldX18; 41.87/16.61 x9 := oldX19; 41.87/16.61 x10 := 3; 41.87/16.61 x11 := 2; 41.87/16.61 x12 := 4; 41.87/16.61 x13 := 9; 41.87/16.61 TO: 5; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 assume(x1 < 10); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX0; 41.87/16.61 x4 := oldX1; 41.87/16.61 x5 := 0; 41.87/16.61 x6 := oldX17; 41.87/16.61 x7 := oldX18; 41.87/16.61 x8 := oldX19; 41.87/16.61 x9 := 3; 41.87/16.61 x10 := 1; 41.87/16.61 x11 := 4; 41.87/16.61 x12 := 9; 41.87/16.61 x13 := oldX20; 41.87/16.61 TO: 6; 41.87/16.61 41.87/16.61 FROM: 4; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 assume(x0 > 0 && x1 > 9); 41.87/16.61 x0 := x0 + 1; 41.87/16.61 x1 := oldX0 + (oldX0 + oldX0 * oldX0) + 1; 41.87/16.61 x2 := oldX14; 41.87/16.61 x3 := oldX15; 41.87/16.61 x4 := oldX16; 41.87/16.61 x5 := oldX17; 41.87/16.61 x6 := oldX18; 41.87/16.61 x7 := oldX19; 41.87/16.61 x8 := oldX20; 41.87/16.61 x9 := oldX21; 41.87/16.61 x10 := oldX22; 41.87/16.61 x11 := oldX23; 41.87/16.61 x12 := oldX24; 41.87/16.61 x13 := oldX25; 41.87/16.61 TO: 4; 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (71) T2 Underapproximation (COMPLETE) 41.87/16.61 Added the following guard statements: 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 Transition 3: 41.87/16.61 assume(x0 <= 0); 41.87/16.61 41.87/16.61 41.87/16.61 41.87/16.61 ---------------------------------------- 41.87/16.61 41.87/16.61 (72) 41.87/16.61 Obligation: 41.87/16.61 START: 1; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 assume(oldX14 > 0 && oldX16 * oldX16 < 10 && oldX15 > 0); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX15; 41.87/16.61 x2 := oldX16; 41.87/16.61 x3 := oldX16 * oldX16; 41.87/16.61 x4 := 0; 41.87/16.61 x5 := oldX14 + 3; 41.87/16.61 x6 := oldX15 + 3; 41.87/16.61 x7 := 3; 41.87/16.61 x8 := 1; 41.87/16.61 x9 := 4; 41.87/16.61 x10 := 9; 41.87/16.61 x11 := oldX17; 41.87/16.61 x12 := oldX18; 41.87/16.61 x13 := oldX19; 41.87/16.61 TO: 2; 41.87/16.61 41.87/16.61 FROM: 1; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := nondet(); 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(9 < 1 + oldX14 + (oldX14 + oldX14 * oldX14) && oldX14 < -1); 41.87/16.61 x0 := oldX14; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.61 x2 := oldX15; 41.87/16.61 x3 := oldX16; 41.87/16.61 x4 := oldX17; 41.87/16.61 x5 := oldX18; 41.87/16.61 x6 := oldX19; 41.87/16.61 x7 := oldX20; 41.87/16.61 x8 := oldX21; 41.87/16.61 x9 := oldX22; 41.87/16.61 x10 := oldX23; 41.87/16.61 x11 := oldX24; 41.87/16.61 x12 := oldX25; 41.87/16.61 x13 := oldX26; 41.87/16.61 TO: 3; 41.87/16.61 41.87/16.61 FROM: 3; 41.87/16.61 oldX0 := x0; 41.87/16.61 oldX1 := x1; 41.87/16.61 oldX2 := x2; 41.87/16.61 oldX3 := x3; 41.87/16.61 oldX4 := x4; 41.87/16.61 oldX5 := x5; 41.87/16.61 oldX6 := x6; 41.87/16.61 oldX7 := x7; 41.87/16.61 oldX8 := x8; 41.87/16.61 oldX9 := x9; 41.87/16.61 oldX10 := x10; 41.87/16.61 oldX11 := x11; 41.87/16.61 oldX12 := x12; 41.87/16.61 oldX13 := x13; 41.87/16.61 oldX14 := x0 - 1; 41.87/16.61 oldX15 := nondet(); 41.87/16.61 oldX16 := nondet(); 41.87/16.61 oldX17 := nondet(); 41.87/16.61 oldX18 := nondet(); 41.87/16.61 oldX19 := nondet(); 41.87/16.61 oldX20 := nondet(); 41.87/16.61 oldX21 := nondet(); 41.87/16.61 oldX22 := nondet(); 41.87/16.61 oldX23 := nondet(); 41.87/16.61 oldX24 := nondet(); 41.87/16.61 oldX25 := nondet(); 41.87/16.61 oldX26 := nondet(); 41.87/16.61 assume(x0 - 1 < -2 && x1 > 9 && x0 = 1 + (x0 - 1)); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 assume(x0 <= 0); 41.87/16.61 x0 := x0 - 1; 41.87/16.61 x1 := oldX14 * oldX14; 41.87/16.62 x2 := oldX15; 41.87/16.62 x3 := oldX16; 41.87/16.62 x4 := oldX17; 41.87/16.62 x5 := oldX18; 41.87/16.62 x6 := oldX19; 41.87/16.62 x7 := oldX20; 41.87/16.62 x8 := oldX21; 41.87/16.62 x9 := oldX22; 41.87/16.62 x10 := oldX23; 41.87/16.62 x11 := oldX24; 41.87/16.62 x12 := oldX25; 41.87/16.62 x13 := oldX26; 41.87/16.62 TO: 3; 41.87/16.62 41.87/16.62 FROM: 1; 41.87/16.62 oldX0 := x0; 41.87/16.62 oldX1 := x1; 41.87/16.62 oldX2 := x2; 41.87/16.62 oldX3 := x3; 41.87/16.62 oldX4 := x4; 41.87/16.62 oldX5 := x5; 41.87/16.62 oldX6 := x6; 41.87/16.62 oldX7 := x7; 41.87/16.62 oldX8 := x8; 41.87/16.62 oldX9 := x9; 41.87/16.62 oldX10 := x10; 41.87/16.62 oldX11 := x11; 41.87/16.62 oldX12 := x12; 41.87/16.62 oldX13 := x13; 41.87/16.62 oldX14 := nondet(); 41.87/16.62 oldX15 := nondet(); 41.87/16.62 oldX16 := nondet(); 41.87/16.62 oldX17 := nondet(); 41.87/16.62 oldX18 := nondet(); 41.87/16.62 oldX19 := nondet(); 41.87/16.62 oldX20 := nondet(); 41.87/16.62 oldX21 := nondet(); 41.87/16.62 oldX22 := nondet(); 41.87/16.62 oldX23 := nondet(); 41.87/16.62 oldX24 := nondet(); 41.87/16.62 oldX25 := nondet(); 41.87/16.62 oldX26 := nondet(); 41.87/16.62 assume(oldX14 * oldX14 > 9 && oldX14 > -1); 41.87/16.62 x0 := oldX14 + 1; 41.87/16.62 x1 := oldX14 + (oldX14 + oldX14 * oldX14) + 1; 41.87/16.62 x2 := oldX15; 41.87/16.62 x3 := oldX16; 41.87/16.62 x4 := oldX17; 41.87/16.62 x5 := oldX18; 41.87/16.62 x6 := oldX19; 41.87/16.62 x7 := oldX20; 41.87/16.62 x8 := oldX21; 41.87/16.62 x9 := oldX22; 41.87/16.62 x10 := oldX23; 41.87/16.62 x11 := oldX24; 41.87/16.62 x12 := oldX25; 41.87/16.62 x13 := oldX26; 41.87/16.62 TO: 4; 41.87/16.62 41.87/16.62 FROM: 3; 41.87/16.62 oldX0 := x0; 41.87/16.62 oldX1 := x1; 41.87/16.62 oldX2 := x2; 41.87/16.62 oldX3 := x3; 41.87/16.62 oldX4 := x4; 41.87/16.62 oldX5 := x5; 41.87/16.62 oldX6 := x6; 41.87/16.62 oldX7 := x7; 41.87/16.62 oldX8 := x8; 41.87/16.62 oldX9 := x9; 41.87/16.62 oldX10 := x10; 41.87/16.62 oldX11 := x11; 41.87/16.62 oldX12 := x12; 41.87/16.62 oldX13 := x13; 41.87/16.62 oldX14 := nondet(); 41.87/16.62 oldX15 := nondet(); 41.87/16.62 oldX16 := nondet(); 41.87/16.62 oldX17 := nondet(); 41.87/16.62 oldX18 := nondet(); 41.87/16.62 oldX19 := nondet(); 41.87/16.62 assume(x1 < 10); 41.87/16.62 x0 := oldX14; 41.87/16.62 x1 := oldX15; 41.87/16.62 x2 := oldX16; 41.87/16.62 x3 := oldX0; 41.87/16.62 x4 := oldX1; 41.87/16.62 x5 := 0; 41.87/16.62 x6 := oldX17; 41.87/16.62 x7 := 1; 41.87/16.62 x8 := oldX18; 41.87/16.62 x9 := oldX19; 41.87/16.62 x10 := 3; 41.87/16.62 x11 := 2; 41.87/16.62 x12 := 4; 41.87/16.62 x13 := 9; 41.87/16.62 TO: 5; 41.87/16.62 41.87/16.62 FROM: 4; 41.87/16.62 oldX0 := x0; 41.87/16.62 oldX1 := x1; 41.87/16.62 oldX2 := x2; 41.87/16.62 oldX3 := x3; 41.87/16.62 oldX4 := x4; 41.87/16.62 oldX5 := x5; 41.87/16.62 oldX6 := x6; 41.87/16.62 oldX7 := x7; 41.87/16.62 oldX8 := x8; 41.87/16.62 oldX9 := x9; 41.87/16.62 oldX10 := x10; 41.87/16.62 oldX11 := x11; 41.87/16.62 oldX12 := x12; 41.87/16.62 oldX13 := x13; 41.87/16.62 oldX14 := nondet(); 41.87/16.62 oldX15 := nondet(); 41.87/16.62 oldX16 := nondet(); 41.87/16.62 oldX17 := nondet(); 41.87/16.62 oldX18 := nondet(); 41.87/16.62 oldX19 := nondet(); 41.87/16.62 oldX20 := nondet(); 41.87/16.62 assume(x1 < 10); 41.87/16.62 x0 := oldX14; 41.87/16.62 x1 := oldX15; 41.87/16.62 x2 := oldX16; 41.87/16.62 x3 := oldX0; 41.87/16.62 x4 := oldX1; 41.87/16.62 x5 := 0; 41.87/16.62 x6 := oldX17; 41.87/16.62 x7 := oldX18; 41.87/16.62 x8 := oldX19; 41.87/16.62 x9 := 3; 41.87/16.62 x10 := 1; 41.87/16.62 x11 := 4; 41.87/16.62 x12 := 9; 41.87/16.62 x13 := oldX20; 41.87/16.62 TO: 6; 41.87/16.62 41.87/16.62 FROM: 4; 41.87/16.62 oldX0 := x0; 41.87/16.62 oldX1 := x1; 41.87/16.62 oldX2 := x2; 41.87/16.62 oldX3 := x3; 41.87/16.62 oldX4 := x4; 41.97/16.62 oldX5 := x5; 41.97/16.62 oldX6 := x6; 41.97/16.62 oldX7 := x7; 41.97/16.62 oldX8 := x8; 41.97/16.62 oldX9 := x9; 41.97/16.62 oldX10 := x10; 41.97/16.62 oldX11 := x11; 41.97/16.62 oldX12 := x12; 41.97/16.62 oldX13 := x13; 41.97/16.62 oldX14 := nondet(); 41.97/16.62 oldX15 := nondet(); 41.97/16.62 oldX16 := nondet(); 41.97/16.62 oldX17 := nondet(); 41.97/16.62 oldX18 := nondet(); 41.97/16.62 oldX19 := nondet(); 41.97/16.62 oldX20 := nondet(); 41.97/16.62 oldX21 := nondet(); 41.97/16.62 oldX22 := nondet(); 41.97/16.62 oldX23 := nondet(); 41.97/16.62 oldX24 := nondet(); 41.97/16.62 oldX25 := nondet(); 41.97/16.62 assume(x0 > 0 && x1 > 9); 41.97/16.62 x0 := x0 + 1; 41.97/16.62 x1 := oldX0 + (oldX0 + oldX0 * oldX0) + 1; 41.97/16.62 x2 := oldX14; 41.97/16.62 x3 := oldX15; 41.97/16.62 x4 := oldX16; 41.97/16.62 x5 := oldX17; 41.97/16.62 x6 := oldX18; 41.97/16.62 x7 := oldX19; 41.97/16.62 x8 := oldX20; 41.97/16.62 x9 := oldX21; 41.97/16.62 x10 := oldX22; 41.97/16.62 x11 := oldX23; 41.97/16.62 x12 := oldX24; 41.97/16.62 x13 := oldX25; 41.97/16.62 TO: 4; 41.97/16.62 41.97/16.65 EOF