88.40/27.64 YES 88.40/27.66 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 88.40/27.66 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 88.40/27.66 88.40/27.66 88.40/27.66 Termination of the given C Problem could be proven: 88.40/27.66 88.40/27.66 (0) C Problem 88.40/27.66 (1) CToLLVMProof [EQUIVALENT, 174 ms] 88.40/27.66 (2) LLVM problem 88.40/27.66 (3) LLVMToTerminationGraphProof [EQUIVALENT, 14.2 s] 88.40/27.66 (4) LLVM Symbolic Execution Graph 88.40/27.66 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 88.40/27.66 (6) AND 88.40/27.66 (7) LLVM Symbolic Execution SCC 88.40/27.66 (8) SCC2IRS [SOUND, 56 ms] 88.40/27.66 (9) IntTRS 88.40/27.66 (10) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (11) T2IntSys 88.40/27.66 (12) T2 [EQUIVALENT, 843 ms] 88.40/27.66 (13) YES 88.40/27.66 (14) LLVM Symbolic Execution SCC 88.40/27.66 (15) SCC2IRS [SOUND, 90 ms] 88.40/27.66 (16) IntTRS 88.40/27.66 (17) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (18) T2IntSys 88.40/27.66 (19) T2 [EQUIVALENT, 813 ms] 88.40/27.66 (20) YES 88.40/27.66 (21) LLVM Symbolic Execution SCC 88.40/27.66 (22) SCC2IRS [SOUND, 52 ms] 88.40/27.66 (23) IntTRS 88.40/27.66 (24) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (25) T2IntSys 88.40/27.66 (26) T2 [EQUIVALENT, 873 ms] 88.40/27.66 (27) YES 88.40/27.66 (28) LLVM Symbolic Execution SCC 88.40/27.66 (29) SCC2IRS [SOUND, 60 ms] 88.40/27.66 (30) IntTRS 88.40/27.66 (31) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (32) T2IntSys 88.40/27.66 (33) T2 [EQUIVALENT, 833 ms] 88.40/27.66 (34) YES 88.40/27.66 (35) LLVM Symbolic Execution SCC 88.40/27.66 (36) SCC2IRS [SOUND, 270 ms] 88.40/27.66 (37) IntTRS 88.40/27.66 (38) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (39) T2IntSys 88.40/27.66 (40) T2 [EQUIVALENT, 754 ms] 88.40/27.66 (41) YES 88.40/27.66 (42) LLVM Symbolic Execution SCC 88.40/27.66 (43) SCC2IRS [SOUND, 919 ms] 88.40/27.66 (44) IntTRS 88.40/27.66 (45) IRS2T2 [EQUIVALENT, 0 ms] 88.40/27.66 (46) T2IntSys 88.40/27.66 (47) T2 [EQUIVALENT, 1495 ms] 88.40/27.66 (48) YES 88.40/27.66 (49) LLVM Symbolic Execution SCC 88.40/27.66 (50) SCC2IRS [SOUND, 34 ms] 88.40/27.66 (51) IntTRS 88.40/27.66 (52) IntTRSCompressionProof [EQUIVALENT, 0 ms] 88.40/27.66 (53) IntTRS 88.40/27.66 (54) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 88.40/27.66 (55) YES 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (0) 88.40/27.66 Obligation: 88.40/27.66 c file /export/starexec/sandbox/benchmark/theBenchmark.c 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (1) CToLLVMProof (EQUIVALENT) 88.40/27.66 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (2) 88.40/27.66 Obligation: 88.40/27.66 LLVM Problem 88.40/27.66 88.40/27.66 Aliases: 88.40/27.66 88.40/27.66 Data layout: 88.40/27.66 88.40/27.66 "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" 88.40/27.66 88.40/27.66 Machine: 88.40/27.66 88.40/27.66 "x86_64-pc-linux-gnu" 88.40/27.66 88.40/27.66 Type definitions: 88.40/27.66 88.40/27.66 Global variables: 88.40/27.66 88.40/27.66 Function declarations and definitions: 88.40/27.66 88.40/27.66 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 88.40/27.66 *BasicFunctionTypename: "f" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (k i32, l i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 88.40/27.66 0: 88.40/27.66 %1 = alloca i32, align 4 88.40/27.66 %2 = alloca i32, align 4 88.40/27.66 %i = alloca i32, align 4 88.40/27.66 %j = alloca i32, align 4 88.40/27.66 store %k, %1 88.40/27.66 store %l, %2 88.40/27.66 store 0, %i 88.40/27.66 store 0, %j 88.40/27.66 br %3 88.40/27.66 3: 88.40/27.66 br %4 88.40/27.66 4: 88.40/27.66 %5 = load %i 88.40/27.66 %6 = load %1 88.40/27.66 %7 = icmp slt %5 %6 88.40/27.66 br %7, %8, %16 88.40/27.66 8: 88.40/27.66 %9 = load %i 88.40/27.66 %10 = add %9 1 88.40/27.66 store %10, %i 88.40/27.66 %11 = load %i 88.40/27.66 %12 = srem %11 2 88.40/27.66 %13 = icmp ne %12 0 88.40/27.66 br %13, %14, %15 88.40/27.66 14: 88.40/27.66 br %4 88.40/27.66 15: 88.40/27.66 br %17 88.40/27.66 16: 88.40/27.66 br %17 88.40/27.66 17: 88.40/27.66 br %18 88.40/27.66 18: 88.40/27.66 %19 = load %j 88.40/27.66 %20 = load %2 88.40/27.66 %21 = icmp slt %19 %20 88.40/27.66 br %21, %22, %30 88.40/27.66 22: 88.40/27.66 %23 = load %j 88.40/27.66 %24 = add %23 1 88.40/27.66 store %24, %j 88.40/27.66 %25 = load %i 88.40/27.66 %26 = srem %25 2 88.40/27.66 %27 = icmp ne %26 0 88.40/27.66 br %27, %28, %29 88.40/27.66 28: 88.40/27.66 br %18 88.40/27.66 29: 88.40/27.66 br %3 88.40/27.66 30: 88.40/27.66 %31 = load %i 88.40/27.66 %32 = load %j 88.40/27.66 %33 = add %31 %32 88.40/27.66 ret %33 88.40/27.66 88.40/27.66 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 88.40/27.66 0: 88.40/27.66 %1 = alloca i32, align 4 88.40/27.66 store 0, %1 88.40/27.66 %2 = call i32 @__VERIFIER_nondet_int() 88.40/27.66 %3 = call i32 @__VERIFIER_nondet_int() 88.40/27.66 %4 = call i32 @f(i32 %2, i32 %3) 88.40/27.66 ret %4 88.40/27.66 88.40/27.66 88.40/27.66 Analyze Termination of all function calls matching the pattern: 88.40/27.66 main() 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (3) LLVMToTerminationGraphProof (EQUIVALENT) 88.40/27.66 Constructed symbolic execution graph for LLVM program and proved memory safety. 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (4) 88.40/27.66 Obligation: 88.40/27.66 SE Graph 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (5) SymbolicExecutionGraphToSCCProof (SOUND) 88.40/27.66 Splitted symbolic execution graph to 7 SCCs. 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (6) 88.40/27.66 Complex Obligation (AND) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (7) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (8) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 14 rulesP rules: 88.40/27.66 f_1762(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1766(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1766(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1769(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1769(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1772(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v6653 < v6515 && 3 <= v6515 88.40/27.66 f_1772(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1776(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1776(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1779(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1779(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1782(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1782(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1784(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v7090 = 1 + v6653 && 3 <= v7090 88.40/27.66 f_1784(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1786(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1786(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1788(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1788(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1790(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 1 = v6514 - v6514 / 2 * 2 88.40/27.66 f_1790(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1791(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1791(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1792(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1792(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1758(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6653, 1, v7090, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1758(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1762(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 Combined rules. Obtained 1 rulesP rules: 88.40/27.66 f_1762(v6514:0, v6515:0, v6516:0, v6517:0, v6518:0, v6519:0, 0, v6521:0, v6524:0, 1, v6653:0, v6525:0, v6526:0, v6527:0, v6528:0, v6529:0, v6530:0, 3, 2, 4) -> f_1762(v6514:0, v6515:0, v6516:0, v6517:0, v6518:0, v6519:0, 0, v6521:0, v6653:0, 1, 1 + v6653:0, v6525:0, v6526:0, v6527:0, v6528:0, v6529:0, v6530:0, 3, 2, 4) :|: v6515:0 > 2 && v6653:0 < v6515:0 && v6514:0 - v6514:0 / 2 * 2 = 1 && v6653:0 > 1 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1762(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_1762(x1, x2, x11) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 88.40/27.66 f_1762(v6514:0, v6515:0, v6653:0) -> f_1762'(v6514:0, v6515:0, v6653:0) :|: v6653:0 < v6515:0 && v6515:0 > 2 && v6653:0 > 1 && v6514:0 - 2 * div = 1 88.40/27.66 f_1762'(v6514:0, v6515:0, v6653:0) -> f_1762(v6514:0, v6515:0, 1 + v6653:0) :|: v6653:0 < v6515:0 && v6515:0 > 2 && v6514:0 - 2 * div = 1 && v6514:0 < 0 && v6653:0 > 1 && v6514:0 - 2 * div <= 0 && v6514:0 - 2 * div > -2 88.40/27.66 f_1762'(v6514:0, v6515:0, v6653:0) -> f_1762(v6514:0, v6515:0, 1 + v6653:0) :|: v6653:0 < v6515:0 && v6515:0 > 2 && v6514:0 - 2 * div = 1 && v6514:0 > -1 && v6653:0 > 1 && v6514:0 - 2 * div < 2 && v6514:0 - 2 * div >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (9) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1762(x, x1, x2) -> f_1762'(x, x1, x2) :|: x2 < x1 && x1 > 2 && x2 > 1 && x - 2 * x3 = 1 88.40/27.66 f_1762'(x4, x5, x6) -> f_1762(x4, x5, 1 + x6) :|: x6 < x5 && x5 > 2 && x4 - 2 * x7 = 1 && x4 < 0 && x6 > 1 && x4 - 2 * x7 <= 0 && x4 - 2 * x7 > -2 88.40/27.66 f_1762'(x8, x9, x10) -> f_1762(x8, x9, 1 + x10) :|: x10 < x9 && x9 > 2 && x8 - 2 * x11 = 1 && x8 > -1 && x10 > 1 && x8 - 2 * x11 < 2 && x8 - 2 * x11 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (10) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1762_3,1) 88.40/27.66 (f_1762'_3,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (11) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX2 > 1 && oldX0 - 2 * oldX3 = 1); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX0 - 2 * oldX3 = 1 && oldX0 < 0 && oldX2 > 1 && oldX0 - 2 * oldX3 <= 0 && oldX0 - 2 * oldX3 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX0 - 2 * oldX3 = 1 && oldX0 > -1 && oldX2 > 1 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX3 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (12) T2 (EQUIVALENT) 88.40/27.66 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.66 * Removed transitions 3, 4, 7, 8 using the following rank functions: 88.40/27.66 - Rank function 1: 88.40/27.66 RF for loc. 6: 1+2*x1-2*x2 88.40/27.66 RF for loc. 8: 2*x1-2*x2 88.40/27.66 Bound for (chained) transitions 3, 4: 3 88.40/27.66 Bound for (chained) transitions 7: 2 88.40/27.66 Bound for (chained) transitions 8: 2 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (13) 88.40/27.66 YES 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (14) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (15) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 14 rulesP rules: 88.40/27.66 f_1732(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6573, v6574, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1735(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1735(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1738(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1738(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1741(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: v6574 < v6564 && 3 <= v6564 88.40/27.66 f_1741(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1745(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1745(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1748(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: TRUE 88.40/27.66 f_1748(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6573, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1752(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1752(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1756(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: v6745 = 1 + v6574 && 3 <= v6745 88.40/27.66 f_1756(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1760(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: TRUE 88.40/27.66 f_1760(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1764(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1764(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1768(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 1 = v6571 - v6571 / 2 * 2 88.40/27.66 f_1768(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1771(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: 0 = 0 88.40/27.66 f_1771(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1775(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: TRUE 88.40/27.66 f_1775(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1729(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6574, v6745, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: TRUE 88.40/27.66 f_1729(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6573, v6574, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) -> f_1732(v6563, v6564, v6565, v6566, v6567, v6568, v6569, 1, v6571, 0, v6573, v6574, v6575, v6576, v6577, v6578, v6579, v6580, 3, 2, 5, 4) :|: TRUE 88.40/27.66 Combined rules. Obtained 1 rulesP rules: 88.40/27.66 f_1732(v6563:0, v6564:0, v6565:0, v6566:0, v6567:0, v6568:0, v6569:0, 1, v6571:0, 0, v6573:0, v6574:0, v6575:0, v6576:0, v6577:0, v6578:0, v6579:0, v6580:0, 3, 2, 5, 4) -> f_1732(v6563:0, v6564:0, v6565:0, v6566:0, v6567:0, v6568:0, v6569:0, 1, v6571:0, 0, v6574:0, 1 + v6574:0, v6575:0, v6576:0, v6577:0, v6578:0, v6579:0, v6580:0, 3, 2, 5, 4) :|: v6564:0 > 2 && v6574:0 < v6564:0 && v6571:0 - v6571:0 / 2 * 2 = 1 && v6574:0 > 1 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1732(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1732(x2, x9, x12) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 88.40/27.66 f_1732(v6564:0, v6571:0, v6574:0) -> f_1732'(v6564:0, v6571:0, v6574:0) :|: v6574:0 < v6564:0 && v6564:0 > 2 && v6574:0 > 1 && v6571:0 - 2 * div = 1 88.40/27.66 f_1732'(v6564:0, v6571:0, v6574:0) -> f_1732(v6564:0, v6571:0, 1 + v6574:0) :|: v6574:0 < v6564:0 && v6564:0 > 2 && v6571:0 - 2 * div = 1 && v6571:0 < 0 && v6574:0 > 1 && v6571:0 - 2 * div <= 0 && v6571:0 - 2 * div > -2 88.40/27.66 f_1732'(v6564:0, v6571:0, v6574:0) -> f_1732(v6564:0, v6571:0, 1 + v6574:0) :|: v6574:0 < v6564:0 && v6564:0 > 2 && v6571:0 - 2 * div = 1 && v6571:0 > -1 && v6574:0 > 1 && v6571:0 - 2 * div < 2 && v6571:0 - 2 * div >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (16) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1732(x, x1, x2) -> f_1732'(x, x1, x2) :|: x2 < x && x > 2 && x2 > 1 && x1 - 2 * x3 = 1 88.40/27.66 f_1732'(x4, x5, x6) -> f_1732(x4, x5, 1 + x6) :|: x6 < x4 && x4 > 2 && x5 - 2 * x7 = 1 && x5 < 0 && x6 > 1 && x5 - 2 * x7 <= 0 && x5 - 2 * x7 > -2 88.40/27.66 f_1732'(x8, x9, x10) -> f_1732(x8, x9, 1 + x10) :|: x10 < x8 && x8 > 2 && x9 - 2 * x11 = 1 && x9 > -1 && x10 > 1 && x9 - 2 * x11 < 2 && x9 - 2 * x11 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (17) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1732_3,1) 88.40/27.66 (f_1732'_3,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (18) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX0 && oldX0 > 2 && oldX2 > 1 && oldX1 - 2 * oldX3 = 1); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX0 && oldX0 > 2 && oldX1 - 2 * oldX3 = 1 && oldX1 < 0 && oldX2 > 1 && oldX1 - 2 * oldX3 <= 0 && oldX1 - 2 * oldX3 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX0 && oldX0 > 2 && oldX1 - 2 * oldX3 = 1 && oldX1 > -1 && oldX2 > 1 && oldX1 - 2 * oldX3 < 2 && oldX1 - 2 * oldX3 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (19) T2 (EQUIVALENT) 88.40/27.66 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.66 * Removed transitions 3, 4, 7, 8 using the following rank functions: 88.40/27.66 - Rank function 1: 88.40/27.66 RF for loc. 6: 1+2*x0-2*x2 88.40/27.66 RF for loc. 8: 2*x0-2*x2 88.40/27.66 Bound for (chained) transitions 3, 4: 3 88.40/27.66 Bound for (chained) transitions 7: 2 88.40/27.66 Bound for (chained) transitions 8: 2 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (20) 88.40/27.66 YES 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (21) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (22) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 22 rulesP rules: 88.40/27.66 f_1712(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6522, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1715(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6522, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1715(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6522, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1718(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1718(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1721(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1721(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1723(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v6524 < v6515 && 2 <= v6515 88.40/27.66 f_1723(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1726(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1726(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1730(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1730(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6522, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1733(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1733(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1736(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v6653 = 1 + v6524 && 2 <= v6653 88.40/27.66 f_1736(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1739(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1739(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1743(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1743(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1747(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6656, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v6656 = v6514 - v6514 / 2 * 2 && 0 <= v6656 && v6656 <= 1 88.40/27.66 f_1747(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6656, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1751(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: v6656 = 0 88.40/27.66 f_1751(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1755(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1755(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1759(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1759(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1763(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1763(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1767(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1767(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1770(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1770(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1774(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1774(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1778(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1778(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1781(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1781(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1709(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6524, 1, v6653, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 f_1709(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6522, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) -> f_1712(v6514, v6515, v6516, v6517, v6518, v6519, 0, v6521, v6522, 1, v6524, v6525, v6526, v6527, v6528, v6529, v6530, 3, 2, 4) :|: TRUE 88.40/27.66 Combined rules. Obtained 1 rulesP rules: 88.40/27.66 f_1712(v6514:0, v6515:0, v6516:0, v6517:0, v6518:0, v6519:0, 0, v6521:0, v6522:0, 1, v6524:0, v6525:0, v6526:0, v6527:0, v6528:0, v6529:0, v6530:0, 3, 2, 4) -> f_1712(v6514:0, v6515:0, v6516:0, v6517:0, v6518:0, v6519:0, 0, v6521:0, v6524:0, 1, 1 + v6524:0, v6525:0, v6526:0, v6527:0, v6528:0, v6529:0, v6530:0, 3, 2, 4) :|: v6515:0 > 1 && v6524:0 < v6515:0 && v6514:0 - v6514:0 / 2 * 2 = 0 && v6524:0 > 0 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1712(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_1712(x1, x2, x11) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 88.40/27.66 f_1712(v6514:0, v6515:0, v6524:0) -> f_1712'(v6514:0, v6515:0, v6524:0) :|: v6524:0 < v6515:0 && v6515:0 > 1 && v6524:0 > 0 && v6514:0 - 2 * div = 0 88.40/27.66 f_1712'(v6514:0, v6515:0, v6524:0) -> f_1712(v6514:0, v6515:0, 1 + v6524:0) :|: v6524:0 < v6515:0 && v6515:0 > 1 && v6514:0 - 2 * div = 0 && v6514:0 < 0 && v6524:0 > 0 && v6514:0 - 2 * div <= 0 && v6514:0 - 2 * div > -2 88.40/27.66 f_1712'(v6514:0, v6515:0, v6524:0) -> f_1712(v6514:0, v6515:0, 1 + v6524:0) :|: v6524:0 < v6515:0 && v6515:0 > 1 && v6514:0 - 2 * div = 0 && v6514:0 > -1 && v6524:0 > 0 && v6514:0 - 2 * div < 2 && v6514:0 - 2 * div >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (23) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1712(x, x1, x2) -> f_1712'(x, x1, x2) :|: x2 < x1 && x1 > 1 && x2 > 0 && x - 2 * x3 = 0 88.40/27.66 f_1712'(x4, x5, x6) -> f_1712(x4, x5, 1 + x6) :|: x6 < x5 && x5 > 1 && x4 - 2 * x7 = 0 && x4 < 0 && x6 > 0 && x4 - 2 * x7 <= 0 && x4 - 2 * x7 > -2 88.40/27.66 f_1712'(x8, x9, x10) -> f_1712(x8, x9, 1 + x10) :|: x10 < x9 && x9 > 1 && x8 - 2 * x11 = 0 && x8 > -1 && x10 > 0 && x8 - 2 * x11 < 2 && x8 - 2 * x11 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (24) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1712_3,1) 88.40/27.66 (f_1712'_3,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (25) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 - 2 * oldX3 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 1 && oldX0 - 2 * oldX3 = 0 && oldX0 < 0 && oldX2 > 0 && oldX0 - 2 * oldX3 <= 0 && oldX0 - 2 * oldX3 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 1 && oldX0 - 2 * oldX3 = 0 && oldX0 > -1 && oldX2 > 0 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX3 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (26) T2 (EQUIVALENT) 88.40/27.66 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.66 * Removed transitions 3, 4, 7, 8 using the following rank functions: 88.40/27.66 - Rank function 1: 88.40/27.66 RF for loc. 6: 1+2*x1-2*x2 88.40/27.66 RF for loc. 8: 2*x1-2*x2 88.40/27.66 Bound for (chained) transitions 3, 4: 3 88.40/27.66 Bound for (chained) transitions 7: 2 88.40/27.66 Bound for (chained) transitions 8: 2 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (27) 88.40/27.66 YES 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (28) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (29) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 22 rulesP rules: 88.40/27.66 f_1496(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1499(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1499(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1502(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1502(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1505(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1505(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1508(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1508(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1512(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1512(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1517(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1517(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1522(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1522(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1523(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1523(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5047, v5048, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1528(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1528(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1533(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1533(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1538(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: v5048 < v5039 && 3 <= v5039 88.40/27.66 f_1538(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1544(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1544(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1550(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: TRUE 88.40/27.66 f_1550(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5047, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1558(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1558(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1566(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: v5244 = 1 + v5048 && 3 <= v5244 88.40/27.66 f_1566(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1574(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: TRUE 88.40/27.66 f_1574(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1582(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1582(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1590(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = v5038 - v5038 / 2 * 2 88.40/27.66 f_1590(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1597(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1597(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1606(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: TRUE 88.40/27.66 f_1606(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) -> f_1492(v5038, v5039, v5040, v5041, v5042, v5043, 0, v5045, 1, v5048, v5244, v5049, v5050, v5051, v5052, v5053, v5054, 3, 2, 4) :|: TRUE 88.40/27.66 f_1492(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1496(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 Combined rules. Obtained 1 rulesP rules: 88.40/27.66 f_1496(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, v4596:0, v4751:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 2, 4) -> f_1496(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, v4751:0, 1 + v4751:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 2, 4) :|: v4587:0 > 2 && v4751:0 < v4587:0 && v4586:0 - v4586:0 / 2 * 2 = 0 && v4751:0 > 1 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1496(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_1496(x1, x2, x11) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 88.40/27.66 f_1496(v4586:0, v4587:0, v4751:0) -> f_1496'(v4586:0, v4587:0, v4751:0) :|: v4751:0 < v4587:0 && v4587:0 > 2 && v4751:0 > 1 && v4586:0 - 2 * div = 0 88.40/27.66 f_1496'(v4586:0, v4587:0, v4751:0) -> f_1496(v4586:0, v4587:0, 1 + v4751:0) :|: v4751:0 < v4587:0 && v4587:0 > 2 && v4586:0 - 2 * div = 0 && v4586:0 < 0 && v4751:0 > 1 && v4586:0 - 2 * div <= 0 && v4586:0 - 2 * div > -2 88.40/27.66 f_1496'(v4586:0, v4587:0, v4751:0) -> f_1496(v4586:0, v4587:0, 1 + v4751:0) :|: v4751:0 < v4587:0 && v4587:0 > 2 && v4586:0 - 2 * div = 0 && v4586:0 > -1 && v4751:0 > 1 && v4586:0 - 2 * div < 2 && v4586:0 - 2 * div >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (30) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1496(x, x1, x2) -> f_1496'(x, x1, x2) :|: x2 < x1 && x1 > 2 && x2 > 1 && x - 2 * x3 = 0 88.40/27.66 f_1496'(x4, x5, x6) -> f_1496(x4, x5, 1 + x6) :|: x6 < x5 && x5 > 2 && x4 - 2 * x7 = 0 && x4 < 0 && x6 > 1 && x4 - 2 * x7 <= 0 && x4 - 2 * x7 > -2 88.40/27.66 f_1496'(x8, x9, x10) -> f_1496(x8, x9, 1 + x10) :|: x10 < x9 && x9 > 2 && x8 - 2 * x11 = 0 && x8 > -1 && x10 > 1 && x8 - 2 * x11 < 2 && x8 - 2 * x11 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (31) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1496_3,1) 88.40/27.66 (f_1496'_3,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (32) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX2 > 1 && oldX0 - 2 * oldX3 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX0 - 2 * oldX3 = 0 && oldX0 < 0 && oldX2 > 1 && oldX0 - 2 * oldX3 <= 0 && oldX0 - 2 * oldX3 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 2 && oldX0 - 2 * oldX3 = 0 && oldX0 > -1 && oldX2 > 1 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX3 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (33) T2 (EQUIVALENT) 88.40/27.66 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.66 * Removed transitions 3, 4, 7, 8 using the following rank functions: 88.40/27.66 - Rank function 1: 88.40/27.66 RF for loc. 6: 1+2*x1-2*x2 88.40/27.66 RF for loc. 8: 2*x1-2*x2 88.40/27.66 Bound for (chained) transitions 3, 4: 3 88.40/27.66 Bound for (chained) transitions 7: 2 88.40/27.66 Bound for (chained) transitions 8: 2 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (34) 88.40/27.66 YES 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (35) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (36) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 15 rulesP rules: 88.40/27.66 f_1439(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) -> f_1444(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) :|: 0 = 0 88.40/27.66 f_1444(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) -> f_1449(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: v4596 < v4587 && 2 <= v4587 88.40/27.66 f_1449(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1454(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1454(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1459(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1459(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1465(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1465(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1472(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: v4751 = 1 + v4596 && 2 <= v4751 88.40/27.66 f_1472(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1475(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1475(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1478(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1478(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1481(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4762, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: v4762 = v4586 - v4586 / 2 * 2 && 0 <= v4762 && v4762 <= 1 88.40/27.66 f_1481(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4762, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1483(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: v4762 != 0 88.40/27.66 f_1483(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1487(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1487(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1491(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1491(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1495(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) :|: TRUE 88.40/27.66 f_1495(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 2, 4) -> f_1434(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4751, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) :|: TRUE 88.40/27.66 f_1434(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4595, v4596, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) -> f_1439(v4586, v4587, v4588, v4589, v4590, v4591, 0, v4593, 1, v4596, v4595, v4597, v4598, v4599, v4600, v4601, v4602, 3, 4) :|: 0 = 0 88.40/27.66 Combined rules. Obtained 2 rulesP rules: 88.40/27.66 f_1439(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, v4596:0, v4595:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 4) -> f_1439(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, 1 + v4596:0, v4596:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 4) :|: v4587:0 > 1 && v4596:0 < v4587:0 && v4596:0 > 0 && v4586:0 - v4586:0 / 2 * 2 > -1 && v4586:0 - v4586:0 / 2 * 2 < 0 && v4586:0 - v4586:0 / 2 * 2 < 2 88.40/27.66 f_1439(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, v4596:0, v4595:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 4) -> f_1439(v4586:0, v4587:0, v4588:0, v4589:0, v4590:0, v4591:0, 0, v4593:0, 1, 1 + v4596:0, v4596:0, v4597:0, v4598:0, v4599:0, v4600:0, v4601:0, v4602:0, 3, 4) :|: v4586:0 - v4586:0 / 2 * 2 > 0 && v4587:0 > 1 && v4596:0 < v4587:0 && v4586:0 - v4586:0 / 2 * 2 < 2 && v4596:0 > 0 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1439(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_1439(x1, x2, x10) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 8 rules.P rules: 88.40/27.66 f_1439(v4586:0, v4587:0, v4596:0) -> f_1439'(v4586:0, v4587:0, v4596:0) :|: v4596:0 < v4587:0 && v4587:0 > 1 && v4596:0 > 0 && v4586:0 - 2 * div > -1 && v4586:0 - 2 * div2 < 2 && v4586:0 - 2 * div1 < 0 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div > -1 && v4586:0 - 2 * div1 < 0 && v4596:0 < v4587:0 && v4587:0 > 1 && v4596:0 > 0 && v4586:0 < 0 && v4586:0 - 2 * div2 < 2 && v4586:0 - 2 * div <= 0 && v4586:0 - 2 * div1 > -2 && v4586:0 - 2 * div2 <= 0 && v4586:0 - 2 * div2 > -2 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div > -1 && v4586:0 - 2 * div1 < 0 && v4596:0 < v4587:0 && v4587:0 > 1 && v4596:0 > 0 && v4586:0 < 0 && v4586:0 - 2 * div2 < 2 && v4586:0 - 2 * div <= 0 && v4586:0 - 2 * div1 > -2 && v4586:0 > -1 && v4586:0 - 2 * div2 >= 0 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div >= 0 && v4586:0 - 2 * div1 < 0 && v4596:0 < v4587:0 && v4587:0 > 1 && v4596:0 > 0 && v4586:0 > -1 && v4586:0 - 2 * div2 < 2 && v4586:0 < 0 && v4586:0 - 2 * div < 2 && v4586:0 - 2 * div1 > -2 && v4586:0 - 2 * div2 <= 0 && v4586:0 - 2 * div2 > -2 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div >= 0 && v4586:0 - 2 * div1 < 0 && v4596:0 < v4587:0 && v4587:0 > 1 && v4596:0 > 0 && v4586:0 > -1 && v4586:0 - 2 * div2 < 2 && v4586:0 < 0 && v4586:0 - 2 * div < 2 && v4586:0 - 2 * div1 > -2 && v4586:0 - 2 * div2 >= 0 88.40/27.66 f_1439(v4586:0, v4587:0, v4596:0) -> f_1439'(v4586:0, v4587:0, v4596:0) :|: v4587:0 > 1 && v4586:0 - 2 * div > 0 && v4596:0 < v4587:0 && v4596:0 > 0 && v4586:0 - 2 * div1 < 2 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div > 0 && v4587:0 > 1 && v4596:0 < v4587:0 && v4586:0 - 2 * div1 < 2 && v4586:0 > -1 && v4596:0 > 0 && v4586:0 < 0 && v4586:0 - 2 * div < 2 && v4586:0 - 2 * div1 <= 0 && v4586:0 - 2 * div1 > -2 88.40/27.66 f_1439'(v4586:0, v4587:0, v4596:0) -> f_1439(v4586:0, v4587:0, 1 + v4596:0) :|: v4586:0 - 2 * div > 0 && v4587:0 > 1 && v4596:0 < v4587:0 && v4586:0 - 2 * div1 < 2 && v4586:0 > -1 && v4596:0 > 0 && v4586:0 - 2 * div < 2 && v4586:0 - 2 * div1 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (37) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1439(x, x1, x2) -> f_1439'(x, x1, x2) :|: x2 < x1 && x1 > 1 && x2 > 0 && x - 2 * x3 > -1 && x - 2 * x4 < 2 && x - 2 * x5 < 0 88.40/27.66 f_1439'(x6, x7, x8) -> f_1439(x6, x7, 1 + x8) :|: x6 - 2 * x9 > -1 && x6 - 2 * x10 < 0 && x8 < x7 && x7 > 1 && x8 > 0 && x6 < 0 && x6 - 2 * x11 < 2 && x6 - 2 * x9 <= 0 && x6 - 2 * x10 > -2 && x6 - 2 * x11 <= 0 && x6 - 2 * x11 > -2 88.40/27.66 f_1439'(x12, x13, x14) -> f_1439(x12, x13, 1 + x14) :|: x12 - 2 * x15 > -1 && x12 - 2 * x16 < 0 && x14 < x13 && x13 > 1 && x14 > 0 && x12 < 0 && x12 - 2 * x17 < 2 && x12 - 2 * x15 <= 0 && x12 - 2 * x16 > -2 && x12 > -1 && x12 - 2 * x17 >= 0 88.40/27.66 f_1439'(x18, x19, x20) -> f_1439(x18, x19, 1 + x20) :|: x18 - 2 * x21 >= 0 && x18 - 2 * x22 < 0 && x20 < x19 && x19 > 1 && x20 > 0 && x18 > -1 && x18 - 2 * x23 < 2 && x18 < 0 && x18 - 2 * x21 < 2 && x18 - 2 * x22 > -2 && x18 - 2 * x23 <= 0 && x18 - 2 * x23 > -2 88.40/27.66 f_1439'(x24, x25, x26) -> f_1439(x24, x25, 1 + x26) :|: x24 - 2 * x27 >= 0 && x24 - 2 * x28 < 0 && x26 < x25 && x25 > 1 && x26 > 0 && x24 > -1 && x24 - 2 * x29 < 2 && x24 < 0 && x24 - 2 * x27 < 2 && x24 - 2 * x28 > -2 && x24 - 2 * x29 >= 0 88.40/27.66 f_1439(x30, x31, x32) -> f_1439'(x30, x31, x32) :|: x31 > 1 && x30 - 2 * x33 > 0 && x32 < x31 && x32 > 0 && x30 - 2 * x34 < 2 88.40/27.66 f_1439'(x35, x36, x37) -> f_1439(x35, x36, 1 + x37) :|: x35 - 2 * x38 > 0 && x36 > 1 && x37 < x36 && x35 - 2 * x39 < 2 && x35 > -1 && x37 > 0 && x35 < 0 && x35 - 2 * x38 < 2 && x35 - 2 * x39 <= 0 && x35 - 2 * x39 > -2 88.40/27.66 f_1439'(x40, x41, x42) -> f_1439(x40, x41, 1 + x42) :|: x40 - 2 * x43 > 0 && x41 > 1 && x42 < x41 && x40 - 2 * x44 < 2 && x40 > -1 && x42 > 0 && x40 - 2 * x43 < 2 && x40 - 2 * x44 >= 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (38) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1439_3,1) 88.40/27.66 (f_1439'_3,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (39) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 oldX5 := nondet(); 88.40/27.66 assume(oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 - 2 * oldX3 > -1 && oldX0 - 2 * oldX4 < 2 && oldX0 - 2 * oldX5 < 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 oldX5 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 > -1 && oldX0 - 2 * oldX4 < 0 && oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 < 0 && oldX0 - 2 * oldX5 < 2 && oldX0 - 2 * oldX3 <= 0 && oldX0 - 2 * oldX4 > -2 && oldX0 - 2 * oldX5 <= 0 && oldX0 - 2 * oldX5 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 oldX5 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 > -1 && oldX0 - 2 * oldX4 < 0 && oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 < 0 && oldX0 - 2 * oldX5 < 2 && oldX0 - 2 * oldX3 <= 0 && oldX0 - 2 * oldX4 > -2 && oldX0 > -1 && oldX0 - 2 * oldX5 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 oldX5 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 >= 0 && oldX0 - 2 * oldX4 < 0 && oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 > -1 && oldX0 - 2 * oldX5 < 2 && oldX0 < 0 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX4 > -2 && oldX0 - 2 * oldX5 <= 0 && oldX0 - 2 * oldX5 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 oldX5 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 >= 0 && oldX0 - 2 * oldX4 < 0 && oldX2 < oldX1 && oldX1 > 1 && oldX2 > 0 && oldX0 > -1 && oldX0 - 2 * oldX5 < 2 && oldX0 < 0 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX4 > -2 && oldX0 - 2 * oldX5 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 assume(oldX1 > 1 && oldX0 - 2 * oldX3 > 0 && oldX2 < oldX1 && oldX2 > 0 && oldX0 - 2 * oldX4 < 2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 > 0 && oldX1 > 1 && oldX2 < oldX1 && oldX0 - 2 * oldX4 < 2 && oldX0 > -1 && oldX2 > 0 && oldX0 < 0 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX4 <= 0 && oldX0 - 2 * oldX4 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := nondet(); 88.40/27.66 oldX4 := nondet(); 88.40/27.66 assume(oldX0 - 2 * oldX3 > 0 && oldX1 > 1 && oldX2 < oldX1 && oldX0 - 2 * oldX4 < 2 && oldX0 > -1 && oldX2 > 0 && oldX0 - 2 * oldX3 < 2 && oldX0 - 2 * oldX4 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX2; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (40) T2 (EQUIVALENT) 88.40/27.66 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.66 * Removed transitions 4, 5, 6, 9, 10, 11, 12, 13, 14 using the following rank functions: 88.40/27.66 - Rank function 1: 88.40/27.66 RF for loc. 6: 2+3*x1-3*x2 88.40/27.66 RF for loc. 7: 1+3*x1-3*x2 88.40/27.66 RF for loc. 8: 3*x1-3*x2 88.40/27.66 Bound for (chained) transitions 4: 5 88.40/27.66 Bound for (chained) transitions 9: 3 88.40/27.66 Bound for (chained) transitions 10: 3 88.40/27.66 Bound for (chained) transitions 11: 3 88.40/27.66 Bound for (chained) transitions 12: 3 88.40/27.66 Bound for (chained) transitions 13: 3 88.40/27.66 Bound for (chained) transitions 14: 3 88.40/27.66 - Rank function 2: 88.40/27.66 RF for loc. 6: x1 88.40/27.66 RF for loc. 7: 0 88.40/27.66 RF for loc. 8: -1 88.40/27.66 Bound for (chained) transitions 5: 2 88.40/27.66 Bound for (chained) transitions 6: 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (41) 88.40/27.66 YES 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (42) 88.40/27.66 Obligation: 88.40/27.66 SCC 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (43) SCC2IRS (SOUND) 88.40/27.66 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.66 Generated rules. Obtained 51 rulesP rules: 88.40/27.66 f_1546(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1552(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1552(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1560(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1560(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1568(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1568(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1576(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v5334 = 1 + v4912 && 4 <= v5334 88.40/27.66 f_1576(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1584(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1584(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1591(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1591(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, v4743, v4744, v4741, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1598(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = v5334 - v5334 / 2 * 2 88.40/27.66 f_1598(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1607(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1607(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1614(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1614(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1622(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1622(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1627(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1627(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1628(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v5334, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 4, 2) :|: TRUE 88.40/27.66 f_1628(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5887, v5888, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1632(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: 0 = 0 88.40/27.66 f_1632(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1636(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: 0 = 0 88.40/27.66 f_1636(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1640(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: v5888 < v5878 && 2 <= v5878 88.40/27.66 f_1640(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1645(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: 0 = 0 88.40/27.66 f_1645(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1650(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: TRUE 88.40/27.66 f_1650(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5887, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1655(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: 0 = 0 88.40/27.66 f_1655(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1659(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: v6000 = 1 + v5888 && 2 <= v6000 88.40/27.66 f_1659(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1663(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: TRUE 88.40/27.66 f_1663(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5889, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1667(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) :|: 0 = 0 88.40/27.66 f_1667(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 4, 2) -> f_1671(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v6006, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) :|: v6006 = v5885 - v5885 / 2 * 2 && 0 <= v6006 && v6006 <= 1 88.40/27.66 f_1671(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v6006, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) -> f_1674(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) :|: v6006 = 0 88.40/27.66 f_1674(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) -> f_1678(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1678(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) -> f_1682(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) :|: TRUE 88.40/27.66 f_1682(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) -> f_1471(v5877, v5878, v5879, v5880, v5881, v5882, v5883, 1, v5885, 0, v5888, v6000, v5890, v5891, v5892, v5893, v5894, v5895, 3, 2, 4) :|: TRUE 88.40/27.66 f_1471(v4733, v4734, v4735, v4736, v4737, v4738, v4739, 1, v4741, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1474(v4733, v4734, v4735, v4736, v4737, v4738, v4739, 1, v4741, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1474(v4733, v4734, v4735, v4736, v4737, v4738, v4739, 1, v4741, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1477(v4733, v4734, v4735, v4736, v4737, v4738, v4739, 1, v4741, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1477(v4733, v4734, v4735, v4736, v4737, v4738, v4739, 1, v4741, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1480(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1480(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1482(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1482(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1485(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4741 < v4733 && 3 <= v4733 88.40/27.66 f_1485(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1489(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1489(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1493(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1493(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4739, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1497(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1497(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1500(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4912 = 1 + v4741 && 3 <= v4912 88.40/27.66 f_1500(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1503(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1503(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1506(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1506(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1509(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4929, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4929 = v4912 - v4912 / 2 * 2 && 0 <= v4929 && v4929 <= 1 88.40/27.66 f_1509(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4929, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1513(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4929 != 0 88.40/27.66 f_1509(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4929, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1514(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4929 = 0 && 4 <= v4912 && 3 <= v4741 && 4 <= v4733 88.40/27.66 f_1513(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1518(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1518(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1524(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1524(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1529(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1529(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1534(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1534(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1540(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1540(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1546(v4733, v4734, v4735, v4736, v4737, v4738, v4912, 1, v4741, v4743, v4744, 0, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: v4912 < v4733 && 4 <= v4733 88.40/27.66 f_1514(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1519(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: 0 = 0 88.40/27.66 f_1519(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1525(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1525(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1530(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1530(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1535(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) :|: TRUE 88.40/27.66 f_1535(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4745, v4746, v4747, v4748, v4749, v4750, 3, 2, 4) -> f_1628(v4733, v4734, v4735, v4736, v4737, v4738, v4741, 1, v4912, 0, v4743, v4744, v4741, v4745, v4746, v4747, v4748, v4749, v4750, 3, 4, 2) :|: TRUE 88.40/27.66 Combined rules. Obtained 3 rulesP rules: 88.40/27.66 f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, v4741:0, 1, v4912:0, v4929:0, 0, v4743:0, v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) -> f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, 1 + v4912:0, 1, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2, 0, v4744:0, 1 + v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) :|: v4912:0 > 2 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - (1 + v4912:0) / 2 * 2 = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2 && 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2 > -1 88.40/27.66 f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, v4741:0, 1, v4912:0, v4929:0, 0, v4743:0, v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) -> f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, 1 + v4912:0, 1, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2, 0, v4744:0, 1 + v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) :|: v4912:0 > 2 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - (1 + v4912:0) / 2 * 2 = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2 && 1 + (1 + v4912:0) - (1 + (1 + v4912:0)) / 2 * 2 > -1 88.40/27.66 f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, v4741:0, 1, v4912:0, 0, 0, v4743:0, v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) -> f_1509(v4733:0, v4734:0, v4735:0, v4736:0, v4737:0, v4738:0, v4912:0, 1, 1 + v4912:0, 1 + v4912:0 - (1 + v4912:0) / 2 * 2, 0, v4744:0, 1 + v4744:0, v4745:0, v4746:0, v4747:0, v4748:0, v4749:0, v4750:0, 3, 2, 4) :|: v4912:0 > 3 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - v4912:0 / 2 * 2 = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - (1 + v4912:0) / 2 * 2 && 1 + v4912:0 - (1 + v4912:0) / 2 * 2 > -1 88.40/27.66 Filtered unneeded arguments: 88.40/27.66 f_1509(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1509(x1, x2, x7, x9, x10, x13) 88.40/27.66 Removed division, modulo operations, cleaned up constraints. Obtained 30 rules.P rules: 88.40/27.66 f_1509(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) :|: v4733:0 > 1 + v4912:0 && v4912:0 > 2 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 1 + (1 + v4912:0) - 2 * div2 > -1 && 2 > 1 + (1 + v4912:0) - 2 * div1 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4912:0 > 2 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 < 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && 1 + v4912:0 - 2 * div >= 0 && 2 > 1 + v4912:0 - 2 * div && 1 + (1 + v4912:0) - 2 * div1 >= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) :|: v4733:0 > 1 + v4912:0 && v4912:0 > 2 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 1 + (1 + v4912:0) - 2 * div2 > -1 && 2 > 1 + (1 + v4912:0) - 2 * div1 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4912:0 > 2 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && v4912:0 < -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 > -2 && 1 + (1 + v4912:0) - 2 * div1 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 > -1 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 1 + (1 + v4912:0) - 2 * div2 <= 0 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && v4912:0 < -2 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 1 + (1 + v4912:0) - 2 * div3 <= 0 && 1 + (1 + v4912:0) - 2 * div3 > -2 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && v4912:0 < -1 && 1 + v4912:0 - 2 * div > -2 && 1 + v4912:0 - 2 * div <= 0 && 1 + (1 + v4912:0) - 2 * div1 >= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, v4929:0, v4744:0) -> f_1509(v4733:0, v4734:0, 1 + v4912:0, 1 + (1 + v4912:0), 1 + (1 + v4912:0) - 2 * div3, 1 + v4744:0) :|: v4912:0 > 2 && 1 + (1 + v4912:0) - 2 * div2 >= 0 && v4733:0 > 1 + v4912:0 && v4733:0 > 3 && 1 + v4912:0 - 2 * div = 0 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4929:0 > 0 && 2 > 1 + (1 + v4912:0) - 2 * div1 && 1 + v4912:0 - 2 * div >= 0 && 2 > 1 + v4912:0 - 2 * div && 1 + (1 + v4912:0) - 2 * div1 >= 0 && 2 > 1 + (1 + v4912:0) - 2 * div2 && 2 > 1 + (1 + v4912:0) - 2 * div3 && 1 + (1 + v4912:0) - 2 * div3 >= 0 88.40/27.66 f_1509(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, 0, v4744:0) :|: v4733:0 > 3 && v4912:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 1 + v4912:0 - 2 * div2 > -1 && 2 > 1 + v4912:0 - 2 * div1 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: 1 + v4912:0 - 2 * div2 > -1 && v4733:0 > 3 && v4912:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 < -1 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 > -2 && 1 + v4912:0 - 2 * div1 <= 0 && 1 + v4912:0 - 2 * div2 <= 0 && 1 + v4912:0 - 2 * div3 <= 0 && 1 + v4912:0 - 2 * div3 > -2 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 > -1 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 < -1 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 > -2 && 1 + v4912:0 - 2 * div1 <= 0 && 1 + v4912:0 - 2 * div2 <= 0 && 2 > 1 + v4912:0 - 2 * div3 && 1 + v4912:0 - 2 * div3 >= 0 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 >= 0 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 < -1 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 > -2 && 1 + v4912:0 - 2 * div1 <= 0 && 2 > 1 + v4912:0 - 2 * div2 && 1 + v4912:0 - 2 * div3 <= 0 && 1 + v4912:0 - 2 * div3 > -2 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 > -1 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 >= 0 && v4912:0 < -1 && 1 + v4912:0 - 2 * div2 <= 0 && 1 + v4912:0 - 2 * div3 <= 0 && 1 + v4912:0 - 2 * div3 > -2 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 >= 0 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 < -1 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 > -2 && 1 + v4912:0 - 2 * div1 <= 0 && 2 > 1 + v4912:0 - 2 * div2 && 2 > 1 + v4912:0 - 2 * div3 && 1 + v4912:0 - 2 * div3 >= 0 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 > -1 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 >= 0 && v4912:0 < -1 && 1 + v4912:0 - 2 * div2 <= 0 && 2 > 1 + v4912:0 - 2 * div3 && 1 + v4912:0 - 2 * div3 >= 0 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 >= 0 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 >= 0 && v4912:0 < -1 && 2 > 1 + v4912:0 - 2 * div2 && 1 + v4912:0 - 2 * div3 <= 0 && 1 + v4912:0 - 2 * div3 > -2 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 >= 0 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 < 0 && v4912:0 - 2 * div > -2 && v4912:0 - 2 * div <= 0 && 1 + v4912:0 - 2 * div1 >= 0 && 2 > 1 + v4912:0 - 2 * div2 && 2 > 1 + v4912:0 - 2 * div3 && 1 + v4912:0 - 2 * div3 >= 0 && cons_0 = 0 88.40/27.66 f_1509'(v4733:0, v4734:0, v4741:0, v4912:0, cons_0, v4744:0) -> f_1509(v4733:0, v4734:0, v4912:0, 1 + v4912:0, 1 + v4912:0 - 2 * div3, 1 + v4744:0) :|: v4912:0 > 3 && 1 + v4912:0 - 2 * div2 >= 0 && v4733:0 > 3 && v4734:0 > 1 && v4744:0 < v4734:0 && v4744:0 > 0 && v4912:0 - 2 * div = 0 && v4912:0 < v4733:0 && v4741:0 > 2 && 2 > 1 + v4912:0 - 2 * div1 && v4912:0 - 2 * div >= 0 && v4912:0 - 2 * div < 2 && 1 + v4912:0 - 2 * div1 >= 0 && 2 > 1 + v4912:0 - 2 * div2 && 2 > 1 + v4912:0 - 2 * div3 && 1 + v4912:0 - 2 * div3 >= 0 && cons_0 = 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (44) 88.40/27.66 Obligation: 88.40/27.66 Rules: 88.40/27.66 f_1509(x, x1, x2, x3, x4, x5) -> f_1509'(x, x1, x2, x3, x4, x5) :|: x > 1 + x3 && x3 > 2 && x > 3 && 1 + x3 - 2 * x6 = 0 && x1 > 1 && x5 < x1 && x5 > 0 && x4 < 0 && 1 + (1 + x3) - 2 * x7 > -1 && 2 > 1 + (1 + x3) - 2 * x8 88.40/27.66 f_1509'(x9, x10, x11, x12, x13, x14) -> f_1509(x9, x10, 1 + x12, 1 + (1 + x12), 1 + (1 + x12) - 2 * x15, 1 + x14) :|: 1 + (1 + x12) - 2 * x16 > -1 && x9 > 1 + x12 && x12 > 2 && x9 > 3 && 1 + x12 - 2 * x17 = 0 && x10 > 1 && x14 < x10 && x14 > 0 && x13 < 0 && 2 > 1 + (1 + x12) - 2 * x18 && x12 < -1 && 1 + x12 - 2 * x17 > -2 && x12 < -2 && 1 + x12 - 2 * x17 <= 0 && 1 + (1 + x12) - 2 * x18 > -2 && 1 + (1 + x12) - 2 * x18 <= 0 && 1 + (1 + x12) - 2 * x16 <= 0 && 1 + (1 + x12) - 2 * x15 <= 0 && 1 + (1 + x12) - 2 * x15 > -2 88.40/27.66 f_1509'(x19, x20, x21, x22, x23, x24) -> f_1509(x19, x20, 1 + x22, 1 + (1 + x22), 1 + (1 + x22) - 2 * x25, 1 + x24) :|: x22 > 2 && 1 + (1 + x22) - 2 * x26 > -1 && x19 > 1 + x22 && x19 > 3 && 1 + x22 - 2 * x27 = 0 && x20 > 1 && x24 < x20 && x24 > 0 && x23 < 0 && 2 > 1 + (1 + x22) - 2 * x28 && x22 < -1 && 1 + x22 - 2 * x27 > -2 && x22 < -2 && 1 + x22 - 2 * x27 <= 0 && 1 + (1 + x22) - 2 * x28 > -2 && 1 + (1 + x22) - 2 * x28 <= 0 && 1 + (1 + x22) - 2 * x26 <= 0 && 2 > 1 + (1 + x22) - 2 * x25 && 1 + (1 + x22) - 2 * x25 >= 0 88.40/27.66 f_1509'(x29, x30, x31, x32, x33, x34) -> f_1509(x29, x30, 1 + x32, 1 + (1 + x32), 1 + (1 + x32) - 2 * x35, 1 + x34) :|: x32 > 2 && 1 + (1 + x32) - 2 * x36 >= 0 && x29 > 1 + x32 && x29 > 3 && 1 + x32 - 2 * x37 = 0 && x30 > 1 && x34 < x30 && x34 > 0 && x33 < 0 && 2 > 1 + (1 + x32) - 2 * x38 && x32 < -1 && 1 + x32 - 2 * x37 > -2 && x32 < -2 && 1 + x32 - 2 * x37 <= 0 && 1 + (1 + x32) - 2 * x38 > -2 && 1 + (1 + x32) - 2 * x38 <= 0 && 2 > 1 + (1 + x32) - 2 * x36 && 1 + (1 + x32) - 2 * x35 <= 0 && 1 + (1 + x32) - 2 * x35 > -2 88.40/27.66 f_1509'(x39, x40, x41, x42, x43, x44) -> f_1509(x39, x40, 1 + x42, 1 + (1 + x42), 1 + (1 + x42) - 2 * x45, 1 + x44) :|: x42 > 2 && 1 + (1 + x42) - 2 * x46 > -1 && x39 > 1 + x42 && x39 > 3 && 1 + x42 - 2 * x47 = 0 && x40 > 1 && x44 < x40 && x44 > 0 && x43 < 0 && 2 > 1 + (1 + x42) - 2 * x48 && x42 < -1 && 1 + x42 - 2 * x47 > -2 && 1 + x42 - 2 * x47 <= 0 && 1 + (1 + x42) - 2 * x48 >= 0 && x42 < -2 && 1 + (1 + x42) - 2 * x46 <= 0 && 1 + (1 + x42) - 2 * x45 <= 0 && 1 + (1 + x42) - 2 * x45 > -2 88.40/27.66 f_1509'(x49, x50, x51, x52, x53, x54) -> f_1509(x49, x50, 1 + x52, 1 + (1 + x52), 1 + (1 + x52) - 2 * x55, 1 + x54) :|: x52 > 2 && 1 + (1 + x52) - 2 * x56 >= 0 && x49 > 1 + x52 && x49 > 3 && 1 + x52 - 2 * x57 = 0 && x50 > 1 && x54 < x50 && x54 > 0 && x53 < 0 && 2 > 1 + (1 + x52) - 2 * x58 && x52 < -1 && 1 + x52 - 2 * x57 > -2 && x52 < -2 && 1 + x52 - 2 * x57 <= 0 && 1 + (1 + x52) - 2 * x58 > -2 && 1 + (1 + x52) - 2 * x58 <= 0 && 2 > 1 + (1 + x52) - 2 * x56 && 2 > 1 + (1 + x52) - 2 * x55 && 1 + (1 + x52) - 2 * x55 >= 0 88.40/27.66 f_1509'(x59, x60, x61, x62, x63, x64) -> f_1509(x59, x60, 1 + x62, 1 + (1 + x62), 1 + (1 + x62) - 2 * x65, 1 + x64) :|: x62 > 2 && 1 + (1 + x62) - 2 * x66 > -1 && x59 > 1 + x62 && x59 > 3 && 1 + x62 - 2 * x67 = 0 && x60 > 1 && x64 < x60 && x64 > 0 && x63 < 0 && 2 > 1 + (1 + x62) - 2 * x68 && x62 < -1 && 1 + x62 - 2 * x67 > -2 && 1 + x62 - 2 * x67 <= 0 && 1 + (1 + x62) - 2 * x68 >= 0 && x62 < -2 && 1 + (1 + x62) - 2 * x66 <= 0 && 2 > 1 + (1 + x62) - 2 * x65 && 1 + (1 + x62) - 2 * x65 >= 0 88.40/27.66 f_1509'(x69, x70, x71, x72, x73, x74) -> f_1509(x69, x70, 1 + x72, 1 + (1 + x72), 1 + (1 + x72) - 2 * x75, 1 + x74) :|: x72 > 2 && 1 + (1 + x72) - 2 * x76 >= 0 && x69 > 1 + x72 && x69 > 3 && 1 + x72 - 2 * x77 = 0 && x70 > 1 && x74 < x70 && x74 > 0 && x73 < 0 && 2 > 1 + (1 + x72) - 2 * x78 && x72 < -1 && 1 + x72 - 2 * x77 > -2 && 1 + x72 - 2 * x77 <= 0 && 1 + (1 + x72) - 2 * x78 >= 0 && x72 < -2 && 2 > 1 + (1 + x72) - 2 * x76 && 1 + (1 + x72) - 2 * x75 <= 0 && 1 + (1 + x72) - 2 * x75 > -2 88.40/27.66 f_1509'(x79, x80, x81, x82, x83, x84) -> f_1509(x79, x80, 1 + x82, 1 + (1 + x82), 1 + (1 + x82) - 2 * x85, 1 + x84) :|: x82 > 2 && 1 + (1 + x82) - 2 * x86 >= 0 && x79 > 1 + x82 && x79 > 3 && 1 + x82 - 2 * x87 = 0 && x80 > 1 && x84 < x80 && x84 > 0 && x83 < 0 && 2 > 1 + (1 + x82) - 2 * x88 && x82 < -1 && 1 + x82 - 2 * x87 > -2 && 1 + x82 - 2 * x87 <= 0 && 1 + (1 + x82) - 2 * x88 >= 0 && 2 > 1 + (1 + x82) - 2 * x86 && 2 > 1 + (1 + x82) - 2 * x85 && 1 + (1 + x82) - 2 * x85 >= 0 88.40/27.66 f_1509'(x89, x90, x91, x92, x93, x94) -> f_1509(x89, x90, 1 + x92, 1 + (1 + x92), 1 + (1 + x92) - 2 * x95, 1 + x94) :|: x92 > 2 && 1 + (1 + x92) - 2 * x96 >= 0 && x89 > 1 + x92 && x89 > 3 && 1 + x92 - 2 * x97 = 0 && x90 > 1 && x94 < x90 && x94 > 0 && x93 < 0 && 2 > 1 + (1 + x92) - 2 * x98 && 1 + x92 - 2 * x97 >= 0 && 2 > 1 + x92 - 2 * x97 && 1 + (1 + x92) - 2 * x98 >= 0 && 2 > 1 + (1 + x92) - 2 * x96 && 2 > 1 + (1 + x92) - 2 * x95 && 1 + (1 + x92) - 2 * x95 >= 0 88.40/27.66 f_1509(x99, x100, x101, x102, x103, x104) -> f_1509'(x99, x100, x101, x102, x103, x104) :|: x99 > 1 + x102 && x102 > 2 && x99 > 3 && 1 + x102 - 2 * x105 = 0 && x100 > 1 && x104 < x100 && x104 > 0 && x103 > 0 && 1 + (1 + x102) - 2 * x106 > -1 && 2 > 1 + (1 + x102) - 2 * x107 88.40/27.66 f_1509'(x108, x109, x110, x111, x112, x113) -> f_1509(x108, x109, 1 + x111, 1 + (1 + x111), 1 + (1 + x111) - 2 * x114, 1 + x113) :|: 1 + (1 + x111) - 2 * x115 > -1 && x108 > 1 + x111 && x111 > 2 && x108 > 3 && 1 + x111 - 2 * x116 = 0 && x109 > 1 && x113 < x109 && x113 > 0 && x112 > 0 && 2 > 1 + (1 + x111) - 2 * x117 && x111 < -1 && 1 + x111 - 2 * x116 > -2 && x111 < -2 && 1 + x111 - 2 * x116 <= 0 && 1 + (1 + x111) - 2 * x117 > -2 && 1 + (1 + x111) - 2 * x117 <= 0 && 1 + (1 + x111) - 2 * x115 <= 0 && 1 + (1 + x111) - 2 * x114 <= 0 && 1 + (1 + x111) - 2 * x114 > -2 88.40/27.66 f_1509'(x118, x119, x120, x121, x122, x123) -> f_1509(x118, x119, 1 + x121, 1 + (1 + x121), 1 + (1 + x121) - 2 * x124, 1 + x123) :|: x121 > 2 && 1 + (1 + x121) - 2 * x125 > -1 && x118 > 1 + x121 && x118 > 3 && 1 + x121 - 2 * x126 = 0 && x119 > 1 && x123 < x119 && x123 > 0 && x122 > 0 && 2 > 1 + (1 + x121) - 2 * x127 && x121 < -1 && 1 + x121 - 2 * x126 > -2 && x121 < -2 && 1 + x121 - 2 * x126 <= 0 && 1 + (1 + x121) - 2 * x127 > -2 && 1 + (1 + x121) - 2 * x127 <= 0 && 1 + (1 + x121) - 2 * x125 <= 0 && 2 > 1 + (1 + x121) - 2 * x124 && 1 + (1 + x121) - 2 * x124 >= 0 88.40/27.66 f_1509'(x128, x129, x130, x131, x132, x133) -> f_1509(x128, x129, 1 + x131, 1 + (1 + x131), 1 + (1 + x131) - 2 * x134, 1 + x133) :|: x131 > 2 && 1 + (1 + x131) - 2 * x135 >= 0 && x128 > 1 + x131 && x128 > 3 && 1 + x131 - 2 * x136 = 0 && x129 > 1 && x133 < x129 && x133 > 0 && x132 > 0 && 2 > 1 + (1 + x131) - 2 * x137 && x131 < -1 && 1 + x131 - 2 * x136 > -2 && x131 < -2 && 1 + x131 - 2 * x136 <= 0 && 1 + (1 + x131) - 2 * x137 > -2 && 1 + (1 + x131) - 2 * x137 <= 0 && 2 > 1 + (1 + x131) - 2 * x135 && 1 + (1 + x131) - 2 * x134 <= 0 && 1 + (1 + x131) - 2 * x134 > -2 88.40/27.66 f_1509'(x138, x139, x140, x141, x142, x143) -> f_1509(x138, x139, 1 + x141, 1 + (1 + x141), 1 + (1 + x141) - 2 * x144, 1 + x143) :|: x141 > 2 && 1 + (1 + x141) - 2 * x145 > -1 && x138 > 1 + x141 && x138 > 3 && 1 + x141 - 2 * x146 = 0 && x139 > 1 && x143 < x139 && x143 > 0 && x142 > 0 && 2 > 1 + (1 + x141) - 2 * x147 && x141 < -1 && 1 + x141 - 2 * x146 > -2 && 1 + x141 - 2 * x146 <= 0 && 1 + (1 + x141) - 2 * x147 >= 0 && x141 < -2 && 1 + (1 + x141) - 2 * x145 <= 0 && 1 + (1 + x141) - 2 * x144 <= 0 && 1 + (1 + x141) - 2 * x144 > -2 88.40/27.66 f_1509'(x148, x149, x150, x151, x152, x153) -> f_1509(x148, x149, 1 + x151, 1 + (1 + x151), 1 + (1 + x151) - 2 * x154, 1 + x153) :|: x151 > 2 && 1 + (1 + x151) - 2 * x155 >= 0 && x148 > 1 + x151 && x148 > 3 && 1 + x151 - 2 * x156 = 0 && x149 > 1 && x153 < x149 && x153 > 0 && x152 > 0 && 2 > 1 + (1 + x151) - 2 * x157 && x151 < -1 && 1 + x151 - 2 * x156 > -2 && x151 < -2 && 1 + x151 - 2 * x156 <= 0 && 1 + (1 + x151) - 2 * x157 > -2 && 1 + (1 + x151) - 2 * x157 <= 0 && 2 > 1 + (1 + x151) - 2 * x155 && 2 > 1 + (1 + x151) - 2 * x154 && 1 + (1 + x151) - 2 * x154 >= 0 88.40/27.66 f_1509'(x158, x159, x160, x161, x162, x163) -> f_1509(x158, x159, 1 + x161, 1 + (1 + x161), 1 + (1 + x161) - 2 * x164, 1 + x163) :|: x161 > 2 && 1 + (1 + x161) - 2 * x165 > -1 && x158 > 1 + x161 && x158 > 3 && 1 + x161 - 2 * x166 = 0 && x159 > 1 && x163 < x159 && x163 > 0 && x162 > 0 && 2 > 1 + (1 + x161) - 2 * x167 && x161 < -1 && 1 + x161 - 2 * x166 > -2 && 1 + x161 - 2 * x166 <= 0 && 1 + (1 + x161) - 2 * x167 >= 0 && x161 < -2 && 1 + (1 + x161) - 2 * x165 <= 0 && 2 > 1 + (1 + x161) - 2 * x164 && 1 + (1 + x161) - 2 * x164 >= 0 88.40/27.66 f_1509'(x168, x169, x170, x171, x172, x173) -> f_1509(x168, x169, 1 + x171, 1 + (1 + x171), 1 + (1 + x171) - 2 * x174, 1 + x173) :|: x171 > 2 && 1 + (1 + x171) - 2 * x175 >= 0 && x168 > 1 + x171 && x168 > 3 && 1 + x171 - 2 * x176 = 0 && x169 > 1 && x173 < x169 && x173 > 0 && x172 > 0 && 2 > 1 + (1 + x171) - 2 * x177 && x171 < -1 && 1 + x171 - 2 * x176 > -2 && 1 + x171 - 2 * x176 <= 0 && 1 + (1 + x171) - 2 * x177 >= 0 && x171 < -2 && 2 > 1 + (1 + x171) - 2 * x175 && 1 + (1 + x171) - 2 * x174 <= 0 && 1 + (1 + x171) - 2 * x174 > -2 88.40/27.66 f_1509'(x178, x179, x180, x181, x182, x183) -> f_1509(x178, x179, 1 + x181, 1 + (1 + x181), 1 + (1 + x181) - 2 * x184, 1 + x183) :|: x181 > 2 && 1 + (1 + x181) - 2 * x185 >= 0 && x178 > 1 + x181 && x178 > 3 && 1 + x181 - 2 * x186 = 0 && x179 > 1 && x183 < x179 && x183 > 0 && x182 > 0 && 2 > 1 + (1 + x181) - 2 * x187 && x181 < -1 && 1 + x181 - 2 * x186 > -2 && 1 + x181 - 2 * x186 <= 0 && 1 + (1 + x181) - 2 * x187 >= 0 && 2 > 1 + (1 + x181) - 2 * x185 && 2 > 1 + (1 + x181) - 2 * x184 && 1 + (1 + x181) - 2 * x184 >= 0 88.40/27.66 f_1509'(x188, x189, x190, x191, x192, x193) -> f_1509(x188, x189, 1 + x191, 1 + (1 + x191), 1 + (1 + x191) - 2 * x194, 1 + x193) :|: x191 > 2 && 1 + (1 + x191) - 2 * x195 >= 0 && x188 > 1 + x191 && x188 > 3 && 1 + x191 - 2 * x196 = 0 && x189 > 1 && x193 < x189 && x193 > 0 && x192 > 0 && 2 > 1 + (1 + x191) - 2 * x197 && 1 + x191 - 2 * x196 >= 0 && 2 > 1 + x191 - 2 * x196 && 1 + (1 + x191) - 2 * x197 >= 0 && 2 > 1 + (1 + x191) - 2 * x195 && 2 > 1 + (1 + x191) - 2 * x194 && 1 + (1 + x191) - 2 * x194 >= 0 88.40/27.66 f_1509(x198, x199, x200, x201, x202, x203) -> f_1509'(x198, x199, x200, x201, 0, x203) :|: x198 > 3 && x201 > 3 && x199 > 1 && x203 < x199 && x203 > 0 && x201 - 2 * x204 = 0 && x201 < x198 && x200 > 2 && 1 + x201 - 2 * x205 > -1 && 2 > 1 + x201 - 2 * x206 && x202 = 0 88.40/27.66 f_1509'(x207, x208, x209, x210, x211, x212) -> f_1509(x207, x208, x210, 1 + x210, 1 + x210 - 2 * x213, 1 + x212) :|: 1 + x210 - 2 * x214 > -1 && x207 > 3 && x210 > 3 && x208 > 1 && x212 < x208 && x212 > 0 && x210 - 2 * x215 = 0 && x210 < x207 && x209 > 2 && 2 > 1 + x210 - 2 * x216 && x210 < 0 && x210 - 2 * x215 > -2 && x210 < -1 && x210 - 2 * x215 <= 0 && 1 + x210 - 2 * x216 > -2 && 1 + x210 - 2 * x216 <= 0 && 1 + x210 - 2 * x214 <= 0 && 1 + x210 - 2 * x213 <= 0 && 1 + x210 - 2 * x213 > -2 && x211 = 0 88.40/27.66 f_1509'(x217, x218, x219, x220, x221, x222) -> f_1509(x217, x218, x220, 1 + x220, 1 + x220 - 2 * x223, 1 + x222) :|: x220 > 3 && 1 + x220 - 2 * x224 > -1 && x217 > 3 && x218 > 1 && x222 < x218 && x222 > 0 && x220 - 2 * x225 = 0 && x220 < x217 && x219 > 2 && 2 > 1 + x220 - 2 * x226 && x220 < 0 && x220 - 2 * x225 > -2 && x220 < -1 && x220 - 2 * x225 <= 0 && 1 + x220 - 2 * x226 > -2 && 1 + x220 - 2 * x226 <= 0 && 1 + x220 - 2 * x224 <= 0 && 2 > 1 + x220 - 2 * x223 && 1 + x220 - 2 * x223 >= 0 && x221 = 0 88.40/27.66 f_1509'(x227, x228, x229, x230, x231, x232) -> f_1509(x227, x228, x230, 1 + x230, 1 + x230 - 2 * x233, 1 + x232) :|: x230 > 3 && 1 + x230 - 2 * x234 >= 0 && x227 > 3 && x228 > 1 && x232 < x228 && x232 > 0 && x230 - 2 * x235 = 0 && x230 < x227 && x229 > 2 && 2 > 1 + x230 - 2 * x236 && x230 < 0 && x230 - 2 * x235 > -2 && x230 < -1 && x230 - 2 * x235 <= 0 && 1 + x230 - 2 * x236 > -2 && 1 + x230 - 2 * x236 <= 0 && 2 > 1 + x230 - 2 * x234 && 1 + x230 - 2 * x233 <= 0 && 1 + x230 - 2 * x233 > -2 && x231 = 0 88.40/27.66 f_1509'(x237, x238, x239, x240, x241, x242) -> f_1509(x237, x238, x240, 1 + x240, 1 + x240 - 2 * x243, 1 + x242) :|: x240 > 3 && 1 + x240 - 2 * x244 > -1 && x237 > 3 && x238 > 1 && x242 < x238 && x242 > 0 && x240 - 2 * x245 = 0 && x240 < x237 && x239 > 2 && 2 > 1 + x240 - 2 * x246 && x240 < 0 && x240 - 2 * x245 > -2 && x240 - 2 * x245 <= 0 && 1 + x240 - 2 * x246 >= 0 && x240 < -1 && 1 + x240 - 2 * x244 <= 0 && 1 + x240 - 2 * x243 <= 0 && 1 + x240 - 2 * x243 > -2 && x241 = 0 88.40/27.66 f_1509'(x247, x248, x249, x250, x251, x252) -> f_1509(x247, x248, x250, 1 + x250, 1 + x250 - 2 * x253, 1 + x252) :|: x250 > 3 && 1 + x250 - 2 * x254 >= 0 && x247 > 3 && x248 > 1 && x252 < x248 && x252 > 0 && x250 - 2 * x255 = 0 && x250 < x247 && x249 > 2 && 2 > 1 + x250 - 2 * x256 && x250 < 0 && x250 - 2 * x255 > -2 && x250 < -1 && x250 - 2 * x255 <= 0 && 1 + x250 - 2 * x256 > -2 && 1 + x250 - 2 * x256 <= 0 && 2 > 1 + x250 - 2 * x254 && 2 > 1 + x250 - 2 * x253 && 1 + x250 - 2 * x253 >= 0 && x251 = 0 88.40/27.66 f_1509'(x257, x258, x259, x260, x261, x262) -> f_1509(x257, x258, x260, 1 + x260, 1 + x260 - 2 * x263, 1 + x262) :|: x260 > 3 && 1 + x260 - 2 * x264 > -1 && x257 > 3 && x258 > 1 && x262 < x258 && x262 > 0 && x260 - 2 * x265 = 0 && x260 < x257 && x259 > 2 && 2 > 1 + x260 - 2 * x266 && x260 < 0 && x260 - 2 * x265 > -2 && x260 - 2 * x265 <= 0 && 1 + x260 - 2 * x266 >= 0 && x260 < -1 && 1 + x260 - 2 * x264 <= 0 && 2 > 1 + x260 - 2 * x263 && 1 + x260 - 2 * x263 >= 0 && x261 = 0 88.40/27.66 f_1509'(x267, x268, x269, x270, x271, x272) -> f_1509(x267, x268, x270, 1 + x270, 1 + x270 - 2 * x273, 1 + x272) :|: x270 > 3 && 1 + x270 - 2 * x274 >= 0 && x267 > 3 && x268 > 1 && x272 < x268 && x272 > 0 && x270 - 2 * x275 = 0 && x270 < x267 && x269 > 2 && 2 > 1 + x270 - 2 * x276 && x270 < 0 && x270 - 2 * x275 > -2 && x270 - 2 * x275 <= 0 && 1 + x270 - 2 * x276 >= 0 && x270 < -1 && 2 > 1 + x270 - 2 * x274 && 1 + x270 - 2 * x273 <= 0 && 1 + x270 - 2 * x273 > -2 && x271 = 0 88.40/27.66 f_1509'(x277, x278, x279, x280, x281, x282) -> f_1509(x277, x278, x280, 1 + x280, 1 + x280 - 2 * x283, 1 + x282) :|: x280 > 3 && 1 + x280 - 2 * x284 >= 0 && x277 > 3 && x278 > 1 && x282 < x278 && x282 > 0 && x280 - 2 * x285 = 0 && x280 < x277 && x279 > 2 && 2 > 1 + x280 - 2 * x286 && x280 < 0 && x280 - 2 * x285 > -2 && x280 - 2 * x285 <= 0 && 1 + x280 - 2 * x286 >= 0 && 2 > 1 + x280 - 2 * x284 && 2 > 1 + x280 - 2 * x283 && 1 + x280 - 2 * x283 >= 0 && x281 = 0 88.40/27.66 f_1509'(x287, x288, x289, x290, x291, x292) -> f_1509(x287, x288, x290, 1 + x290, 1 + x290 - 2 * x293, 1 + x292) :|: x290 > 3 && 1 + x290 - 2 * x294 >= 0 && x287 > 3 && x288 > 1 && x292 < x288 && x292 > 0 && x290 - 2 * x295 = 0 && x290 < x287 && x289 > 2 && 2 > 1 + x290 - 2 * x296 && x290 - 2 * x295 >= 0 && x290 - 2 * x295 < 2 && 1 + x290 - 2 * x296 >= 0 && 2 > 1 + x290 - 2 * x294 && 2 > 1 + x290 - 2 * x293 && 1 + x290 - 2 * x293 >= 0 && x291 = 0 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (45) IRS2T2 (EQUIVALENT) 88.40/27.66 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 88.40/27.66 88.40/27.66 (f_1509_6,1) 88.40/27.66 (f_1509'_6,2) 88.40/27.66 88.40/27.66 ---------------------------------------- 88.40/27.66 88.40/27.66 (46) 88.40/27.66 Obligation: 88.40/27.66 START: 0; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 0; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 assume(oldX0 > 1 + oldX3 && oldX3 > 2 && oldX0 > 3 && 1 + oldX3 - 2 * oldX6 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && 2 > 1 + (1 + oldX3) - 2 * oldX8); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 x3 := oldX3; 88.40/27.66 x4 := oldX4; 88.40/27.66 x5 := oldX5; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX3 > 2 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 < 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && 1 + oldX3 - 2 * oldX8 >= 0 && 2 > 1 + oldX3 - 2 * oldX8 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 assume(oldX0 > 1 + oldX3 && oldX3 > 2 && oldX0 > 3 && 1 + oldX3 - 2 * oldX6 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && 2 > 1 + (1 + oldX3) - 2 * oldX8); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 x3 := oldX3; 88.40/27.66 x4 := oldX4; 88.40/27.66 x5 := oldX5; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX3 > 2 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && oldX3 < -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 > -2 && 1 + (1 + oldX3) - 2 * oldX9 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 > -1 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 1 + (1 + oldX3) - 2 * oldX7 <= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && oldX3 < -2 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 1 + (1 + oldX3) - 2 * oldX6 <= 0 && 1 + (1 + oldX3) - 2 * oldX6 > -2); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && oldX3 < -1 && 1 + oldX3 - 2 * oldX8 > -2 && 1 + oldX3 - 2 * oldX8 <= 0 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 2 && 1 + (1 + oldX3) - 2 * oldX7 >= 0 && oldX0 > 1 + oldX3 && oldX0 > 3 && 1 + oldX3 - 2 * oldX8 = 0 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX4 > 0 && 2 > 1 + (1 + oldX3) - 2 * oldX9 && 1 + oldX3 - 2 * oldX8 >= 0 && 2 > 1 + oldX3 - 2 * oldX8 && 1 + (1 + oldX3) - 2 * oldX9 >= 0 && 2 > 1 + (1 + oldX3) - 2 * oldX7 && 2 > 1 + (1 + oldX3) - 2 * oldX6 && 1 + (1 + oldX3) - 2 * oldX6 >= 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := 1 + oldX3; 88.40/27.66 x3 := 1 + (1 + oldX3); 88.40/27.66 x4 := 1 + (1 + oldX3) - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 1; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 assume(oldX0 > 3 && oldX3 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX6 = 0 && oldX3 < oldX0 && oldX2 > 2 && 1 + oldX3 - 2 * oldX7 > -1 && 2 > 1 + oldX3 - 2 * oldX8 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX2; 88.40/27.66 x3 := oldX3; 88.40/27.66 x4 := 0; 88.40/27.66 x5 := oldX5; 88.40/27.66 TO: 2; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(1 + oldX3 - 2 * oldX7 > -1 && oldX0 > 3 && oldX3 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 < -1 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 > -2 && 1 + oldX3 - 2 * oldX9 <= 0 && 1 + oldX3 - 2 * oldX7 <= 0 && 1 + oldX3 - 2 * oldX6 <= 0 && 1 + oldX3 - 2 * oldX6 > -2 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX3; 88.40/27.66 x3 := 1 + oldX3; 88.40/27.66 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 > -1 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 < -1 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 > -2 && 1 + oldX3 - 2 * oldX9 <= 0 && 1 + oldX3 - 2 * oldX7 <= 0 && 2 > 1 + oldX3 - 2 * oldX6 && 1 + oldX3 - 2 * oldX6 >= 0 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX3; 88.40/27.66 x3 := 1 + oldX3; 88.40/27.66 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 >= 0 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 < -1 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 > -2 && 1 + oldX3 - 2 * oldX9 <= 0 && 2 > 1 + oldX3 - 2 * oldX7 && 1 + oldX3 - 2 * oldX6 <= 0 && 1 + oldX3 - 2 * oldX6 > -2 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX3; 88.40/27.66 x3 := 1 + oldX3; 88.40/27.66 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 > -1 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 >= 0 && oldX3 < -1 && 1 + oldX3 - 2 * oldX7 <= 0 && 1 + oldX3 - 2 * oldX6 <= 0 && 1 + oldX3 - 2 * oldX6 > -2 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX3; 88.40/27.66 x3 := 1 + oldX3; 88.40/27.66 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.66 x5 := 1 + oldX5; 88.40/27.66 TO: 1; 88.40/27.66 88.40/27.66 FROM: 2; 88.40/27.66 oldX0 := x0; 88.40/27.66 oldX1 := x1; 88.40/27.66 oldX2 := x2; 88.40/27.66 oldX3 := x3; 88.40/27.66 oldX4 := x4; 88.40/27.66 oldX5 := x5; 88.40/27.66 oldX6 := nondet(); 88.40/27.66 oldX7 := nondet(); 88.40/27.66 oldX8 := nondet(); 88.40/27.66 oldX9 := nondet(); 88.40/27.66 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 >= 0 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 < -1 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 > -2 && 1 + oldX3 - 2 * oldX9 <= 0 && 2 > 1 + oldX3 - 2 * oldX7 && 2 > 1 + oldX3 - 2 * oldX6 && 1 + oldX3 - 2 * oldX6 >= 0 && oldX4 = 0); 88.40/27.66 x0 := oldX0; 88.40/27.66 x1 := oldX1; 88.40/27.66 x2 := oldX3; 88.40/27.66 x3 := 1 + oldX3; 88.40/27.66 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.67 x5 := 1 + oldX5; 88.40/27.67 TO: 1; 88.40/27.67 88.40/27.67 FROM: 2; 88.40/27.67 oldX0 := x0; 88.40/27.67 oldX1 := x1; 88.40/27.67 oldX2 := x2; 88.40/27.67 oldX3 := x3; 88.40/27.67 oldX4 := x4; 88.40/27.67 oldX5 := x5; 88.40/27.67 oldX6 := nondet(); 88.40/27.67 oldX7 := nondet(); 88.40/27.67 oldX8 := nondet(); 88.40/27.67 oldX9 := nondet(); 88.40/27.67 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 > -1 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 >= 0 && oldX3 < -1 && 1 + oldX3 - 2 * oldX7 <= 0 && 2 > 1 + oldX3 - 2 * oldX6 && 1 + oldX3 - 2 * oldX6 >= 0 && oldX4 = 0); 88.40/27.67 x0 := oldX0; 88.40/27.67 x1 := oldX1; 88.40/27.67 x2 := oldX3; 88.40/27.67 x3 := 1 + oldX3; 88.40/27.67 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.67 x5 := 1 + oldX5; 88.40/27.67 TO: 1; 88.40/27.67 88.40/27.67 FROM: 2; 88.40/27.67 oldX0 := x0; 88.40/27.67 oldX1 := x1; 88.40/27.67 oldX2 := x2; 88.40/27.67 oldX3 := x3; 88.40/27.67 oldX4 := x4; 88.40/27.67 oldX5 := x5; 88.40/27.67 oldX6 := nondet(); 88.40/27.67 oldX7 := nondet(); 88.40/27.67 oldX8 := nondet(); 88.40/27.67 oldX9 := nondet(); 88.40/27.67 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 >= 0 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 >= 0 && oldX3 < -1 && 2 > 1 + oldX3 - 2 * oldX7 && 1 + oldX3 - 2 * oldX6 <= 0 && 1 + oldX3 - 2 * oldX6 > -2 && oldX4 = 0); 88.40/27.67 x0 := oldX0; 88.40/27.67 x1 := oldX1; 88.40/27.67 x2 := oldX3; 88.40/27.67 x3 := 1 + oldX3; 88.40/27.67 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.67 x5 := 1 + oldX5; 88.40/27.67 TO: 1; 88.40/27.67 88.40/27.67 FROM: 2; 88.40/27.67 oldX0 := x0; 88.40/27.67 oldX1 := x1; 88.40/27.67 oldX2 := x2; 88.40/27.67 oldX3 := x3; 88.40/27.67 oldX4 := x4; 88.40/27.67 oldX5 := x5; 88.40/27.67 oldX6 := nondet(); 88.40/27.67 oldX7 := nondet(); 88.40/27.67 oldX8 := nondet(); 88.40/27.67 oldX9 := nondet(); 88.40/27.67 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 >= 0 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 < 0 && oldX3 - 2 * oldX8 > -2 && oldX3 - 2 * oldX8 <= 0 && 1 + oldX3 - 2 * oldX9 >= 0 && 2 > 1 + oldX3 - 2 * oldX7 && 2 > 1 + oldX3 - 2 * oldX6 && 1 + oldX3 - 2 * oldX6 >= 0 && oldX4 = 0); 88.40/27.67 x0 := oldX0; 88.40/27.67 x1 := oldX1; 88.40/27.67 x2 := oldX3; 88.40/27.67 x3 := 1 + oldX3; 88.40/27.67 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.67 x5 := 1 + oldX5; 88.40/27.67 TO: 1; 88.40/27.67 88.40/27.67 FROM: 2; 88.40/27.67 oldX0 := x0; 88.40/27.67 oldX1 := x1; 88.40/27.67 oldX2 := x2; 88.40/27.67 oldX3 := x3; 88.40/27.67 oldX4 := x4; 88.40/27.67 oldX5 := x5; 88.40/27.67 oldX6 := nondet(); 88.40/27.67 oldX7 := nondet(); 88.40/27.67 oldX8 := nondet(); 88.40/27.67 oldX9 := nondet(); 88.40/27.67 assume(oldX3 > 3 && 1 + oldX3 - 2 * oldX7 >= 0 && oldX0 > 3 && oldX1 > 1 && oldX5 < oldX1 && oldX5 > 0 && oldX3 - 2 * oldX8 = 0 && oldX3 < oldX0 && oldX2 > 2 && 2 > 1 + oldX3 - 2 * oldX9 && oldX3 - 2 * oldX8 >= 0 && oldX3 - 2 * oldX8 < 2 && 1 + oldX3 - 2 * oldX9 >= 0 && 2 > 1 + oldX3 - 2 * oldX7 && 2 > 1 + oldX3 - 2 * oldX6 && 1 + oldX3 - 2 * oldX6 >= 0 && oldX4 = 0); 88.40/27.67 x0 := oldX0; 88.40/27.67 x1 := oldX1; 88.40/27.67 x2 := oldX3; 88.40/27.67 x3 := 1 + oldX3; 88.40/27.67 x4 := 1 + oldX3 - 2 * oldX6; 88.40/27.67 x5 := 1 + oldX5; 88.40/27.67 TO: 1; 88.40/27.67 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (47) T2 (EQUIVALENT) 88.40/27.67 Initially, performed program simplifications using lexicographic rank functions: 88.40/27.67 * Removed transitions 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 using the following rank functions: 88.40/27.67 - Rank function 1: 88.40/27.67 RF for loc. 6: 2+2*x0+x1-2*x3-x5 88.40/27.67 RF for loc. 7: 1+2*x0+x1-2*x3-x5 88.40/27.67 RF for loc. 8: 2*x0+x1-2*x3-x5 88.40/27.67 Bound for (chained) transitions 5: 7 88.40/27.67 Bound for (chained) transitions 6: 7 88.40/27.67 Bound for (chained) transitions 7: 5 88.40/27.67 Bound for (chained) transitions 11: 15 88.40/27.67 Bound for (chained) transitions 12: 15 88.40/27.67 Bound for (chained) transitions 13: 13 88.40/27.67 Bound for (chained) transitions 14: 15 88.40/27.67 Bound for (chained) transitions 15: 15 88.40/27.67 Bound for (chained) transitions 16: 13 88.40/27.67 Bound for (chained) transitions 17: 13 88.40/27.67 Bound for (chained) transitions 18: 13 88.40/27.67 Bound for (chained) transitions 19: 5 88.40/27.67 Bound for (chained) transitions 20: 15 88.40/27.67 Bound for (chained) transitions 21: 15 88.40/27.67 Bound for (chained) transitions 22: 15 88.40/27.67 Bound for (chained) transitions 23: 13 88.40/27.67 Bound for (chained) transitions 24: 13 88.40/27.67 Bound for (chained) transitions 25: 13 88.40/27.67 Bound for (chained) transitions 26: 15 88.40/27.67 Bound for (chained) transitions 27: 13 88.40/27.67 Bound for (chained) transitions 28: 5 88.40/27.67 Bound for (chained) transitions 29: 11 88.40/27.67 Bound for (chained) transitions 30: 11 88.40/27.67 Bound for (chained) transitions 31: 13 88.40/27.67 Bound for (chained) transitions 32: 11 88.40/27.67 Bound for (chained) transitions 33: 13 88.40/27.67 Bound for (chained) transitions 34: 13 88.40/27.67 Bound for (chained) transitions 35: 13 88.40/27.67 Bound for (chained) transitions 36: 11 88.40/27.67 Bound for (chained) transitions 37: 3 88.40/27.67 - Rank function 2: 88.40/27.67 RF for loc. 7: 1 88.40/27.67 RF for loc. 8: 0 88.40/27.67 Bound for (chained) transitions 8: 1 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (48) 88.40/27.67 YES 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (49) 88.40/27.67 Obligation: 88.40/27.67 SCC 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (50) SCC2IRS (SOUND) 88.40/27.67 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 88.40/27.67 Generated rules. Obtained 21 rulesP rules: 88.40/27.67 f_804(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_810(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: 0 = 0 88.40/27.67 f_810(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_816(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: 0 = 0 88.40/27.67 f_816(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_822(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: 0 = 0 88.40/27.67 f_822(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_828(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: TRUE 88.40/27.67 f_828(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_835(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: TRUE 88.40/27.67 f_835(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_842(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: TRUE 88.40/27.67 f_842(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_849(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: 0 = 0 88.40/27.67 f_849(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_858(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: 0 = 0 88.40/27.67 f_858(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_867(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: v1596 < v1588 && 2 <= v1588 88.40/27.67 f_867(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_877(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: 0 = 0 88.40/27.67 f_877(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_887(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: TRUE 88.40/27.67 f_887(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1594, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_896(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: 0 = 0 88.40/27.67 f_896(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_905(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: v1996 = 1 + v1596 && 2 <= v1996 88.40/27.67 f_905(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_916(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: TRUE 88.40/27.67 f_916(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_925(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: 0 = 0 88.40/27.67 f_925(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_935(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: 0 = 0 88.40/27.67 f_935(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_941(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: 0 = 0 88.40/27.67 f_941(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_943(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: TRUE 88.40/27.67 f_943(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_945(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) :|: TRUE 88.40/27.67 f_945(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 2, 4) -> f_799(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1596, 1, v1996, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: TRUE 88.40/27.67 f_799(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) -> f_804(v1587, v1588, v1589, v1590, v1591, v1592, 0, v1594, 1, v1596, v1597, v1598, v1599, v1600, v1601, v1602, 3, 4) :|: TRUE 88.40/27.67 Combined rules. Obtained 1 rulesP rules: 88.40/27.67 f_804(v1587:0, v1588:0, v1589:0, v1590:0, v1591:0, v1592:0, 0, v1594:0, 1, v1596:0, v1597:0, v1598:0, v1599:0, v1600:0, v1601:0, v1602:0, 3, 4) -> f_804(v1587:0, v1588:0, v1589:0, v1590:0, v1591:0, v1592:0, 0, v1596:0, 1, 1 + v1596:0, v1597:0, v1598:0, v1599:0, v1600:0, v1601:0, v1602:0, 3, 4) :|: v1588:0 > 1 && v1596:0 > 0 && v1596:0 < v1588:0 88.40/27.67 Filtered unneeded arguments: 88.40/27.67 f_804(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_804(x2, x10) 88.40/27.67 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 88.40/27.67 f_804(v1588:0, v1596:0) -> f_804(v1588:0, 1 + v1596:0) :|: v1596:0 > 0 && v1596:0 < v1588:0 && v1588:0 > 1 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (51) 88.40/27.67 Obligation: 88.40/27.67 Rules: 88.40/27.67 f_804(v1588:0, v1596:0) -> f_804(v1588:0, 1 + v1596:0) :|: v1596:0 > 0 && v1596:0 < v1588:0 && v1588:0 > 1 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (52) IntTRSCompressionProof (EQUIVALENT) 88.40/27.67 Compressed rules. 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (53) 88.40/27.67 Obligation: 88.40/27.67 Rules: 88.40/27.67 f_804(v1588:0:0, v1596:0:0) -> f_804(v1588:0:0, 1 + v1596:0:0) :|: v1596:0:0 > 0 && v1596:0:0 < v1588:0:0 && v1588:0:0 > 1 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (54) PolynomialOrderProcessor (EQUIVALENT) 88.40/27.67 Found the following polynomial interpretation: 88.40/27.67 [f_804(x, x1)] = x - x1 88.40/27.67 88.40/27.67 The following rules are decreasing: 88.40/27.67 f_804(v1588:0:0, v1596:0:0) -> f_804(v1588:0:0, 1 + v1596:0:0) :|: v1596:0:0 > 0 && v1596:0:0 < v1588:0:0 && v1588:0:0 > 1 88.40/27.67 The following rules are bounded: 88.40/27.67 f_804(v1588:0:0, v1596:0:0) -> f_804(v1588:0:0, 1 + v1596:0:0) :|: v1596:0:0 > 0 && v1596:0:0 < v1588:0:0 && v1588:0:0 > 1 88.40/27.67 88.40/27.67 ---------------------------------------- 88.40/27.67 88.40/27.67 (55) 88.40/27.67 YES 88.59/27.75 EOF