115.80/32.19 YES 127.22/35.14 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 127.22/35.14 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 127.22/35.14 127.22/35.14 127.22/35.14 Termination of the given C Problem could be proven: 127.22/35.14 127.22/35.14 (0) C Problem 127.22/35.14 (1) CToLLVMProof [EQUIVALENT, 175 ms] 127.22/35.14 (2) LLVM problem 127.22/35.14 (3) LLVMToTerminationGraphProof [EQUIVALENT, 8164 ms] 127.22/35.14 (4) LLVM Symbolic Execution Graph 127.22/35.14 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 127.22/35.14 (6) AND 127.22/35.14 (7) LLVM Symbolic Execution SCC 127.22/35.14 (8) SCC2IRS [SOUND, 158 ms] 127.22/35.14 (9) IntTRS 127.22/35.14 (10) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (11) T2IntSys 127.22/35.14 (12) T2 [EQUIVALENT, 1142 ms] 127.22/35.14 (13) YES 127.22/35.14 (14) LLVM Symbolic Execution SCC 127.22/35.14 (15) SCC2IRS [SOUND, 149 ms] 127.22/35.14 (16) IntTRS 127.22/35.14 (17) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (18) T2IntSys 127.22/35.14 (19) T2 [EQUIVALENT, 1012 ms] 127.22/35.14 (20) YES 127.22/35.14 (21) LLVM Symbolic Execution SCC 127.22/35.14 (22) SCC2IRS [SOUND, 82 ms] 127.22/35.14 (23) IntTRS 127.22/35.14 (24) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (25) T2IntSys 127.22/35.14 (26) T2 [EQUIVALENT, 510 ms] 127.22/35.14 (27) YES 127.22/35.14 (28) LLVM Symbolic Execution SCC 127.22/35.14 (29) SCC2IRS [SOUND, 77 ms] 127.22/35.14 (30) IntTRS 127.22/35.14 (31) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (32) T2IntSys 127.22/35.14 (33) T2 [EQUIVALENT, 843 ms] 127.22/35.14 (34) YES 127.22/35.14 (35) LLVM Symbolic Execution SCC 127.22/35.14 (36) SCC2IRS [SOUND, 79 ms] 127.22/35.14 (37) IntTRS 127.22/35.14 (38) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (39) T2IntSys 127.22/35.14 (40) T2 [EQUIVALENT, 893 ms] 127.22/35.14 (41) YES 127.22/35.14 (42) LLVM Symbolic Execution SCC 127.22/35.14 (43) SCC2IRS [SOUND, 87 ms] 127.22/35.14 (44) IntTRS 127.22/35.14 (45) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (46) T2IntSys 127.22/35.14 (47) T2 [EQUIVALENT, 943 ms] 127.22/35.14 (48) YES 127.22/35.14 (49) LLVM Symbolic Execution SCC 127.22/35.14 (50) SCC2IRS [SOUND, 63 ms] 127.22/35.14 (51) IntTRS 127.22/35.14 (52) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (53) T2IntSys 127.22/35.14 (54) T2 [EQUIVALENT, 793 ms] 127.22/35.14 (55) YES 127.22/35.14 (56) LLVM Symbolic Execution SCC 127.22/35.14 (57) SCC2IRS [SOUND, 95 ms] 127.22/35.14 (58) IntTRS 127.22/35.14 (59) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (60) T2IntSys 127.22/35.14 (61) T2 [EQUIVALENT, 942 ms] 127.22/35.14 (62) YES 127.22/35.14 (63) LLVM Symbolic Execution SCC 127.22/35.14 (64) SCC2IRS [SOUND, 105 ms] 127.22/35.14 (65) IntTRS 127.22/35.14 (66) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (67) T2IntSys 127.22/35.14 (68) T2 [EQUIVALENT, 1093 ms] 127.22/35.14 (69) YES 127.22/35.14 (70) LLVM Symbolic Execution SCC 127.22/35.14 (71) SCC2IRS [SOUND, 61 ms] 127.22/35.14 (72) IntTRS 127.22/35.14 (73) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (74) T2IntSys 127.22/35.14 (75) T2 [EQUIVALENT, 762 ms] 127.22/35.14 (76) YES 127.22/35.14 (77) LLVM Symbolic Execution SCC 127.22/35.14 (78) SCC2IRS [SOUND, 50 ms] 127.22/35.14 (79) IntTRS 127.22/35.14 (80) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (81) T2IntSys 127.22/35.14 (82) T2 [EQUIVALENT, 892 ms] 127.22/35.14 (83) YES 127.22/35.14 (84) LLVM Symbolic Execution SCC 127.22/35.14 (85) SCC2IRS [SOUND, 56 ms] 127.22/35.14 (86) IntTRS 127.22/35.14 (87) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (88) T2IntSys 127.22/35.14 (89) T2 [EQUIVALENT, 862 ms] 127.22/35.14 (90) YES 127.22/35.14 (91) LLVM Symbolic Execution SCC 127.22/35.14 (92) SCC2IRS [SOUND, 93 ms] 127.22/35.14 (93) IntTRS 127.22/35.14 (94) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (95) T2IntSys 127.22/35.14 (96) T2 [EQUIVALENT, 902 ms] 127.22/35.14 (97) YES 127.22/35.14 (98) LLVM Symbolic Execution SCC 127.22/35.14 (99) SCC2IRS [SOUND, 63 ms] 127.22/35.14 (100) IntTRS 127.22/35.14 (101) IRS2T2 [EQUIVALENT, 0 ms] 127.22/35.14 (102) T2IntSys 127.22/35.14 (103) T2 [EQUIVALENT, 852 ms] 127.22/35.14 (104) YES 127.22/35.14 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (0) 127.22/35.14 Obligation: 127.22/35.14 c file /export/starexec/sandbox/benchmark/theBenchmark.c 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (1) CToLLVMProof (EQUIVALENT) 127.22/35.14 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (2) 127.22/35.14 Obligation: 127.22/35.14 LLVM Problem 127.22/35.14 127.22/35.14 Aliases: 127.22/35.14 127.22/35.14 Data layout: 127.22/35.14 127.22/35.14 "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" 127.22/35.14 127.22/35.14 Machine: 127.22/35.14 127.22/35.14 "x86_64-pc-linux-gnu" 127.22/35.14 127.22/35.14 Type definitions: 127.22/35.14 127.22/35.14 Global variables: 127.22/35.14 127.22/35.14 Function declarations and definitions: 127.22/35.14 127.22/35.14 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 127.22/35.14 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 127.22/35.14 0: 127.22/35.14 %1 = alloca i32, align 4 127.22/35.14 %x = alloca *i32, align 8 127.22/35.14 %y = alloca *i32, align 8 127.22/35.14 store 0, %1 127.22/35.14 %2 = alloca i8, numElementsLit: 4 127.22/35.14 %3 = bitcast *i8 %2 to *i32 127.22/35.14 store %3, %x 127.22/35.14 %4 = alloca i8, numElementsLit: 4 127.22/35.14 %5 = bitcast *i8 %4 to *i32 127.22/35.14 store %5, %y 127.22/35.14 br %6 127.22/35.14 6: 127.22/35.14 %7 = load %x 127.22/35.14 %8 = load %7 127.22/35.14 %9 = icmp ne %8 0 127.22/35.14 br %9, %10, %14 127.22/35.14 10: 127.22/35.14 %11 = load %y 127.22/35.14 %12 = load %11 127.22/35.14 %13 = icmp sgt %12 0 127.22/35.14 br %14 127.22/35.14 14: 127.22/35.14 %15 = phi [0, %6], [%13, %10] 127.22/35.14 br %15, %16, %53 127.22/35.14 16: 127.22/35.14 %17 = load %x 127.22/35.14 %18 = load %17 127.22/35.14 %19 = icmp sgt %18 0 127.22/35.14 br %19, %20, %36 127.22/35.14 20: 127.22/35.14 %21 = call i32 @__VERIFIER_nondet_int() 127.22/35.14 %22 = icmp ne %21 0 127.22/35.14 br %22, %23, %30 127.22/35.14 23: 127.22/35.14 %24 = load %x 127.22/35.14 %25 = load %24 127.22/35.14 %26 = sub %25 1 127.22/35.14 %27 = load %x 127.22/35.14 store %26, %27 127.22/35.14 %28 = call i32 @__VERIFIER_nondet_int() 127.22/35.14 %29 = load %y 127.22/35.14 store %28, %29 127.22/35.14 br %35 127.22/35.14 30: 127.22/35.14 %31 = load %y 127.22/35.14 %32 = load %31 127.22/35.14 %33 = sub %32 1 127.22/35.14 %34 = load %y 127.22/35.14 store %33, %34 127.22/35.14 br %35 127.22/35.14 35: 127.22/35.14 br %52 127.22/35.14 36: 127.22/35.14 %37 = call i32 @__VERIFIER_nondet_int() 127.22/35.14 %38 = icmp ne %37 0 127.22/35.14 br %38, %39, %44 127.22/35.14 39: 127.22/35.14 %40 = load %x 127.22/35.14 %41 = load %40 127.22/35.14 %42 = add %41 1 127.22/35.14 %43 = load %x 127.22/35.14 store %42, %43 127.22/35.14 br %51 127.22/35.14 44: 127.22/35.14 %45 = load %y 127.22/35.14 %46 = load %45 127.22/35.14 %47 = sub %46 1 127.22/35.14 %48 = load %y 127.22/35.14 store %47, %48 127.22/35.14 %49 = call i32 @__VERIFIER_nondet_int() 127.22/35.14 %50 = load %x 127.22/35.14 store %49, %50 127.22/35.14 br %51 127.22/35.14 51: 127.22/35.14 br %52 127.22/35.14 52: 127.22/35.14 br %6 127.22/35.14 53: 127.22/35.14 %54 = load %1 127.22/35.14 ret %54 127.22/35.14 127.22/35.14 127.22/35.14 Analyze Termination of all function calls matching the pattern: 127.22/35.14 main() 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (3) LLVMToTerminationGraphProof (EQUIVALENT) 127.22/35.14 Constructed symbolic execution graph for LLVM program and proved memory safety. 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (4) 127.22/35.14 Obligation: 127.22/35.14 SE Graph 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (5) SymbolicExecutionGraphToSCCProof (SOUND) 127.22/35.14 Splitted symbolic execution graph to 14 SCCs. 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (6) 127.22/35.14 Complex Obligation (AND) 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (7) 127.22/35.14 Obligation: 127.22/35.14 SCC 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (8) SCC2IRS (SOUND) 127.22/35.14 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 127.22/35.14 Generated rules. Obtained 67 rulesP rules: 127.22/35.14 f_1904(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54697, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1909(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1909(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1914(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 1 + v55133 = v54685 && 0 <= v55133 127.22/35.14 f_1914(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1919(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1919(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1922(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1922(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1925(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1925(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1929(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1929(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1931(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1931(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1933(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1933(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1935(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1935(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1937(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1937(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1939(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1939(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v55133, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1941(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1941(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1943(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: v55133 != 0 && 2 <= v54685 && 3 <= v54693 127.22/35.14 f_1943(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1946(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1946(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1950(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1950(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1954(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1954(v54680, v54681, v54682, v54683, v54684, v55133, 1, v54687, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1958(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1958(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1962(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 < v56109 127.22/35.14 f_1962(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1966(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1966(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1969(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1969(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1972(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1972(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1975(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1975(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, v54685, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1978(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1978(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1981(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1981(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1984(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1984(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1987(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1987(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1988(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: v61471 != 0 127.22/35.14 f_1987(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1989(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: v61471 = 0 127.22/35.14 f_1988(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1990(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1990(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1992(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1992(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1899(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v61471, v54695, v54696, v54685, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1899(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54697, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1904(v54680, v54681, v54682, v54683, v54684, v54685, 1, v54687, 0, v54689, v54690, v54691, v54692, v54693, v54694, v54695, v54696, v54697, v54698, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1989(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1991(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1991(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1993(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1993(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) -> f_1901(v54680, v54681, v54682, v54683, v54684, v55133, 1, v56109, 0, v54689, v54690, v54691, v54692, v54693, v54695, v54696, v54685, v56109, v54699, v54700, v54701, v54702, v54703, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1901(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54900, v54901, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1905(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54900, v54901, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1905(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54900, v54901, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1910(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54901, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1910(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54901, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1915(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: 1 + v55134 = v54893 && 0 <= v55134 127.22/35.14 f_1915(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1920(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1920(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1923(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1923(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1926(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1926(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v55134, v54902, v54903, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) -> f_1927(v54886, v54887, v54888, v54889, v54890, v54891, 1, v54893, 0, v54895, v54896, v54897, v54898, v54899, v54902, v54903, v55134, v54904, v54905, v54906, v54907, v54908, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1927(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1930(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1930(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1932(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1932(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1934(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1934(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1936(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1936(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1938(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1938(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1940(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1940(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1942(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1942(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56301, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56310, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1945(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1945(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1948(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 < v56310 && 2 <= v56301 && 2 <= v56309 127.22/35.14 f_1948(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1952(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1952(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1956(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1956(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1960(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1960(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1964(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1964(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1968(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1968(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1971(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1971(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1974(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1974(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1977(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1977(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1979(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: v60888 != 0 127.22/35.14 f_1977(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1980(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: v60888 = 0 127.22/35.14 f_1979(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1982(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1982(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1985(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1985(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1899(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v60888, v56301, v56310, v56308, v56309, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1980(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1983(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1983(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1986(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1986(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56308, v56309, v56301, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) -> f_1901(v56294, v56295, v56296, v56297, v56298, v56299, 1, v56310, 0, v56303, v56304, v56305, v56306, v56307, v56301, v56310, v56308, v56309, v56311, v56312, v56313, v56314, v56315, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 Combined rules. Obtained 6 rulesP rules: 127.22/35.14 f_1977(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, v56310:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, v60888:0, v56308:0, v56309:0, v56301:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) -> f_1904(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, v56310:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, v60888:0, v56301:0, v56310:0, v56308:0, v56309:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) :|: v60888:0 < 0 127.22/35.14 f_1977(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, v56310:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, v60888:0, v56308:0, v56309:0, v56301:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) -> f_1904(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, v56310:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, v60888:0, v56301:0, v56310:0, v56308:0, v56309:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) :|: v60888:0 > 0 127.22/35.14 f_1904(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, 1 + v55133:0, 1, v54687:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v54694:0, v54695:0, v54696:0, v54697:0, v54698:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) -> f_1904(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, v55133:0, 1, v56109:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v61471:0, v54695:0, v54696:0, 1 + v55133:0, v56109:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) :|: v55133:0 > 0 && v54693:0 > 2 && v61471:0 < 0 && v56109:0 > 0 127.22/35.14 f_1904(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, 1 + v55133:0, 1, v54687:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v54694:0, v54695:0, v54696:0, v54697:0, v54698:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) -> f_1904(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, v55133:0, 1, v56109:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v61471:0, v54695:0, v54696:0, 1 + v55133:0, v56109:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) :|: v55133:0 > 0 && v54693:0 > 2 && v61471:0 > 0 && v56109:0 > 0 127.22/35.14 f_1904(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, 1 + v55133:0, 1, v54687:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v54694:0, v54695:0, v54696:0, v54697:0, v54698:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) -> f_1977(v54680:0, v54681:0, v54682:0, v54683:0, v54684:0, v55133:0, 1, v55134:0, 0, v54689:0, v54690:0, v54691:0, v54692:0, v54693:0, v60888:0, 1 + v55133:0, 1 + v55134:0, 1 + v55134:0, v54699:0, v54700:0, v54701:0, v54702:0, v54703:0, 3, 7, 2, 4, 8) :|: v55133:0 > 0 && v55134:0 > 0 && v54693:0 > 2 127.22/35.14 f_1977(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, 1 + v55134:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, 0, v56308:0, v56309:0, v56301:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) -> f_1977(v56294:0, v56295:0, v56296:0, v56297:0, v56298:0, v56299:0, 1, v55134:0, 0, v56303:0, v56304:0, v56305:0, v56306:0, v56307:0, v60888:1, v56308:0, v56309:0, 1 + v55134:0, v56311:0, v56312:0, v56313:0, v56314:0, v56315:0, 3, 7, 2, 4, 8) :|: v55134:0 > 0 && v56309:0 > 1 127.22/35.14 Filtered unneeded arguments: 127.22/35.14 f_1977(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_1977(x6, x8, x14, x15, x17) 127.22/35.14 f_1904(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29) -> f_1904(x6, x14) 127.22/35.14 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 127.22/35.14 f_1977(v56299:0, v56310:0, v56307:0, v60888:0, v56309:0) -> f_1904(v56299:0, v56307:0) :|: v60888:0 < 0 127.22/35.14 f_1977(v56299:0, v56310:0, v56307:0, v60888:0, v56309:0) -> f_1904(v56299:0, v56307:0) :|: v60888:0 > 0 127.22/35.14 f_1904(sum~cons_1~v55133:0, v54693:0) -> f_1904(v55133:0, v54693:0) :|: v55133:0 > 0 && v54693:0 > 2 && sum~cons_1~v55133:0 = 1 + v55133:0 127.22/35.14 f_1904(sum~cons_1~v55133:0, v54693:0) -> f_1977(v55133:0, v55134:0, v54693:0, v60888:0, 1 + v55134:0) :|: v55134:0 > 0 && v54693:0 > 2 && v55133:0 > 0 && sum~cons_1~v55133:0 = 1 + v55133:0 127.22/35.14 f_1977(v56299:0, sum~cons_1~v55134:0, v56307:0, cons_0, v56309:0) -> f_1977(v56299:0, v55134:0, v56307:0, v60888:1, v56309:0) :|: v55134:0 > 0 && v56309:0 > 1 && sum~cons_1~v55134:0 = 1 + v55134:0 && cons_0 = 0 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (9) 127.22/35.14 Obligation: 127.22/35.14 Rules: 127.22/35.14 f_1977(v56299:0, v56310:0, v56307:0, v60888:0, v56309:0) -> f_1904(v56299:0, v56307:0) :|: v60888:0 < 0 127.22/35.14 f_1977(x, x1, x2, x3, x4) -> f_1904(x, x2) :|: x3 > 0 127.22/35.14 f_1904(sum~cons_1~v55133:0, v54693:0) -> f_1904(v55133:0, v54693:0) :|: v55133:0 > 0 && v54693:0 > 2 && sum~cons_1~v55133:0 = 1 + v55133:0 127.22/35.14 f_1904(x5, x6) -> f_1977(x7, x8, x6, x9, 1 + x8) :|: x8 > 0 && x6 > 2 && x7 > 0 && x5 = 1 + x7 127.22/35.14 f_1977(x10, x11, x12, x13, x14) -> f_1977(x10, x15, x12, x16, x14) :|: x15 > 0 && x14 > 1 && x11 = 1 + x15 && x13 = 0 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (10) IRS2T2 (EQUIVALENT) 127.22/35.14 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 127.22/35.14 127.22/35.14 (f_1977_5,1) 127.22/35.14 (f_1904_5,2) 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (11) 127.22/35.14 Obligation: 127.22/35.14 START: 0; 127.22/35.14 127.22/35.14 FROM: 0; 127.22/35.14 TO: 1; 127.22/35.14 127.22/35.14 FROM: 0; 127.22/35.14 TO: 2; 127.22/35.14 127.22/35.14 FROM: 1; 127.22/35.14 oldX0 := x0; 127.22/35.14 oldX1 := x1; 127.22/35.14 oldX2 := x2; 127.22/35.14 oldX3 := x3; 127.22/35.14 oldX4 := x4; 127.22/35.14 oldX5 := nondet(); 127.22/35.14 oldX6 := nondet(); 127.22/35.14 oldX7 := nondet(); 127.22/35.14 assume(oldX3 < 0); 127.22/35.14 x0 := oldX0; 127.22/35.14 x1 := oldX2; 127.22/35.14 x2 := oldX5; 127.22/35.14 x3 := oldX6; 127.22/35.14 x4 := oldX7; 127.22/35.14 TO: 2; 127.22/35.14 127.22/35.14 FROM: 1; 127.22/35.14 oldX0 := x0; 127.22/35.14 oldX1 := x1; 127.22/35.14 oldX2 := x2; 127.22/35.14 oldX3 := x3; 127.22/35.14 oldX4 := x4; 127.22/35.14 oldX5 := nondet(); 127.22/35.14 oldX6 := nondet(); 127.22/35.14 oldX7 := nondet(); 127.22/35.14 assume(oldX3 > 0); 127.22/35.14 x0 := oldX0; 127.22/35.14 x1 := oldX2; 127.22/35.14 x2 := oldX5; 127.22/35.14 x3 := oldX6; 127.22/35.14 x4 := oldX7; 127.22/35.14 TO: 2; 127.22/35.14 127.22/35.14 FROM: 2; 127.22/35.14 oldX0 := x0; 127.22/35.14 oldX1 := x1; 127.22/35.14 oldX2 := x2; 127.22/35.14 oldX3 := x3; 127.22/35.14 oldX4 := x4; 127.22/35.14 oldX5 := oldX0 - 1; 127.22/35.14 oldX6 := nondet(); 127.22/35.14 oldX7 := nondet(); 127.22/35.14 oldX8 := nondet(); 127.22/35.14 assume(oldX5 > 0 && oldX1 > 2 && oldX0 = 1 + oldX5); 127.22/35.14 x0 := oldX0 - 1; 127.22/35.14 x1 := oldX1; 127.22/35.14 x2 := oldX6; 127.22/35.14 x3 := oldX7; 127.22/35.14 x4 := oldX8; 127.22/35.14 TO: 2; 127.22/35.14 127.22/35.14 FROM: 2; 127.22/35.14 oldX0 := x0; 127.22/35.14 oldX1 := x1; 127.22/35.14 oldX2 := x2; 127.22/35.14 oldX3 := x3; 127.22/35.14 oldX4 := x4; 127.22/35.14 oldX5 := oldX0 - 1; 127.22/35.14 oldX6 := nondet(); 127.22/35.14 oldX7 := nondet(); 127.22/35.14 assume(oldX6 > 0 && oldX1 > 2 && oldX5 > 0 && oldX0 = 1 + oldX5); 127.22/35.14 x0 := oldX0 - 1; 127.22/35.14 x1 := oldX6; 127.22/35.14 x2 := oldX1; 127.22/35.14 x3 := oldX7; 127.22/35.14 x4 := 1 + oldX6; 127.22/35.14 TO: 1; 127.22/35.14 127.22/35.14 FROM: 1; 127.22/35.14 oldX0 := x0; 127.22/35.14 oldX1 := x1; 127.22/35.14 oldX2 := x2; 127.22/35.14 oldX3 := x3; 127.22/35.14 oldX4 := x4; 127.22/35.14 oldX5 := oldX1 - 1; 127.22/35.14 oldX6 := nondet(); 127.22/35.14 assume(oldX5 > 0 && oldX4 > 1 && oldX1 = 1 + oldX5 && oldX3 = 0); 127.22/35.14 x0 := oldX0; 127.22/35.14 x1 := oldX1 - 1; 127.22/35.14 x2 := oldX2; 127.22/35.14 x3 := oldX6; 127.22/35.14 x4 := oldX4; 127.22/35.14 TO: 1; 127.22/35.14 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (12) T2 (EQUIVALENT) 127.22/35.14 Initially, performed program simplifications using lexicographic rank functions: 127.22/35.14 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 127.22/35.14 - Rank function 1: 127.22/35.14 RF for loc. 6: 2+6*x0 127.22/35.14 RF for loc. 7: 1+6*x0 127.22/35.14 RF for loc. 8: 2+6*x0 127.22/35.14 RF for loc. 12: 6*x0 127.22/35.14 Bound for (chained) transitions 20: 12 127.22/35.14 Bound for (chained) transitions 21: 12 127.22/35.14 - Rank function 2: 127.22/35.14 RF for loc. 6: 0 127.22/35.14 RF for loc. 7: -1 127.22/35.14 RF for loc. 8: 0 127.22/35.14 RF for loc. 12: -2 127.22/35.14 Bound for (chained) transitions 5: 0 127.22/35.14 Bound for (chained) transitions 6: 0 127.22/35.14 Bound for (chained) transitions 17: -1 127.22/35.14 - Rank function 3: 127.22/35.14 RF for loc. 6: 1+2*x1 127.22/35.14 RF for loc. 8: 2*x1 127.22/35.14 Bound for (chained) transitions 7: 4 127.22/35.14 - Rank function 4: 127.22/35.14 RF for loc. 6: 1 127.22/35.14 RF for loc. 8: 0 127.22/35.14 Bound for (chained) transitions 2: 1 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (13) 127.22/35.14 YES 127.22/35.14 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (14) 127.22/35.14 Obligation: 127.22/35.14 SCC 127.22/35.14 ---------------------------------------- 127.22/35.14 127.22/35.14 (15) SCC2IRS (SOUND) 127.22/35.14 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 127.22/35.14 Generated rules. Obtained 67 rulesP rules: 127.22/35.14 f_1702(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42307, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1708(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1708(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1715(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 1 + v42846 = v42297 && 0 <= v42846 127.22/35.14 f_1715(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1722(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1722(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1729(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1729(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1737(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1737(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1746(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1746(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1754(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1754(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1762(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1762(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1770(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1770(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1776(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1776(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1782(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1782(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42846, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1787(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1787(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1792(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: v42846 != 0 && 2 <= v42297 && 3 <= v42303 127.22/35.14 f_1792(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1799(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1799(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1808(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1808(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1818(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1818(v42292, v42293, v42294, v42295, v42296, v42846, 1, v42299, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1828(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1828(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1838(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 < v43581 127.22/35.14 f_1838(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1848(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1848(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1856(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1856(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1864(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1864(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1872(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1872(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, v42297, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1879(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1879(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1887(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1887(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1894(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1894(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1902(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1902(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1906(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: v54909 != 0 127.22/35.14 f_1902(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1907(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: v54909 = 0 127.22/35.14 f_1906(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1911(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1911(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1916(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1916(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1695(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v54909, v42305, v42306, v42297, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1695(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42307, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1702(v42292, v42293, v42294, v42295, v42296, v42297, 1, v42299, 0, v42301, v42302, v42303, v42304, v42305, v42306, v42307, v42308, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1907(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1912(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1912(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1917(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1917(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) -> f_1697(v42292, v42293, v42294, v42295, v42296, v42846, 1, v43581, 0, v42301, v42302, v42303, v42305, v42306, v42297, v43581, v42309, v42310, v42311, v42312, v42313, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1697(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42456, v42457, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1703(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42456, v42457, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1703(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42456, v42457, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1709(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42457, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1709(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42457, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1716(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: 1 + v42847 = v42451 && 0 <= v42847 127.22/35.14 f_1716(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1723(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1723(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1730(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1730(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1738(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1738(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42847, v42458, v42459, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) -> f_1739(v42444, v42445, v42446, v42447, v42448, v42449, 1, v42451, 0, v42453, v42454, v42455, v42458, v42459, v42847, v42460, v42461, v42462, v42463, v42464, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1739(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1747(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1747(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1755(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1755(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1763(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1763(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1771(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1771(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1777(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1777(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1783(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1783(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1788(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1788(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43722, 0, v43724, v43725, v43726, v43727, v43728, v43729, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1794(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1794(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1801(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 < v43729 && 2 <= v43722 && 2 <= v43728 127.22/35.14 f_1801(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1810(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1810(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1820(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1820(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1830(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1830(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1840(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1840(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1850(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1850(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1858(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1858(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1866(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1866(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1874(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1874(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1880(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: v53371 != 0 127.22/35.14 f_1874(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1881(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: v53371 = 0 127.22/35.14 f_1880(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1888(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.14 f_1888(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1895(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1895(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1695(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v53371, v43722, v43729, v43727, v43728, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.14 f_1881(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1889(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1889(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1896(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1896(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43727, v43728, v43722, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) -> f_1697(v43715, v43716, v43717, v43718, v43719, v43720, 1, v43729, 0, v43724, v43725, v43726, v43722, v43729, v43727, v43728, v43730, v43731, v43732, v43733, v43734, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 Combined rules. Obtained 6 rulesP rules: 127.22/35.15 f_1874(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, v43729:0, 0, v43724:0, v43725:0, v43726:0, v53371:0, v43727:0, v43728:0, v43722:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) -> f_1702(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, v43729:0, 0, v43724:0, v43725:0, v43726:0, v53371:0, v43722:0, v43729:0, v43727:0, v43728:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) :|: v53371:0 < 0 127.22/35.15 f_1874(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, v43729:0, 0, v43724:0, v43725:0, v43726:0, v53371:0, v43727:0, v43728:0, v43722:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) -> f_1702(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, v43729:0, 0, v43724:0, v43725:0, v43726:0, v53371:0, v43722:0, v43729:0, v43727:0, v43728:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) :|: v53371:0 > 0 127.22/35.15 f_1702(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, 1 + v42846:0, 1, v42299:0, 0, v42301:0, v42302:0, v42303:0, v42304:0, v42305:0, v42306:0, v42307:0, v42308:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) -> f_1702(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, v42846:0, 1, v43581:0, 0, v42301:0, v42302:0, v42303:0, v54909:0, v42305:0, v42306:0, 1 + v42846:0, v43581:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) :|: v42846:0 > 0 && v42303:0 > 2 && v54909:0 < 0 && v43581:0 > 0 127.22/35.15 f_1702(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, 1 + v42846:0, 1, v42299:0, 0, v42301:0, v42302:0, v42303:0, v42304:0, v42305:0, v42306:0, v42307:0, v42308:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) -> f_1702(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, v42846:0, 1, v43581:0, 0, v42301:0, v42302:0, v42303:0, v54909:0, v42305:0, v42306:0, 1 + v42846:0, v43581:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) :|: v42846:0 > 0 && v42303:0 > 2 && v54909:0 > 0 && v43581:0 > 0 127.22/35.15 f_1702(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, 1 + v42846:0, 1, v42299:0, 0, v42301:0, v42302:0, v42303:0, v42304:0, v42305:0, v42306:0, v42307:0, v42308:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) -> f_1874(v42292:0, v42293:0, v42294:0, v42295:0, v42296:0, v42846:0, 1, v42847:0, 0, v42301:0, v42302:0, v42303:0, v53371:0, 1 + v42846:0, 1 + v42847:0, 1 + v42847:0, v42309:0, v42310:0, v42311:0, v42312:0, v42313:0, 3, 7, 2, 4, 8) :|: v42846:0 > 0 && v42847:0 > 0 && v42303:0 > 2 127.22/35.15 f_1874(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, 1 + v42847:0, 0, v43724:0, v43725:0, v43726:0, 0, v43727:0, v43728:0, v43722:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) -> f_1874(v43715:0, v43716:0, v43717:0, v43718:0, v43719:0, v43720:0, 1, v42847:0, 0, v43724:0, v43725:0, v43726:0, v53371:1, v43727:0, v43728:0, 1 + v42847:0, v43730:0, v43731:0, v43732:0, v43733:0, v43734:0, 3, 7, 2, 4, 8) :|: v42847:0 > 0 && v43728:0 > 1 127.22/35.15 Filtered unneeded arguments: 127.22/35.15 f_1874(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26) -> f_1874(x6, x8, x12, x13, x15) 127.22/35.15 f_1702(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27) -> f_1702(x6, x12) 127.22/35.15 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 127.22/35.15 f_1874(v43720:0, v43729:0, v43726:0, v53371:0, v43728:0) -> f_1702(v43720:0, v43726:0) :|: v53371:0 < 0 127.22/35.15 f_1874(v43720:0, v43729:0, v43726:0, v53371:0, v43728:0) -> f_1702(v43720:0, v43726:0) :|: v53371:0 > 0 127.22/35.15 f_1702(sum~cons_1~v42846:0, v42303:0) -> f_1702(v42846:0, v42303:0) :|: v42846:0 > 0 && v42303:0 > 2 && sum~cons_1~v42846:0 = 1 + v42846:0 127.22/35.15 f_1702(sum~cons_1~v42846:0, v42303:0) -> f_1874(v42846:0, v42847:0, v42303:0, v53371:0, 1 + v42847:0) :|: v42847:0 > 0 && v42303:0 > 2 && v42846:0 > 0 && sum~cons_1~v42846:0 = 1 + v42846:0 127.22/35.15 f_1874(v43720:0, sum~cons_1~v42847:0, v43726:0, cons_0, v43728:0) -> f_1874(v43720:0, v42847:0, v43726:0, v53371:1, v43728:0) :|: v42847:0 > 0 && v43728:0 > 1 && sum~cons_1~v42847:0 = 1 + v42847:0 && cons_0 = 0 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (16) 127.22/35.15 Obligation: 127.22/35.15 Rules: 127.22/35.15 f_1874(v43720:0, v43729:0, v43726:0, v53371:0, v43728:0) -> f_1702(v43720:0, v43726:0) :|: v53371:0 < 0 127.22/35.15 f_1874(x, x1, x2, x3, x4) -> f_1702(x, x2) :|: x3 > 0 127.22/35.15 f_1702(sum~cons_1~v42846:0, v42303:0) -> f_1702(v42846:0, v42303:0) :|: v42846:0 > 0 && v42303:0 > 2 && sum~cons_1~v42846:0 = 1 + v42846:0 127.22/35.15 f_1702(x5, x6) -> f_1874(x7, x8, x6, x9, 1 + x8) :|: x8 > 0 && x6 > 2 && x7 > 0 && x5 = 1 + x7 127.22/35.15 f_1874(x10, x11, x12, x13, x14) -> f_1874(x10, x15, x12, x16, x14) :|: x15 > 0 && x14 > 1 && x11 = 1 + x15 && x13 = 0 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (17) IRS2T2 (EQUIVALENT) 127.22/35.15 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 127.22/35.15 127.22/35.15 (f_1874_5,1) 127.22/35.15 (f_1702_5,2) 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (18) 127.22/35.15 Obligation: 127.22/35.15 START: 0; 127.22/35.15 127.22/35.15 FROM: 0; 127.22/35.15 TO: 1; 127.22/35.15 127.22/35.15 FROM: 0; 127.22/35.15 TO: 2; 127.22/35.15 127.22/35.15 FROM: 1; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := x4; 127.22/35.15 oldX5 := nondet(); 127.22/35.15 oldX6 := nondet(); 127.22/35.15 oldX7 := nondet(); 127.22/35.15 assume(oldX3 < 0); 127.22/35.15 x0 := oldX0; 127.22/35.15 x1 := oldX2; 127.22/35.15 x2 := oldX5; 127.22/35.15 x3 := oldX6; 127.22/35.15 x4 := oldX7; 127.22/35.15 TO: 2; 127.22/35.15 127.22/35.15 FROM: 1; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := x4; 127.22/35.15 oldX5 := nondet(); 127.22/35.15 oldX6 := nondet(); 127.22/35.15 oldX7 := nondet(); 127.22/35.15 assume(oldX3 > 0); 127.22/35.15 x0 := oldX0; 127.22/35.15 x1 := oldX2; 127.22/35.15 x2 := oldX5; 127.22/35.15 x3 := oldX6; 127.22/35.15 x4 := oldX7; 127.22/35.15 TO: 2; 127.22/35.15 127.22/35.15 FROM: 2; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := x4; 127.22/35.15 oldX5 := oldX0 - 1; 127.22/35.15 oldX6 := nondet(); 127.22/35.15 oldX7 := nondet(); 127.22/35.15 oldX8 := nondet(); 127.22/35.15 assume(oldX5 > 0 && oldX1 > 2 && oldX0 = 1 + oldX5); 127.22/35.15 x0 := oldX0 - 1; 127.22/35.15 x1 := oldX1; 127.22/35.15 x2 := oldX6; 127.22/35.15 x3 := oldX7; 127.22/35.15 x4 := oldX8; 127.22/35.15 TO: 2; 127.22/35.15 127.22/35.15 FROM: 2; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := x4; 127.22/35.15 oldX5 := oldX0 - 1; 127.22/35.15 oldX6 := nondet(); 127.22/35.15 oldX7 := nondet(); 127.22/35.15 assume(oldX6 > 0 && oldX1 > 2 && oldX5 > 0 && oldX0 = 1 + oldX5); 127.22/35.15 x0 := oldX0 - 1; 127.22/35.15 x1 := oldX6; 127.22/35.15 x2 := oldX1; 127.22/35.15 x3 := oldX7; 127.22/35.15 x4 := 1 + oldX6; 127.22/35.15 TO: 1; 127.22/35.15 127.22/35.15 FROM: 1; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := x4; 127.22/35.15 oldX5 := oldX1 - 1; 127.22/35.15 oldX6 := nondet(); 127.22/35.15 assume(oldX5 > 0 && oldX4 > 1 && oldX1 = 1 + oldX5 && oldX3 = 0); 127.22/35.15 x0 := oldX0; 127.22/35.15 x1 := oldX1 - 1; 127.22/35.15 x2 := oldX2; 127.22/35.15 x3 := oldX6; 127.22/35.15 x4 := oldX4; 127.22/35.15 TO: 1; 127.22/35.15 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (19) T2 (EQUIVALENT) 127.22/35.15 Initially, performed program simplifications using lexicographic rank functions: 127.22/35.15 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 127.22/35.15 - Rank function 1: 127.22/35.15 RF for loc. 6: 2+6*x0 127.22/35.15 RF for loc. 7: 1+6*x0 127.22/35.15 RF for loc. 8: 2+6*x0 127.22/35.15 RF for loc. 12: 6*x0 127.22/35.15 Bound for (chained) transitions 20: 12 127.22/35.15 Bound for (chained) transitions 21: 12 127.22/35.15 - Rank function 2: 127.22/35.15 RF for loc. 6: 0 127.22/35.15 RF for loc. 7: -1 127.22/35.15 RF for loc. 8: 0 127.22/35.15 RF for loc. 12: -2 127.22/35.15 Bound for (chained) transitions 5: 0 127.22/35.15 Bound for (chained) transitions 6: 0 127.22/35.15 Bound for (chained) transitions 17: -1 127.22/35.15 - Rank function 3: 127.22/35.15 RF for loc. 6: 1+2*x1 127.22/35.15 RF for loc. 8: 2*x1 127.22/35.15 Bound for (chained) transitions 7: 4 127.22/35.15 - Rank function 4: 127.22/35.15 RF for loc. 6: 1 127.22/35.15 RF for loc. 8: 0 127.22/35.15 Bound for (chained) transitions 2: 1 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (20) 127.22/35.15 YES 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (21) 127.22/35.15 Obligation: 127.22/35.15 SCC 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (22) SCC2IRS (SOUND) 127.22/35.15 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 127.22/35.15 Generated rules. Obtained 27 rulesP rules: 127.22/35.15 f_1676(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1683(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1683(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1690(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1690(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1698(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1698(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1704(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1704(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1710(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1710(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1717(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1717(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1724(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1724(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1731(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 < v40934 && 2 <= v40928 && 2 <= v40931 && 3 <= v40930 127.22/35.15 f_1731(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1740(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1740(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1748(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1748(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1756(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1756(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1764(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1764(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1772(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1772(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1778(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1778(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1784(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1784(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1789(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v47956, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1789(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v47956, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1796(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: v47956 = 0 127.22/35.15 f_1796(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1804(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1804(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1813(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1813(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1823(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1823(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40928, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1833(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1833(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1843(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 1 + v51733 = v40934 && 0 <= v51733 127.22/35.15 f_1843(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1852(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1852(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1860(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1860(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1868(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1868(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1670(v40922, v40923, v40924, v40925, v40926, 1, v40934, v40929, v40930, v40931, v40932, 0, v51733, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1670(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) -> f_1676(v40922, v40923, v40924, v40925, v40926, 1, v40928, v40929, v40930, v40931, v40932, 0, v40934, v40935, v40936, v40937, v40938, v40939, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 Combined rules. Obtained 1 rulesP rules: 127.22/35.15 f_1676(v40922:0, v40923:0, v40924:0, v40925:0, v40926:0, 1, v40928:0, v40929:0, v40930:0, v40931:0, v40932:0, 0, 1 + v51733:0, v40935:0, v40936:0, v40937:0, v40938:0, v40939:0, 3, 7, 2, 4, 8) -> f_1676(v40922:0, v40923:0, v40924:0, v40925:0, v40926:0, 1, 1 + v51733:0, v40929:0, v40930:0, v40931:0, v40932:0, 0, v51733:0, v40935:0, v40936:0, v40937:0, v40938:0, v40939:0, 3, 7, 2, 4, 8) :|: v40928:0 > 1 && v51733:0 > -1 && v40931:0 > 1 && v40930:0 > 2 127.22/35.15 Filtered unneeded arguments: 127.22/35.15 f_1676(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1676(x7, x9, x10, x13) 127.22/35.15 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 127.22/35.15 f_1676(v40928:0, v40930:0, v40931:0, sum~cons_1~v51733:0) -> f_1676(1 + v51733:0, v40930:0, v40931:0, v51733:0) :|: v51733:0 > -1 && v40928:0 > 1 && v40930:0 > 2 && v40931:0 > 1 && sum~cons_1~v51733:0 = 1 + v51733:0 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (23) 127.22/35.15 Obligation: 127.22/35.15 Rules: 127.22/35.15 f_1676(v40928:0, v40930:0, v40931:0, sum~cons_1~v51733:0) -> f_1676(1 + v51733:0, v40930:0, v40931:0, v51733:0) :|: v51733:0 > -1 && v40928:0 > 1 && v40930:0 > 2 && v40931:0 > 1 && sum~cons_1~v51733:0 = 1 + v51733:0 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (24) IRS2T2 (EQUIVALENT) 127.22/35.15 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 127.22/35.15 127.22/35.15 (f_1676_4,1) 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (25) 127.22/35.15 Obligation: 127.22/35.15 START: 0; 127.22/35.15 127.22/35.15 FROM: 0; 127.22/35.15 TO: 1; 127.22/35.15 127.22/35.15 FROM: 1; 127.22/35.15 oldX0 := x0; 127.22/35.15 oldX1 := x1; 127.22/35.15 oldX2 := x2; 127.22/35.15 oldX3 := x3; 127.22/35.15 oldX4 := oldX3 - 1; 127.22/35.15 assume(oldX4 > -1 && oldX0 > 1 && oldX1 > 2 && oldX2 > 1 && oldX3 = 1 + oldX4); 127.22/35.15 x0 := 1 + oldX4; 127.22/35.15 x1 := oldX1; 127.22/35.15 x2 := oldX2; 127.22/35.15 x3 := oldX3 - 1; 127.22/35.15 TO: 1; 127.22/35.15 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (26) T2 (EQUIVALENT) 127.22/35.15 Initially, performed program simplifications using lexicographic rank functions: 127.22/35.15 * Removed transitions 1, 3, 4 using the following rank functions: 127.22/35.15 - Rank function 1: 127.22/35.15 RF for loc. 5: 1+2*x3 127.22/35.15 RF for loc. 6: 2*x3 127.22/35.15 Bound for (chained) transitions 3: 2 127.22/35.15 Bound for (chained) transitions 4: 2 127.22/35.15 - Rank function 2: 127.22/35.15 RF for loc. 5: 0 127.22/35.15 RF for loc. 6: -1 127.22/35.15 Bound for (chained) transitions 1: 0 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (27) 127.22/35.15 YES 127.22/35.15 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (28) 127.22/35.15 Obligation: 127.22/35.15 SCC 127.22/35.15 ---------------------------------------- 127.22/35.15 127.22/35.15 (29) SCC2IRS (SOUND) 127.22/35.15 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 127.22/35.15 Generated rules. Obtained 31 rulesP rules: 127.22/35.15 f_1537(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1546(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1546(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1555(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1555(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1563(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1563(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1569(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: v33271 != 0 && 2 <= v33261 && 2 <= v33269 127.22/35.15 f_1569(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1576(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1576(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1582(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1582(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1589(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1589(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33263, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1597(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1597(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1606(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 < v33272 127.22/35.15 f_1606(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1616(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1616(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1626(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 127.22/35.15 f_1626(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1636(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 127.22/35.15 f_1636(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1646(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1646(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, v33261, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1655(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1655(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1663(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1663(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1671(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1671(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1677(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1677(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1684(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: v41246 != 0 128.15/35.33 f_1684(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1691(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1691(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1699(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1699(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1705(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1705(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33261, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1711(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1711(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1718(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 1 + v42848 = v33271 && 0 <= v42848 128.15/35.33 f_1718(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1725(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1725(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1733(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1733(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1742(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1742(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1750(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.33 f_1750(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1758(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1758(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1766(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1766(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1528(v33256, v33257, v33258, v33259, v33260, v33271, 1, v33272, 0, v33265, v33266, v33267, v33268, v33269, v41246, v42848, v43753, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 f_1528(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) -> f_1537(v33256, v33257, v33258, v33259, v33260, v33261, 1, v33263, 0, v33265, v33266, v33267, v33268, v33269, v33270, v33271, v33272, v33273, v33274, v33275, v33276, v33277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.33 Combined rules. Obtained 2 rulesP rules: 128.15/35.33 f_1537(v33256:0, v33257:0, v33258:0, v33259:0, v33260:0, v33261:0, 1, v33263:0, 0, v33265:0, v33266:0, v33267:0, v33268:0, v33269:0, v33270:0, 1 + v42848:0, v33272:0, v33273:0, v33274:0, v33275:0, v33276:0, v33277:0, 3, 7, 2, 4, 8) -> f_1537(v33256:0, v33257:0, v33258:0, v33259:0, v33260:0, 1 + v42848:0, 1, v33272:0, 0, v33265:0, v33266:0, v33267:0, v33268:0, v33269:0, v41246:0, v42848:0, v43753:0, v33273:0, v33274:0, v33275:0, v33276:0, v33277:0, 3, 7, 2, 4, 8) :|: v33261:0 > 1 && v42848:0 > -1 && v33269:0 > 1 && v33272:0 > 0 && v41246:0 < 0 128.15/35.33 f_1537(v33256:0, v33257:0, v33258:0, v33259:0, v33260:0, v33261:0, 1, v33263:0, 0, v33265:0, v33266:0, v33267:0, v33268:0, v33269:0, v33270:0, 1 + v42848:0, v33272:0, v33273:0, v33274:0, v33275:0, v33276:0, v33277:0, 3, 7, 2, 4, 8) -> f_1537(v33256:0, v33257:0, v33258:0, v33259:0, v33260:0, 1 + v42848:0, 1, v33272:0, 0, v33265:0, v33266:0, v33267:0, v33268:0, v33269:0, v41246:0, v42848:0, v43753:0, v33273:0, v33274:0, v33275:0, v33276:0, v33277:0, 3, 7, 2, 4, 8) :|: v33261:0 > 1 && v42848:0 > -1 && v33269:0 > 1 && v33272:0 > 0 && v41246:0 > 0 128.15/35.33 Filtered unneeded arguments: 128.15/35.33 f_1537(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27) -> f_1537(x6, x14, x16, x17) 128.15/35.34 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.15/35.34 f_1537(v33261:0, v33269:0, sum~cons_1~v42848:0, v33272:0) -> f_1537(1 + v42848:0, v33269:0, v42848:0, v43753:0) :|: v42848:0 > -1 && v33261:0 > 1 && v33272:0 > 0 && v33269:0 > 1 && sum~cons_1~v42848:0 = 1 + v42848:0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (30) 128.15/35.34 Obligation: 128.15/35.34 Rules: 128.15/35.34 f_1537(v33261:0, v33269:0, sum~cons_1~v42848:0, v33272:0) -> f_1537(1 + v42848:0, v33269:0, v42848:0, v43753:0) :|: v42848:0 > -1 && v33261:0 > 1 && v33272:0 > 0 && v33269:0 > 1 && sum~cons_1~v42848:0 = 1 + v42848:0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (31) IRS2T2 (EQUIVALENT) 128.15/35.34 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.34 128.15/35.34 (f_1537_4,1) 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (32) 128.15/35.34 Obligation: 128.15/35.34 START: 0; 128.15/35.34 128.15/35.34 FROM: 0; 128.15/35.34 TO: 1; 128.15/35.34 128.15/35.34 FROM: 1; 128.15/35.34 oldX0 := x0; 128.15/35.34 oldX1 := x1; 128.15/35.34 oldX2 := x2; 128.15/35.34 oldX3 := x3; 128.15/35.34 oldX4 := oldX2 - 1; 128.15/35.34 oldX5 := nondet(); 128.15/35.34 assume(oldX4 > -1 && oldX0 > 1 && oldX3 > 0 && oldX1 > 1 && oldX2 = 1 + oldX4); 128.15/35.34 x0 := 1 + oldX4; 128.15/35.34 x1 := oldX1; 128.15/35.34 x2 := oldX2 - 1; 128.15/35.34 x3 := oldX5; 128.15/35.34 TO: 1; 128.15/35.34 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (33) T2 (EQUIVALENT) 128.15/35.34 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.34 * Removed transitions 1, 3, 4 using the following rank functions: 128.15/35.34 - Rank function 1: 128.15/35.34 RF for loc. 5: 1+2*x2 128.15/35.34 RF for loc. 6: 2*x2 128.15/35.34 Bound for (chained) transitions 3: 2 128.15/35.34 Bound for (chained) transitions 4: 2 128.15/35.34 - Rank function 2: 128.15/35.34 RF for loc. 5: 0 128.15/35.34 RF for loc. 6: -1 128.15/35.34 Bound for (chained) transitions 1: 0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (34) 128.15/35.34 YES 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (35) 128.15/35.34 Obligation: 128.15/35.34 SCC 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (36) SCC2IRS (SOUND) 128.15/35.34 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.34 Generated rules. Obtained 27 rulesP rules: 128.15/35.34 f_1452(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1460(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1460(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1466(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1466(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1473(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1473(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1480(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1480(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1487(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1487(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1494(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1494(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1502(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1502(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1510(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 < v30189 && 2 <= v30183 && 2 <= v30188 && 3 <= v30187 128.15/35.34 f_1510(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1519(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1519(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1529(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1529(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1538(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1538(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1547(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1547(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1556(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1556(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1564(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1564(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1571(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1571(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1578(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v36868, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1578(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v36868, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1585(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: v36868 = 0 128.15/35.34 f_1585(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1592(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1592(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1600(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1600(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1609(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1609(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30183, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1619(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1619(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1629(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 1 + v39567 = v30189 && 0 <= v39567 128.15/35.34 f_1629(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1639(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1639(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1649(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1649(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1657(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1657(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1445(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30189, 0, v30185, v30186, v30187, v30188, v39567, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1445(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) -> f_1452(v30176, v30177, v30178, v30179, v30180, v30181, 1, v30183, 0, v30185, v30186, v30187, v30188, v30189, v30190, v30191, v30192, v30193, v30194, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 Combined rules. Obtained 1 rulesP rules: 128.15/35.34 f_1452(v30176:0, v30177:0, v30178:0, v30179:0, v30180:0, v30181:0, 1, v30183:0, 0, v30185:0, v30186:0, v30187:0, v30188:0, 1 + v39567:0, v30190:0, v30191:0, v30192:0, v30193:0, v30194:0, 3, 7, 2, 4, 8) -> f_1452(v30176:0, v30177:0, v30178:0, v30179:0, v30180:0, v30181:0, 1, 1 + v39567:0, 0, v30185:0, v30186:0, v30187:0, v30188:0, v39567:0, v30190:0, v30191:0, v30192:0, v30193:0, v30194:0, 3, 7, 2, 4, 8) :|: v30183:0 > 1 && v39567:0 > -1 && v30188:0 > 1 && v30187:0 > 2 128.15/35.34 Filtered unneeded arguments: 128.15/35.34 f_1452(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24) -> f_1452(x8, x12, x13, x14) 128.15/35.34 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.15/35.34 f_1452(v30183:0, v30187:0, v30188:0, sum~cons_1~v39567:0) -> f_1452(1 + v39567:0, v30187:0, v30188:0, v39567:0) :|: v39567:0 > -1 && v30183:0 > 1 && v30187:0 > 2 && v30188:0 > 1 && sum~cons_1~v39567:0 = 1 + v39567:0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (37) 128.15/35.34 Obligation: 128.15/35.34 Rules: 128.15/35.34 f_1452(v30183:0, v30187:0, v30188:0, sum~cons_1~v39567:0) -> f_1452(1 + v39567:0, v30187:0, v30188:0, v39567:0) :|: v39567:0 > -1 && v30183:0 > 1 && v30187:0 > 2 && v30188:0 > 1 && sum~cons_1~v39567:0 = 1 + v39567:0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (38) IRS2T2 (EQUIVALENT) 128.15/35.34 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.34 128.15/35.34 (f_1452_4,1) 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (39) 128.15/35.34 Obligation: 128.15/35.34 START: 0; 128.15/35.34 128.15/35.34 FROM: 0; 128.15/35.34 TO: 1; 128.15/35.34 128.15/35.34 FROM: 1; 128.15/35.34 oldX0 := x0; 128.15/35.34 oldX1 := x1; 128.15/35.34 oldX2 := x2; 128.15/35.34 oldX3 := x3; 128.15/35.34 oldX4 := oldX3 - 1; 128.15/35.34 assume(oldX4 > -1 && oldX0 > 1 && oldX1 > 2 && oldX2 > 1 && oldX3 = 1 + oldX4); 128.15/35.34 x0 := 1 + oldX4; 128.15/35.34 x1 := oldX1; 128.15/35.34 x2 := oldX2; 128.15/35.34 x3 := oldX3 - 1; 128.15/35.34 TO: 1; 128.15/35.34 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (40) T2 (EQUIVALENT) 128.15/35.34 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.34 * Removed transitions 1, 3, 4 using the following rank functions: 128.15/35.34 - Rank function 1: 128.15/35.34 RF for loc. 5: 1+2*x3 128.15/35.34 RF for loc. 6: 2*x3 128.15/35.34 Bound for (chained) transitions 3: 2 128.15/35.34 Bound for (chained) transitions 4: 2 128.15/35.34 - Rank function 2: 128.15/35.34 RF for loc. 5: 0 128.15/35.34 RF for loc. 6: -1 128.15/35.34 Bound for (chained) transitions 1: 0 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (41) 128.15/35.34 YES 128.15/35.34 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (42) 128.15/35.34 Obligation: 128.15/35.34 SCC 128.15/35.34 ---------------------------------------- 128.15/35.34 128.15/35.34 (43) SCC2IRS (SOUND) 128.15/35.34 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.34 Generated rules. Obtained 31 rulesP rules: 128.15/35.34 f_1314(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1324(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1324(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1334(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1334(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1341(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1341(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1348(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: v23930 != 0 && 2 <= v23922 && 2 <= v23928 128.15/35.34 f_1348(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1355(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1355(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1362(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1362(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1371(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1371(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23924, v23922, 0, v23926, v23927, v23928, v23929, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1380(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1380(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1390(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 < v23931 128.15/35.34 f_1390(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1400(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1400(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1409(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1409(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1418(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1418(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1427(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1427(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, v23922, 0, v23926, v23927, v23928, v23929, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1436(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1436(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1446(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1446(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1453(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1453(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v23929, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1461(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1461(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1467(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: v30882 != 0 128.15/35.34 f_1467(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1474(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1474(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1481(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1481(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1488(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1488(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23922, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1495(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1495(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1503(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 1 + v32181 = v23930 && 0 <= v32181 128.15/35.34 f_1503(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1512(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1512(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1521(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1521(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1531(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1531(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1540(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.34 f_1540(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1549(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1549(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1557(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1557(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1305(v23917, v23918, v23919, v23920, v23921, v23930, 1, v23931, 0, v23926, v23927, v23928, v30882, v32181, v33821, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.34 f_1305(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) -> f_1314(v23917, v23918, v23919, v23920, v23921, v23922, 1, v23924, 0, v23926, v23927, v23928, v23929, v23930, v23931, v23932, v23933, v23934, v23935, v23936, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 Combined rules. Obtained 2 rulesP rules: 128.15/35.36 f_1314(v23917:0, v23918:0, v23919:0, v23920:0, v23921:0, v23922:0, 1, v23924:0, 0, v23926:0, v23927:0, v23928:0, v23929:0, 1 + v32181:0, v23931:0, v23932:0, v23933:0, v23934:0, v23935:0, v23936:0, 3, 7, 2, 4, 8) -> f_1314(v23917:0, v23918:0, v23919:0, v23920:0, v23921:0, 1 + v32181:0, 1, v23931:0, 0, v23926:0, v23927:0, v23928:0, v30882:0, v32181:0, v33821:0, v23932:0, v23933:0, v23934:0, v23935:0, v23936:0, 3, 7, 2, 4, 8) :|: v23922:0 > 1 && v32181:0 > -1 && v23928:0 > 1 && v23931:0 > 0 && v30882:0 < 0 128.15/35.36 f_1314(v23917:0, v23918:0, v23919:0, v23920:0, v23921:0, v23922:0, 1, v23924:0, 0, v23926:0, v23927:0, v23928:0, v23929:0, 1 + v32181:0, v23931:0, v23932:0, v23933:0, v23934:0, v23935:0, v23936:0, 3, 7, 2, 4, 8) -> f_1314(v23917:0, v23918:0, v23919:0, v23920:0, v23921:0, 1 + v32181:0, 1, v23931:0, 0, v23926:0, v23927:0, v23928:0, v30882:0, v32181:0, v33821:0, v23932:0, v23933:0, v23934:0, v23935:0, v23936:0, 3, 7, 2, 4, 8) :|: v23922:0 > 1 && v32181:0 > -1 && v23928:0 > 1 && v23931:0 > 0 && v30882:0 > 0 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_1314(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_1314(x6, x12, x14, x15) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.15/35.36 f_1314(v23922:0, v23928:0, sum~cons_1~v32181:0, v23931:0) -> f_1314(1 + v32181:0, v23928:0, v32181:0, v33821:0) :|: v32181:0 > -1 && v23922:0 > 1 && v23931:0 > 0 && v23928:0 > 1 && sum~cons_1~v32181:0 = 1 + v32181:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (44) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_1314(v23922:0, v23928:0, sum~cons_1~v32181:0, v23931:0) -> f_1314(1 + v32181:0, v23928:0, v32181:0, v33821:0) :|: v32181:0 > -1 && v23922:0 > 1 && v23931:0 > 0 && v23928:0 > 1 && sum~cons_1~v32181:0 = 1 + v32181:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (45) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.36 128.15/35.36 (f_1314_4,1) 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (46) 128.15/35.36 Obligation: 128.15/35.36 START: 0; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := x3; 128.15/35.36 oldX4 := oldX2 - 1; 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX4 > -1 && oldX0 > 1 && oldX3 > 0 && oldX1 > 1 && oldX2 = 1 + oldX4); 128.15/35.36 x0 := 1 + oldX4; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX2 - 1; 128.15/35.36 x3 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (47) T2 (EQUIVALENT) 128.15/35.36 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.36 * Removed transitions 1, 3, 4 using the following rank functions: 128.15/35.36 - Rank function 1: 128.15/35.36 RF for loc. 5: 1+2*x2 128.15/35.36 RF for loc. 6: 2*x2 128.15/35.36 Bound for (chained) transitions 3: 2 128.15/35.36 Bound for (chained) transitions 4: 2 128.15/35.36 - Rank function 2: 128.15/35.36 RF for loc. 5: 0 128.15/35.36 RF for loc. 6: -1 128.15/35.36 Bound for (chained) transitions 1: 0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (48) 128.15/35.36 YES 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (49) 128.15/35.36 Obligation: 128.15/35.36 SCC 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (50) SCC2IRS (SOUND) 128.15/35.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.36 Generated rules. Obtained 27 rulesP rules: 128.15/35.36 f_1210(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1223(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1223(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1235(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1235(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1245(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1245(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1255(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1255(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1265(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1265(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1273(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1273(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1281(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1281(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1288(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 < v20129 && 2 <= v20125 && 2 <= v20128 && 3 <= v20127 128.15/35.36 f_1288(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1297(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1297(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1306(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1306(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1315(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1315(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1325(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1325(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1335(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1335(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1342(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1342(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1350(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1350(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1357(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v27197, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1357(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v27197, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1365(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: v27197 = 0 128.15/35.36 f_1365(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1374(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1374(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1383(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1383(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1393(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1393(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20125, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1403(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1403(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1412(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 1 + v29599 = v20129 && 0 <= v29599 128.15/35.36 f_1412(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1421(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1421(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1430(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1430(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1438(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1438(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1195(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20129, 0, v20127, v20128, v29599, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1195(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) -> f_1210(v20118, v20119, v20120, v20121, v20122, v20123, 1, v20125, 0, v20127, v20128, v20129, v20130, v20131, v20132, v20133, v20134, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 Combined rules. Obtained 1 rulesP rules: 128.15/35.36 f_1210(v20118:0, v20119:0, v20120:0, v20121:0, v20122:0, v20123:0, 1, v20125:0, 0, v20127:0, v20128:0, 1 + v29599:0, v20130:0, v20131:0, v20132:0, v20133:0, v20134:0, 3, 7, 2, 4, 8) -> f_1210(v20118:0, v20119:0, v20120:0, v20121:0, v20122:0, v20123:0, 1, 1 + v29599:0, 0, v20127:0, v20128:0, v29599:0, v20130:0, v20131:0, v20132:0, v20133:0, v20134:0, 3, 7, 2, 4, 8) :|: v20125:0 > 1 && v29599:0 > -1 && v20128:0 > 1 && v20127:0 > 2 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_1210(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1210(x8, x10, x11, x12) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.15/35.36 f_1210(v20125:0, v20127:0, v20128:0, sum~cons_1~v29599:0) -> f_1210(1 + v29599:0, v20127:0, v20128:0, v29599:0) :|: v29599:0 > -1 && v20125:0 > 1 && v20127:0 > 2 && v20128:0 > 1 && sum~cons_1~v29599:0 = 1 + v29599:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (51) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_1210(v20125:0, v20127:0, v20128:0, sum~cons_1~v29599:0) -> f_1210(1 + v29599:0, v20127:0, v20128:0, v29599:0) :|: v29599:0 > -1 && v20125:0 > 1 && v20127:0 > 2 && v20128:0 > 1 && sum~cons_1~v29599:0 = 1 + v29599:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (52) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.36 128.15/35.36 (f_1210_4,1) 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (53) 128.15/35.36 Obligation: 128.15/35.36 START: 0; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := x3; 128.15/35.36 oldX4 := oldX3 - 1; 128.15/35.36 assume(oldX4 > -1 && oldX0 > 1 && oldX1 > 2 && oldX2 > 1 && oldX3 = 1 + oldX4); 128.15/35.36 x0 := 1 + oldX4; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX2; 128.15/35.36 x3 := oldX3 - 1; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (54) T2 (EQUIVALENT) 128.15/35.36 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.36 * Removed transitions 1, 3, 4 using the following rank functions: 128.15/35.36 - Rank function 1: 128.15/35.36 RF for loc. 5: 1+2*x3 128.15/35.36 RF for loc. 6: 2*x3 128.15/35.36 Bound for (chained) transitions 3: 2 128.15/35.36 Bound for (chained) transitions 4: 2 128.15/35.36 - Rank function 2: 128.15/35.36 RF for loc. 5: 0 128.15/35.36 RF for loc. 6: -1 128.15/35.36 Bound for (chained) transitions 1: 0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (55) 128.15/35.36 YES 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (56) 128.15/35.36 Obligation: 128.15/35.36 SCC 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (57) SCC2IRS (SOUND) 128.15/35.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.36 Generated rules. Obtained 81 rulesP rules: 128.15/35.36 f_838(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_852(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_852(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_866(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_866(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_876(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_876(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_886(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_886(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_896(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_896(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_906(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_906(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_918(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_918(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_930(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 < v8708 && 2 <= v8704 128.15/35.36 f_930(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_941(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_941(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_955(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_955(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_970(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_970(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_984(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_984(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_999(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_999(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1013(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1013(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1026(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1026(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1038(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1038(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1050(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: v16124 != 0 128.15/35.36 f_1038(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1051(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: v16124 = 0 128.15/35.36 f_1050(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1063(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1063(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1077(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1077(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1090(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1090(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1107(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1107(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1124(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 1 + v19077 = v8702 && 0 <= v19077 128.15/35.36 f_1124(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1141(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1141(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1156(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1156(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1171(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1171(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1186(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1186(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1202(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1202(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_1217(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1217(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v19077, v19734, v8704, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) -> f_865(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, v16124, v8704, v8708, v19077, v19734, v8709, v8710, v8711, v8712, v8713, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_865(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_875(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_875(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_885(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_885(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_895(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_895(v9633, v9634, v9635, v9636, v9637, v9638, 1, v9640, v9641, v9642, v9643, v9644, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_905(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_905(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_916(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: v9644 != 0 && 2 <= v9638 128.15/35.36 f_916(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_928(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_928(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_939(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_939(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_953(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_953(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9640, v9638, v9641, v9642, v9643, v9645, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_968(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_968(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_982(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 < v9645 128.15/35.36 f_982(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_997(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_997(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1011(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1011(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1024(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1024(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1036(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1036(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9638, v9641, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1049(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1049(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1062(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1062(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1076(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1076(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v9641, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1089(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1089(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1105(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: v18430 != 0 128.15/35.36 f_1089(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1106(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: v18430 = 0 128.15/35.36 f_1105(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1122(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1122(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1139(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1139(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1154(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1154(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1169(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1169(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1184(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 1 + v20058 = v9644 && 0 <= v20058 128.15/35.36 f_1184(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1200(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1200(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1215(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1215(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1228(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1228(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1239(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1239(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1249(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1249(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_1259(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1259(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) -> f_865(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, v18430, v9642, v9643, v20058, v21035, v9646, v9647, v9648, v9649, v9650, 0, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1106(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1123(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1123(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1140(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1140(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1155(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1155(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9642, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1170(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1170(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9643, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1185(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: 1 + v20059 = v9645 && 0 <= v20059 128.15/35.36 f_1185(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1201(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1201(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1216(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1216(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_1229(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1229(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v20059, v9638, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) -> f_825(v9633, v9634, v9635, v9636, v9637, v9644, 1, v9645, 0, v9638, v9645, v20059, v9646, v9647, v9648, v9649, v9650, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_825(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_838(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8704, 0, v8706, v8707, v8708, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1051(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1064(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1064(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1078(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1078(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1091(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1091(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8704, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1108(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1108(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1125(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 1 + v19078 = v8708 && 0 <= v19078 128.15/35.36 f_1125(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1142(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1142(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1157(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1157(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_1172(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1172(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) -> f_825(v8697, v8698, v8699, v8700, v8701, v8702, 1, v8708, 0, v8706, v8707, v19078, v8709, v8710, v8711, v8712, v8713, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 Combined rules. Obtained 6 rulesP rules: 128.15/35.36 f_1089(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, v9644:0, 1, 1 + v20059:0, 0, v9642:0, v9643:0, v9638:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 0, 3, 7, 2, 4, 8) -> f_838(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, v9644:0, 1, 1 + v20059:0, 0, v9638:0, 1 + v20059:0, v20059:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 3, 7, 2, 4, 8) :|: v20059:0 > -1 128.15/35.36 f_838(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, v8702:0, 1, v8704:0, 0, v8706:0, v8707:0, 1 + v19078:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 3, 7, 2, 4, 8) -> f_838(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, v8702:0, 1, 1 + v19078:0, 0, v8706:0, v8707:0, v19078:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 3, 7, 2, 4, 8) :|: v8704:0 > 1 && v19078:0 > -1 128.15/35.36 f_1089(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, 1 + v20058:0, 1, v9645:0, v18430:0, v9642:0, v9643:0, v9638:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 0, 3, 7, 2, 4, 8) -> f_1089(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, v20058:0, 1, v21035:0, v18430:1, v9642:0, v9643:0, 1 + v20058:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 0, 3, 7, 2, 4, 8) :|: v20058:0 > 0 && v21035:0 > 0 && v18430:0 < 0 128.15/35.36 f_1089(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, 1 + v20058:0, 1, v9645:0, v18430:0, v9642:0, v9643:0, v9638:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 0, 3, 7, 2, 4, 8) -> f_1089(v9633:0, v9634:0, v9635:0, v9636:0, v9637:0, v20058:0, 1, v21035:0, v18430:1, v9642:0, v9643:0, 1 + v20058:0, v9646:0, v9647:0, v9648:0, v9649:0, v9650:0, 0, 3, 7, 2, 4, 8) :|: v20058:0 > 0 && v21035:0 > 0 && v18430:0 > 0 128.15/35.36 f_838(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, 1 + v19077:0, 1, v8704:0, 0, v8706:0, v8707:0, v8708:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 3, 7, 2, 4, 8) -> f_1089(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, v19077:0, 1, v19734:0, v18430:0, v8704:0, v8708:0, 1 + v19077:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 0, 3, 7, 2, 4, 8) :|: v19077:0 > 0 && v8704:0 > 1 && v8708:0 > 0 && v16124:0 < 0 && v19734:0 > 0 128.15/35.36 f_838(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, 1 + v19077:0, 1, v8704:0, 0, v8706:0, v8707:0, v8708:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 3, 7, 2, 4, 8) -> f_1089(v8697:0, v8698:0, v8699:0, v8700:0, v8701:0, v19077:0, 1, v19734:0, v18430:0, v8704:0, v8708:0, 1 + v19077:0, v8709:0, v8710:0, v8711:0, v8712:0, v8713:0, 0, 3, 7, 2, 4, 8) :|: v19077:0 > 0 && v8704:0 > 1 && v8708:0 > 0 && v16124:0 > 0 && v19734:0 > 0 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_1089(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1089(x6, x8, x9) 128.15/35.36 f_838(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_838(x6, x8, x12) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 128.15/35.36 f_1089(v9644:0, sum~cons_1~v20059:0, cons_0) -> f_838(v9644:0, 1 + v20059:0, v20059:0) :|: v20059:0 > -1 && sum~cons_1~v20059:0 = 1 + v20059:0 && cons_0 = 0 128.15/35.36 f_838(v8702:0, v8704:0, sum~cons_1~v19078:0) -> f_838(v8702:0, 1 + v19078:0, v19078:0) :|: v8704:0 > 1 && v19078:0 > -1 && sum~cons_1~v19078:0 = 1 + v19078:0 128.15/35.36 f_1089(sum~cons_1~v20058:0, v9645:0, v18430:0) -> f_1089(v20058:0, v21035:0, v18430:1) :|: v21035:0 > 0 && v18430:0 < 0 && v20058:0 > 0 && sum~cons_1~v20058:0 = 1 + v20058:0 128.15/35.36 f_1089(sum~cons_1~v20058:0, v9645:0, v18430:0) -> f_1089(v20058:0, v21035:0, v18430:1) :|: v21035:0 > 0 && v18430:0 > 0 && v20058:0 > 0 && sum~cons_1~v20058:0 = 1 + v20058:0 128.15/35.36 f_838(sum~cons_1~v19077:0, v8704:0, v8708:0) -> f_1089(v19077:0, v19734:0, v18430:0) :|: v8704:0 > 1 && v19077:0 > 0 && v19734:0 > 0 && v8708:0 > 0 && sum~cons_1~v19077:0 = 1 + v19077:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (58) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_1089(v9644:0, sum~cons_1~v20059:0, cons_0) -> f_838(v9644:0, 1 + v20059:0, v20059:0) :|: v20059:0 > -1 && sum~cons_1~v20059:0 = 1 + v20059:0 && cons_0 = 0 128.15/35.36 f_838(v8702:0, v8704:0, sum~cons_1~v19078:0) -> f_838(v8702:0, 1 + v19078:0, v19078:0) :|: v8704:0 > 1 && v19078:0 > -1 && sum~cons_1~v19078:0 = 1 + v19078:0 128.15/35.36 f_1089(sum~cons_1~v20058:0, v9645:0, v18430:0) -> f_1089(v20058:0, v21035:0, v18430:1) :|: v21035:0 > 0 && v18430:0 < 0 && v20058:0 > 0 && sum~cons_1~v20058:0 = 1 + v20058:0 128.15/35.36 f_1089(x, x1, x2) -> f_1089(x3, x4, x5) :|: x4 > 0 && x2 > 0 && x3 > 0 && x = 1 + x3 128.15/35.36 f_838(x6, x7, x8) -> f_1089(x9, x10, x11) :|: x7 > 1 && x9 > 0 && x10 > 0 && x8 > 0 && x6 = 1 + x9 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (59) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.36 128.15/35.36 (f_1089_3,1) 128.15/35.36 (f_838_3,2) 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (60) 128.15/35.36 Obligation: 128.15/35.36 START: 0; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := oldX1 - 1; 128.15/35.36 assume(oldX3 > -1 && oldX1 = 1 + oldX3 && oldX2 = 0); 128.15/35.36 x0 := oldX0; 128.15/35.36 x1 := 1 + oldX3; 128.15/35.36 x2 := oldX1 - 1; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := oldX2 - 1; 128.15/35.36 assume(oldX1 > 1 && oldX3 > -1 && oldX2 = 1 + oldX3); 128.15/35.36 x0 := oldX0; 128.15/35.36 x1 := 1 + oldX3; 128.15/35.36 x2 := oldX2 - 1; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := oldX0 - 1; 128.15/35.36 oldX4 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX4 > 0 && oldX2 < 0 && oldX3 > 0 && oldX0 = 1 + oldX3); 128.15/35.36 x0 := oldX0 - 1; 128.15/35.36 x1 := oldX4; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := oldX0 - 1; 128.15/35.36 oldX4 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX4 > 0 && oldX2 > 0 && oldX3 > 0 && oldX0 = 1 + oldX3); 128.15/35.36 x0 := oldX0 - 1; 128.15/35.36 x1 := oldX4; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := oldX0 - 1; 128.15/35.36 oldX4 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX1 > 1 && oldX3 > 0 && oldX4 > 0 && oldX2 > 0 && oldX0 = 1 + oldX3); 128.15/35.36 x0 := oldX0 - 1; 128.15/35.36 x1 := oldX4; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (61) T2 (EQUIVALENT) 128.15/35.36 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.36 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 128.15/35.36 - Rank function 1: 128.15/35.36 RF for loc. 6: 1+5*x0 128.15/35.36 RF for loc. 7: 5*x0 128.15/35.36 RF for loc. 8: 5*x0 128.15/35.36 RF for loc. 12: 5*x0 128.15/35.36 Bound for (chained) transitions 6: 10 128.15/35.36 Bound for (chained) transitions 7: 10 128.15/35.36 Bound for (chained) transitions 21: 10 128.15/35.36 - Rank function 2: 128.15/35.36 RF for loc. 6: 1+2*x1 128.15/35.36 RF for loc. 7: 2+2*x2 128.15/35.36 RF for loc. 8: 2*x1 128.15/35.36 RF for loc. 12: 1+2*x2 128.15/35.36 Bound for (chained) transitions 20: 3 128.15/35.36 - Rank function 3: 128.15/35.36 RF for loc. 6: 3 128.15/35.36 RF for loc. 7: 1 128.15/35.36 RF for loc. 8: 2 128.15/35.36 RF for loc. 12: 0 128.15/35.36 Bound for (chained) transitions 2: 3 128.15/35.36 Bound for (chained) transitions 17: 1 128.15/35.36 - Rank function 4: 128.15/35.36 RF for loc. 7: 0 128.15/35.36 RF for loc. 8: 1 128.15/35.36 Bound for (chained) transitions 5: 1 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (62) 128.15/35.36 YES 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (63) 128.15/35.36 Obligation: 128.15/35.36 SCC 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (64) SCC2IRS (SOUND) 128.15/35.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.36 Generated rules. Obtained 98 rulesP rules: 128.15/35.36 f_521(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_531(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_531(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_541(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_541(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_551(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_551(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_561(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v1013 != 0 128.15/35.36 f_561(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_572(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_572(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_584(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_584(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_596(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_596(v1, v3, v5, v7, v10, v1013, 1, v15, v28, 0, v13, v885, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_608(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_608(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_621(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 < v885 && 2 <= v15 128.15/35.36 f_621(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_634(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_634(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_646(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_646(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_658(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_658(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_668(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_668(v1, v3, v5, v7, v10, v1013, 1, v885, v28, 0, v13, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_679(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_679(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_689(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v1013 <= 0 128.15/35.36 f_689(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_700(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_700(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_713(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_713(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_726(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_726(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_742(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v7613 != 0 128.15/35.36 f_726(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_743(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v7613 = 0 128.15/35.36 f_742(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_757(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_757(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_772(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_772(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_780(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v7613, v13, v28, v15, v1013, v2, v4, v6, v8, v11, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_780(v8360, v8361, v8362, v8363, v8364, v8365, 1, v8367, 0, v8369, v8370, v8371, v8372, v8373, v8374, v8375, v8376, v8377, v8378, 3, 7, 2, 4, 8) -> f_1135(v8360, v8361, v8362, v8363, v8364, v8365, 1, v8367, 0, v8369, v8370, v8371, v8372, v8373, v8374, v8375, v8376, v8377, v8378, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1135(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19269, v19270, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1152(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19269, v19270, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1152(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19269, v19270, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1167(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19270, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1167(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19270, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1182(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: v20056 = 1 + v19264 && v20056 <= 1 128.15/35.36 f_1182(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1198(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1198(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1213(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1213(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_1226(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1226(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v20056, v19271, v19272, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) -> f_862(v19259, v19260, v19261, v19262, v19263, v19264, 1, v19266, 0, v19268, v19271, v19272, v20056, v19273, v19274, v19275, v19276, v19277, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_862(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_873(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_873(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_883(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_883(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_893(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_893(v9586, v9587, v9588, v9589, v9590, v9591, 1, v9593, 0, v9595, v9596, v9597, v9598, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_903(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_903(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_913(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: v9598 != 0 128.15/35.36 f_913(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_925(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_925(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_936(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_936(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_949(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_949(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_964(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_964(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_979(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_979(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_994(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_994(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1008(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1008(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1021(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1021(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, v9591, 0, v9595, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1033(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1033(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1046(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: v9598 <= 0 && 1 + v9591 <= 0 128.15/35.36 f_1046(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1059(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1059(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1073(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1073(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9595, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1087(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1087(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1101(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: v18429 != 0 128.15/35.36 f_1087(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1102(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: v18429 = 0 128.15/35.36 f_1101(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1118(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1118(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1134(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1134(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1135(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v18429, v9591, v9598, v9596, v9597, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1102(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1119(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1119(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1136(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1136(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1153(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1153(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9596, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 2, 4, 8) -> f_1168(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_1168(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1183(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: 1 + v20057 = v9593 && 0 <= v20057 128.15/35.36 f_1183(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1199(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_1199(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1214(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_1214(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v9597, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1227(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_1227(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1238(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_1238(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1248(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_1248(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_1258(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_1258(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v20057, v21034, v9591, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) -> f_511(v9586, v9587, v9588, v9589, v9590, v9598, 1, v9593, 0, v9591, v20057, v21034, v9599, v9600, v9601, v9602, v9603, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_511(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_521(v1, v3, v5, v7, v10, v28, 1, v15, 0, v13, v885, v1013, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_743(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_758(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_758(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_773(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_773(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_782(v1, v3, v5, v7, v10, v1013, 1, v885, 0, v13, v28, v15, v1013, v2, v4, v6, v8, v11, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_782(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8411, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_796(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8411, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_796(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8411, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_809(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_809(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_822(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 1 + v8659 = v8407 && 0 <= v8659 128.15/35.36 f_822(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_836(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_836(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_850(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_850(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v8412, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_863(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_863(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_874(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_874(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_884(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_884(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_894(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_894(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_904(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_904(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_915(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_915(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_927(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_927(v8400, v8401, v8402, v8403, v8404, v8405, 1, v8407, 0, v8409, v8410, v8659, v9604, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_938(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_938(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_951(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: v9604 != 0 128.15/35.36 f_951(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_966(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_966(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_980(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_980(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_995(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_995(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8407, v8405, 0, v8409, v8410, v8659, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_1009(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_1009(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8) -> f_1022(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 < v8659 && 2 <= v8407 128.15/35.36 f_1022(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1034(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1034(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1047(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1047(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1060(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1060(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1074(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1074(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, v8405, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1088(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1088(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1104(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: v9604 <= 0 128.15/35.36 f_1104(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1121(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: 0 = 0 128.15/35.36 f_1121(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_1138(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) :|: TRUE 128.15/35.36 f_1138(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 2, 4, 8) -> f_713(v8400, v8401, v8402, v8403, v8404, v9604, 1, v8659, 0, v8409, v8410, v8407, v8413, v8414, v8415, v8416, v8417, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 Combined rules. Obtained 12 rulesP rules: 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, 1 + v8659:0, 0, 0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v9604:0, 1, v8659:0, 0, v7613:1, v13:0, v28:0, 1 + v8659:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) :|: v8659:0 > 0 && v9604:0 < 0 && v9604:0 < 1 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, 1 + v8659:0, 0, 0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v9604:0, 1, v8659:0, 0, v7613:1, v13:0, v28:0, 1 + v8659:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) :|: v8659:0 > 0 && v9604:0 > 0 && v9604:0 < 1 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, v9593:0, 0, v18429:0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, 1 + v9598:0, 1, v9593:0, 0, v18429:1, v9596:0, v9597:0, v9598:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) :|: v9598:0 < 1 && v9598:0 < -1 && v9598:0 < 0 && v18429:0 < 0 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, v9593:0, 0, v18429:0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, 1 + v9598:0, 1, v9593:0, 0, v18429:1, v9596:0, v9597:0, v9598:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) :|: v9598:0 < 1 && v9598:0 > -1 && v9598:0 < 0 && v18429:0 < 0 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, v9593:0, 0, v18429:0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, 1 + v9598:0, 1, v9593:0, 0, v18429:1, v9596:0, v9597:0, v9598:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) :|: v9598:0 < 1 && v9598:0 < -1 && v9598:0 < 0 && v18429:0 > 0 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, v9593:0, 0, v18429:0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, 1 + v9598:0, 1, v9593:0, 0, v18429:1, v9596:0, v9597:0, v9598:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) :|: v9598:0 < 1 && v9598:0 > -1 && v9598:0 < 0 && v18429:0 > 0 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, 1 + v20057:0, 0, 0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_726(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v21034:0, 1, v20057:0, 0, v7613:0, v9591:0, v9598:0, 1 + v20057:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 4, 8, 2) :|: v20057:0 > 0 && v21034:0 < 0 && v21034:0 < 1 128.15/35.36 f_1087(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v9598:0, 1, 1 + v20057:0, 0, 0, v9596:0, v9597:0, v9591:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 2, 4, 8) -> f_726(v9586:0, v9587:0, v9588:0, v9589:0, v9590:0, v21034:0, 1, v20057:0, 0, v7613:0, v9591:0, v9598:0, 1 + v20057:0, v9599:0, v9600:0, v9601:0, v9602:0, v9603:0, 3, 7, 4, 8, 2) :|: v20057:0 > 0 && v21034:0 > 0 && v21034:0 < 1 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, v885:0, 0, v7613:0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_1087(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v1013:0, 1, v885:0, 0, v18429:0, v15:0, v1013:0, v1013:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 2, 4, 8) :|: v7613:0 < 0 && v1013:0 < 1 && v1013:0 < -1 && v1013:0 < 0 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, v885:0, 0, v7613:0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_1087(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v1013:0, 1, v885:0, 0, v18429:0, v15:0, v1013:0, v1013:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 2, 4, 8) :|: v7613:0 < 0 && v1013:0 < 1 && v1013:0 > -1 && v1013:0 < 0 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, v885:0, 0, v7613:0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_1087(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v1013:0, 1, v885:0, 0, v18429:0, v15:0, v1013:0, v1013:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 2, 4, 8) :|: v7613:0 > 0 && v1013:0 < 1 && v1013:0 < -1 && v1013:0 < 0 128.15/35.36 f_726(v1:0, v3:0, v5:0, v7:0, v10:0, v1013:0, 1, v885:0, 0, v7613:0, v13:0, v28:0, v15:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8, 2) -> f_1087(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v1013:0, 1, v885:0, 0, v18429:0, v15:0, v1013:0, v1013:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 2, 4, 8) :|: v7613:0 > 0 && v1013:0 < 1 && v1013:0 > -1 && v1013:0 < 0 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_726(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_726(x6, x8, x10) 128.15/35.36 f_1087(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1087(x6, x8, x10) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 12 rules.P rules: 128.15/35.36 f_726(v1013:0, sum~cons_1~v8659:0, cons_0) -> f_726(v9604:0, v8659:0, v7613:1) :|: v9604:0 < 0 && v9604:0 < 1 && v8659:0 > 0 && sum~cons_1~v8659:0 = 1 + v8659:0 && cons_0 = 0 128.15/35.36 f_726(v1013:0, sum~cons_1~v8659:0, cons_0) -> f_726(v9604:0, v8659:0, v7613:1) :|: v9604:0 > 0 && v9604:0 < 1 && v8659:0 > 0 && sum~cons_1~v8659:0 = 1 + v8659:0 && cons_0 = 0 128.15/35.36 f_1087(v9598:0, v9593:0, v18429:0) -> f_1087(1 + v9598:0, v9593:0, v18429:1) :|: v9598:0 < -1 && v9598:0 < 1 && v18429:0 < 0 && v9598:0 < 0 128.15/35.36 f_1087(v9598:0, v9593:0, v18429:0) -> f_1087(1 + v9598:0, v9593:0, v18429:1) :|: v9598:0 > -1 && v9598:0 < 1 && v18429:0 < 0 && v9598:0 < 0 128.15/35.36 f_1087(v9598:0, v9593:0, v18429:0) -> f_1087(1 + v9598:0, v9593:0, v18429:1) :|: v9598:0 < -1 && v9598:0 < 1 && v18429:0 > 0 && v9598:0 < 0 128.15/35.36 f_1087(v9598:0, v9593:0, v18429:0) -> f_1087(1 + v9598:0, v9593:0, v18429:1) :|: v9598:0 > -1 && v9598:0 < 1 && v18429:0 > 0 && v9598:0 < 0 128.15/35.36 f_1087(v9598:0, sum~cons_1~v20057:0, cons_0) -> f_726(v21034:0, v20057:0, v7613:0) :|: v21034:0 < 0 && v21034:0 < 1 && v20057:0 > 0 && sum~cons_1~v20057:0 = 1 + v20057:0 && cons_0 = 0 128.15/35.36 f_1087(v9598:0, sum~cons_1~v20057:0, cons_0) -> f_726(v21034:0, v20057:0, v7613:0) :|: v21034:0 > 0 && v21034:0 < 1 && v20057:0 > 0 && sum~cons_1~v20057:0 = 1 + v20057:0 && cons_0 = 0 128.15/35.36 f_726(v1013:0, v885:0, v7613:0) -> f_1087(1 + v1013:0, v885:0, v18429:0) :|: v1013:0 < 1 && v7613:0 < 0 && v1013:0 < 0 && v1013:0 < -1 128.15/35.36 f_726(v1013:0, v885:0, v7613:0) -> f_1087(1 + v1013:0, v885:0, v18429:0) :|: v1013:0 < 1 && v7613:0 < 0 && v1013:0 < 0 && v1013:0 > -1 128.15/35.36 f_726(v1013:0, v885:0, v7613:0) -> f_1087(1 + v1013:0, v885:0, v18429:0) :|: v1013:0 < 1 && v7613:0 > 0 && v1013:0 < 0 && v1013:0 < -1 128.15/35.36 f_726(v1013:0, v885:0, v7613:0) -> f_1087(1 + v1013:0, v885:0, v18429:0) :|: v1013:0 < 1 && v7613:0 > 0 && v1013:0 < 0 && v1013:0 > -1 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (65) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_726(v1013:0, sum~cons_1~v8659:0, cons_0) -> f_726(v9604:0, v8659:0, v7613:1) :|: v9604:0 < 0 && v9604:0 < 1 && v8659:0 > 0 && sum~cons_1~v8659:0 = 1 + v8659:0 && cons_0 = 0 128.15/35.36 f_726(x, x1, x2) -> f_726(x3, x4, x5) :|: x3 > 0 && x3 < 1 && x4 > 0 && x1 = 1 + x4 && x2 = 0 128.15/35.36 f_1087(v9598:0, v9593:0, v18429:0) -> f_1087(1 + v9598:0, v9593:0, v18429:1) :|: v9598:0 < -1 && v9598:0 < 1 && v18429:0 < 0 && v9598:0 < 0 128.15/35.36 f_1087(x6, x7, x8) -> f_1087(1 + x6, x7, x9) :|: x6 > -1 && x6 < 1 && x8 < 0 && x6 < 0 128.15/35.36 f_1087(x10, x11, x12) -> f_1087(1 + x10, x11, x13) :|: x10 < -1 && x10 < 1 && x12 > 0 && x10 < 0 128.15/35.36 f_1087(x14, x15, x16) -> f_1087(1 + x14, x15, x17) :|: x14 > -1 && x14 < 1 && x16 > 0 && x14 < 0 128.15/35.36 f_1087(x18, x19, x20) -> f_726(x21, x22, x23) :|: x21 < 0 && x21 < 1 && x22 > 0 && x19 = 1 + x22 && x20 = 0 128.15/35.36 f_1087(x24, x25, x26) -> f_726(x27, x28, x29) :|: x27 > 0 && x27 < 1 && x28 > 0 && x25 = 1 + x28 && x26 = 0 128.15/35.36 f_726(x30, x31, x32) -> f_1087(1 + x30, x31, x33) :|: x30 < 1 && x32 < 0 && x30 < 0 && x30 < -1 128.15/35.36 f_726(x34, x35, x36) -> f_1087(1 + x34, x35, x37) :|: x34 < 1 && x36 < 0 && x34 < 0 && x34 > -1 128.15/35.36 f_726(x38, x39, x40) -> f_1087(1 + x38, x39, x41) :|: x38 < 1 && x40 > 0 && x38 < 0 && x38 < -1 128.15/35.36 f_726(x42, x43, x44) -> f_1087(1 + x42, x43, x45) :|: x42 < 1 && x44 > 0 && x42 < 0 && x42 > -1 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (66) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.36 128.15/35.36 (f_726_3,1) 128.15/35.36 (f_1087_3,2) 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (67) 128.15/35.36 Obligation: 128.15/35.36 START: 0; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX4 := oldX1 - 1; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX3 < 0 && oldX3 < 1 && oldX4 > 0 && oldX1 = 1 + oldX4 && oldX2 = 0); 128.15/35.36 x0 := oldX3; 128.15/35.36 x1 := oldX1 - 1; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX4 := oldX1 - 1; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX3 > 0 && oldX3 < 1 && oldX4 > 0 && oldX1 = 1 + oldX4 && oldX2 = 0); 128.15/35.36 x0 := oldX3; 128.15/35.36 x1 := oldX1 - 1; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < -1 && oldX0 < 1 && oldX2 < 0 && oldX0 < 0); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 > -1 && oldX0 < 1 && oldX2 < 0 && oldX0 < 0); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < -1 && oldX0 < 1 && oldX2 > 0 && oldX0 < 0); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 > -1 && oldX0 < 1 && oldX2 > 0 && oldX0 < 0); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX4 := oldX1 - 1; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX3 < 0 && oldX3 < 1 && oldX4 > 0 && oldX1 = 1 + oldX4 && oldX2 = 0); 128.15/35.36 x0 := oldX3; 128.15/35.36 x1 := oldX1 - 1; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 2; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX4 := oldX1 - 1; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 oldX5 := nondet(); 128.15/35.36 assume(oldX3 > 0 && oldX3 < 1 && oldX4 > 0 && oldX1 = 1 + oldX4 && oldX2 = 0); 128.15/35.36 x0 := oldX3; 128.15/35.36 x1 := oldX1 - 1; 128.15/35.36 x2 := oldX5; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < 1 && oldX2 < 0 && oldX0 < 0 && oldX0 < -1); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < 1 && oldX2 < 0 && oldX0 < 0 && oldX0 > -1); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < 1 && oldX2 > 0 && oldX0 < 0 && oldX0 < -1); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := x2; 128.15/35.36 oldX3 := nondet(); 128.15/35.36 assume(oldX0 < 1 && oldX2 > 0 && oldX0 < 0 && oldX0 > -1); 128.15/35.36 x0 := 1 + oldX0; 128.15/35.36 x1 := oldX1; 128.15/35.36 x2 := oldX3; 128.15/35.36 TO: 2; 128.15/35.36 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (68) T2 (EQUIVALENT) 128.15/35.36 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.36 * Removed transitions 2, 5, 6, 7, 8, 9, 10, 26, 29, 30, 31, 32, 33, 34 using the following rank functions: 128.15/35.36 - Rank function 1: 128.15/35.36 RF for loc. 6: 4+5*x1 128.15/35.36 RF for loc. 7: 5*x1 128.15/35.36 RF for loc. 8: 3+5*x1 128.15/35.36 RF for loc. 12: 5*x1 128.15/35.36 Bound for (chained) transitions 5: 13 128.15/35.36 Bound for (chained) transitions 33: 10 128.15/35.36 Bound for (chained) transitions 34: 10 128.15/35.36 - Rank function 2: 128.15/35.36 RF for loc. 6: 2 128.15/35.36 RF for loc. 7: 0 128.15/35.36 RF for loc. 8: 1 128.15/35.36 RF for loc. 12: 0 128.15/35.36 Bound for (chained) transitions 2: 2 128.15/35.36 Bound for (chained) transitions 6: 1 128.15/35.36 Bound for (chained) transitions 7: 1 128.15/35.36 Bound for (chained) transitions 8: 1 128.15/35.36 Bound for (chained) transitions 9: 1 128.15/35.36 Bound for (chained) transitions 10: 1 128.15/35.36 Bound for (chained) transitions 30: 0 128.15/35.36 Bound for (chained) transitions 32: 0 128.15/35.36 - Rank function 3: 128.15/35.36 RF for loc. 7: 1-2*x0 128.15/35.36 RF for loc. 12: -2*x0 128.15/35.36 Bound for (chained) transitions 29: 0 128.15/35.36 Bound for (chained) transitions 31: 0 128.15/35.36 - Rank function 4: 128.15/35.36 RF for loc. 7: 1 128.15/35.36 RF for loc. 12: 0 128.15/35.36 Bound for (chained) transitions 26: 1 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (69) 128.15/35.36 YES 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (70) 128.15/35.36 Obligation: 128.15/35.36 SCC 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (71) SCC2IRS (SOUND) 128.15/35.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.36 Generated rules. Obtained 27 rulesP rules: 128.15/35.36 f_489(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_500(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_500(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_510(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_510(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_520(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_520(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_530(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_530(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_540(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_540(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_550(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_550(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_560(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_560(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_570(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 < v883 && 2 <= v15 128.15/35.36 f_570(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_582(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_582(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_594(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_594(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_606(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_606(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_619(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_619(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_633(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_633(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_645(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_645(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_657(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_657(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_667(v1, v3, v5, v7, v10, 1, v883, v25, 0, v6509, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_667(v1, v3, v5, v7, v10, 1, v883, v25, 0, v6509, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_678(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v6509 = 0 128.15/35.36 f_678(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_687(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_687(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_698(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_698(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_711(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_711(v1, v3, v5, v7, v10, 1, v883, v25, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_724(v1, v3, v5, v7, v10, 1, v883, v25, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_724(v1, v3, v5, v7, v10, 1, v883, v25, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_739(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 1 + v7833 = v883 && 0 <= v7833 128.15/35.36 f_739(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_754(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_754(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_769(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_769(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_786(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_786(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_477(v1, v3, v5, v7, v10, 1, v883, v25, 0, v7833, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_477(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_489(v1, v3, v5, v7, v10, 1, v15, v25, 0, v883, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 Combined rules. Obtained 1 rulesP rules: 128.15/35.36 f_489(v1:0, v3:0, v5:0, v7:0, v10:0, 1, v15:0, v25:0, 0, 1 + v7833:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_489(v1:0, v3:0, v5:0, v7:0, v10:0, 1, 1 + v7833:0, v25:0, 0, v7833:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v15:0 > 1 && v7833:0 > -1 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_489(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_489(x7, x10) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.15/35.36 f_489(v15:0, sum~cons_1~v7833:0) -> f_489(1 + v7833:0, v7833:0) :|: v15:0 > 1 && v7833:0 > -1 && sum~cons_1~v7833:0 = 1 + v7833:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (72) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_489(v15:0, sum~cons_1~v7833:0) -> f_489(1 + v7833:0, v7833:0) :|: v15:0 > 1 && v7833:0 > -1 && sum~cons_1~v7833:0 = 1 + v7833:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (73) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.15/35.36 128.15/35.36 (f_489_2,1) 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (74) 128.15/35.36 Obligation: 128.15/35.36 START: 0; 128.15/35.36 128.15/35.36 FROM: 0; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 FROM: 1; 128.15/35.36 oldX0 := x0; 128.15/35.36 oldX1 := x1; 128.15/35.36 oldX2 := oldX1 - 1; 128.15/35.36 assume(oldX0 > 1 && oldX2 > -1 && oldX1 = 1 + oldX2); 128.15/35.36 x0 := 1 + oldX2; 128.15/35.36 x1 := oldX1 - 1; 128.15/35.36 TO: 1; 128.15/35.36 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (75) T2 (EQUIVALENT) 128.15/35.36 Initially, performed program simplifications using lexicographic rank functions: 128.15/35.36 * Removed transitions 1, 3, 4 using the following rank functions: 128.15/35.36 - Rank function 1: 128.15/35.36 RF for loc. 5: 1+2*x1 128.15/35.36 RF for loc. 6: 2*x1 128.15/35.36 Bound for (chained) transitions 3: 2 128.15/35.36 Bound for (chained) transitions 4: 2 128.15/35.36 - Rank function 2: 128.15/35.36 RF for loc. 5: 0 128.15/35.36 RF for loc. 6: -1 128.15/35.36 Bound for (chained) transitions 1: 0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (76) 128.15/35.36 YES 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (77) 128.15/35.36 Obligation: 128.15/35.36 SCC 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (78) SCC2IRS (SOUND) 128.15/35.36 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.15/35.36 Generated rules. Obtained 32 rulesP rules: 128.15/35.36 f_295(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_300(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_300(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_305(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_305(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_310(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_310(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_316(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v35 != 0 128.15/35.36 f_316(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_324(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_324(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_331(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_331(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_338(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_338(v1, v3, v5, v7, v10, v35, 1, v15, v13, 0, v29, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_345(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_345(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_352(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 < v29 && 2 <= v15 128.15/35.36 f_352(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_358(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_358(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_365(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_365(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_372(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_372(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_379(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_379(v1, v3, v5, v7, v10, v35, 1, v29, v13, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_386(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_386(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_395(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v35 <= 0 128.15/35.36 f_395(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_404(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_404(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_413(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_413(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_423(v1, v3, v5, v7, v10, v35, 1, v29, 0, v852, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_423(v1, v3, v5, v7, v10, v35, 1, v29, 0, v852, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_435(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v852 = 0 128.15/35.36 f_435(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_447(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_447(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_459(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.15/35.36 f_459(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_471(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.15/35.36 f_471(v1, v3, v5, v7, v10, v35, 1, v29, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_483(v1, v3, v5, v7, v10, v35, 1, v29, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_483(v1, v3, v5, v7, v10, v35, 1, v29, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_495(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 1 + v1126 = v29 && 0 <= v1126 128.15/35.36 f_495(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_505(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_505(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_515(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_515(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_525(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_525(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_535(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.15/35.36 f_535(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_545(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_545(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_555(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_555(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_291(v1, v3, v5, v7, v10, v35, 1, v29, 0, v1126, v1651, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 f_291(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_295(v1, v3, v5, v7, v10, v13, 1, v15, 0, v29, v35, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.15/35.36 Combined rules. Obtained 2 rulesP rules: 128.15/35.36 f_295(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, 1 + v1126:0, v35:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_295(v1:0, v3:0, v5:0, v7:0, v10:0, v35:0, 1, 1 + v1126:0, 0, v1126:0, v1651:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v35:0 < 0 && v15:0 > 1 && v1126:0 > -1 && v35:0 < 1 128.15/35.36 f_295(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, 1 + v1126:0, v35:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_295(v1:0, v3:0, v5:0, v7:0, v10:0, v35:0, 1, 1 + v1126:0, 0, v1126:0, v1651:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v35:0 > 0 && v15:0 > 1 && v1126:0 > -1 && v35:0 < 1 128.15/35.36 Filtered unneeded arguments: 128.15/35.36 f_295(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_295(x8, x10, x11) 128.15/35.36 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 128.15/35.36 f_295(v15:0, sum~cons_1~v1126:0, v35:0) -> f_295(1 + v1126:0, v1126:0, v1651:0) :|: v15:0 > 1 && v35:0 < 0 && v35:0 < 1 && v1126:0 > -1 && sum~cons_1~v1126:0 = 1 + v1126:0 128.15/35.36 f_295(v15:0, sum~cons_1~v1126:0, v35:0) -> f_295(1 + v1126:0, v1126:0, v1651:0) :|: v15:0 > 1 && v35:0 > 0 && v35:0 < 1 && v1126:0 > -1 && sum~cons_1~v1126:0 = 1 + v1126:0 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (79) 128.15/35.36 Obligation: 128.15/35.36 Rules: 128.15/35.36 f_295(v15:0, sum~cons_1~v1126:0, v35:0) -> f_295(1 + v1126:0, v1126:0, v1651:0) :|: v15:0 > 1 && v35:0 < 0 && v35:0 < 1 && v1126:0 > -1 && sum~cons_1~v1126:0 = 1 + v1126:0 128.15/35.36 f_295(x, x1, x2) -> f_295(1 + x3, x3, x4) :|: x > 1 && x2 > 0 && x2 < 1 && x3 > -1 && x1 = 1 + x3 128.15/35.36 128.15/35.36 ---------------------------------------- 128.15/35.36 128.15/35.36 (80) IRS2T2 (EQUIVALENT) 128.15/35.36 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.38/35.39 128.38/35.39 (f_295_3,1) 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (81) 128.38/35.39 Obligation: 128.38/35.39 START: 0; 128.38/35.39 128.38/35.39 FROM: 0; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 oldX2 := x2; 128.38/35.39 oldX3 := oldX1 - 1; 128.38/35.39 oldX4 := nondet(); 128.38/35.39 assume(oldX0 > 1 && oldX2 < 0 && oldX2 < 1 && oldX3 > -1 && oldX1 = 1 + oldX3); 128.38/35.39 x0 := 1 + oldX3; 128.38/35.39 x1 := oldX1 - 1; 128.38/35.39 x2 := oldX4; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 oldX2 := x2; 128.38/35.39 oldX3 := oldX1 - 1; 128.38/35.39 oldX4 := nondet(); 128.38/35.39 assume(oldX0 > 1 && oldX2 > 0 && oldX2 < 1 && oldX3 > -1 && oldX1 = 1 + oldX3); 128.38/35.39 x0 := 1 + oldX3; 128.38/35.39 x1 := oldX1 - 1; 128.38/35.39 x2 := oldX4; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (82) T2 (EQUIVALENT) 128.38/35.39 Initially, performed program simplifications using lexicographic rank functions: 128.38/35.39 * Removed transitions 1, 4, 5 using the following rank functions: 128.38/35.39 - Rank function 1: 128.38/35.39 RF for loc. 5: 1+2*x1 128.38/35.39 RF for loc. 6: 2*x1 128.38/35.39 Bound for (chained) transitions 4: 2 128.38/35.39 Bound for (chained) transitions 5: 2 128.38/35.39 - Rank function 2: 128.38/35.39 RF for loc. 5: 1 128.38/35.39 RF for loc. 6: 0 128.38/35.39 Bound for (chained) transitions 1: 1 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (83) 128.38/35.39 YES 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (84) 128.38/35.39 Obligation: 128.38/35.39 SCC 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (85) SCC2IRS (SOUND) 128.38/35.39 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.38/35.39 Generated rules. Obtained 31 rulesP rules: 128.38/35.39 f_292(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_296(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_296(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_301(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_301(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_306(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_306(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_311(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: v26 != 0 && 2 <= v13 128.38/35.39 f_311(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_318(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_318(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_326(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_326(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_333(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_333(v1, v3, v5, v7, v10, v26, 1, v15, v13, v24, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_340(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_340(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_347(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 < v34 128.38/35.39 f_347(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_354(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_354(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_360(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_360(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_367(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_367(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_374(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_374(v1, v3, v5, v7, v10, v26, 1, v34, v13, v24, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_381(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_381(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_387(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_387(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_396(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_396(v1, v3, v5, v7, v10, v26, 1, v34, v24, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_405(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_405(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_414(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: v802 != 0 128.38/35.39 f_414(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_424(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_424(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_436(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_436(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_448(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_448(v1, v3, v5, v7, v10, v26, 1, v34, v802, v13, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8, 2) -> f_460(v1, v3, v5, v7, v10, v26, 1, v34, v802, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_460(v1, v3, v5, v7, v10, v26, 1, v34, v802, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_472(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 1 + v965 = v26 && 0 <= v965 128.38/35.39 f_472(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_484(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_484(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_496(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_496(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_506(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_506(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_516(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_516(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_526(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_526(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_536(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_536(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_288(v1, v3, v5, v7, v10, v26, 1, v34, v802, v965, v1194, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_288(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) -> f_292(v1, v3, v5, v7, v10, v13, 1, v15, v24, v26, v34, v2, v4, v6, v8, v11, 0, 3, 7, 4, 8) :|: TRUE 128.38/35.39 Combined rules. Obtained 2 rulesP rules: 128.38/35.39 f_292(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, v24:0, 1 + v965:0, v34:0, v2:0, v4:0, v6:0, v8:0, v11:0, 0, 3, 7, 4, 8) -> f_292(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v965:0, 1, v34:0, v802:0, v965:0, v1194:0, v2:0, v4:0, v6:0, v8:0, v11:0, 0, 3, 7, 4, 8) :|: v13:0 > 1 && v965:0 > -1 && v34:0 > 0 && v802:0 < 0 128.38/35.39 f_292(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, v24:0, 1 + v965:0, v34:0, v2:0, v4:0, v6:0, v8:0, v11:0, 0, 3, 7, 4, 8) -> f_292(v1:0, v3:0, v5:0, v7:0, v10:0, 1 + v965:0, 1, v34:0, v802:0, v965:0, v1194:0, v2:0, v4:0, v6:0, v8:0, v11:0, 0, 3, 7, 4, 8) :|: v13:0 > 1 && v965:0 > -1 && v34:0 > 0 && v802:0 > 0 128.38/35.39 Filtered unneeded arguments: 128.38/35.39 f_292(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_292(x6, x10, x11) 128.38/35.39 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.38/35.39 f_292(v13:0, sum~cons_1~v965:0, v34:0) -> f_292(1 + v965:0, v965:0, v1194:0) :|: v965:0 > -1 && v34:0 > 0 && v13:0 > 1 && sum~cons_1~v965:0 = 1 + v965:0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (86) 128.38/35.39 Obligation: 128.38/35.39 Rules: 128.38/35.39 f_292(v13:0, sum~cons_1~v965:0, v34:0) -> f_292(1 + v965:0, v965:0, v1194:0) :|: v965:0 > -1 && v34:0 > 0 && v13:0 > 1 && sum~cons_1~v965:0 = 1 + v965:0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (87) IRS2T2 (EQUIVALENT) 128.38/35.39 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.38/35.39 128.38/35.39 (f_292_3,1) 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (88) 128.38/35.39 Obligation: 128.38/35.39 START: 0; 128.38/35.39 128.38/35.39 FROM: 0; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 oldX2 := x2; 128.38/35.39 oldX3 := oldX1 - 1; 128.38/35.39 oldX4 := nondet(); 128.38/35.39 assume(oldX3 > -1 && oldX2 > 0 && oldX0 > 1 && oldX1 = 1 + oldX3); 128.38/35.39 x0 := 1 + oldX3; 128.38/35.39 x1 := oldX1 - 1; 128.38/35.39 x2 := oldX4; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (89) T2 (EQUIVALENT) 128.38/35.39 Initially, performed program simplifications using lexicographic rank functions: 128.38/35.39 * Removed transitions 1, 3, 4 using the following rank functions: 128.38/35.39 - Rank function 1: 128.38/35.39 RF for loc. 5: 1+2*x1 128.38/35.39 RF for loc. 6: 2*x1 128.38/35.39 Bound for (chained) transitions 3: 2 128.38/35.39 Bound for (chained) transitions 4: 2 128.38/35.39 - Rank function 2: 128.38/35.39 RF for loc. 5: 0 128.38/35.39 RF for loc. 6: -1 128.38/35.39 Bound for (chained) transitions 1: 0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (90) 128.38/35.39 YES 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (91) 128.38/35.39 Obligation: 128.38/35.39 SCC 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (92) SCC2IRS (SOUND) 128.38/35.39 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.38/35.39 Generated rules. Obtained 27 rulesP rules: 128.38/35.39 f_289(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_293(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_293(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_297(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_297(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_302(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_302(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_307(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_307(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_313(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_313(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_320(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 < v27 && 2 <= v15 128.38/35.39 f_320(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_328(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_328(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_335(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_335(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_342(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_342(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_349(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_349(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_356(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_356(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_362(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_362(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_369(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_369(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_376(v1, v3, v5, v7, v10, v13, 1, v27, v778, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_376(v1, v3, v5, v7, v10, v13, 1, v27, v778, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_383(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: v778 = 0 128.38/35.39 f_383(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_389(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_389(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_398(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: TRUE 128.38/35.39 f_398(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_407(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) :|: 0 = 0 128.38/35.39 f_407(v1, v3, v5, v7, v10, v13, 1, v27, 0, v15, v2, v4, v6, v8, v11, 3, 7, 4, 8, 2) -> f_417(v1, v3, v5, v7, v10, v13, 1, v27, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_417(v1, v3, v5, v7, v10, v13, 1, v27, 0, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_427(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 1 + v854 = v27 && 0 <= v854 128.38/35.39 f_427(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_439(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_439(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_451(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_451(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_463(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_463(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_475(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_475(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_487(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_487(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_285(v1, v3, v5, v7, v10, v13, 1, v27, 0, v854, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_285(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_289(v1, v3, v5, v7, v10, v13, 1, v15, 0, v27, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 Combined rules. Obtained 1 rulesP rules: 128.38/35.39 f_289(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, 1 + v854:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_289(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, 1 + v854:0, 0, v854:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v15:0 > 1 && v854:0 > -1 128.38/35.39 Filtered unneeded arguments: 128.38/35.39 f_289(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_289(x8, x10) 128.38/35.39 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 128.38/35.39 f_289(v15:0, sum~cons_1~v854:0) -> f_289(1 + v854:0, v854:0) :|: v15:0 > 1 && v854:0 > -1 && sum~cons_1~v854:0 = 1 + v854:0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (93) 128.38/35.39 Obligation: 128.38/35.39 Rules: 128.38/35.39 f_289(v15:0, sum~cons_1~v854:0) -> f_289(1 + v854:0, v854:0) :|: v15:0 > 1 && v854:0 > -1 && sum~cons_1~v854:0 = 1 + v854:0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (94) IRS2T2 (EQUIVALENT) 128.38/35.39 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.38/35.39 128.38/35.39 (f_289_2,1) 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (95) 128.38/35.39 Obligation: 128.38/35.39 START: 0; 128.38/35.39 128.38/35.39 FROM: 0; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 oldX2 := oldX1 - 1; 128.38/35.39 assume(oldX0 > 1 && oldX2 > -1 && oldX1 = 1 + oldX2); 128.38/35.39 x0 := 1 + oldX2; 128.38/35.39 x1 := oldX1 - 1; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (96) T2 (EQUIVALENT) 128.38/35.39 Initially, performed program simplifications using lexicographic rank functions: 128.38/35.39 * Removed transitions 1, 3, 4 using the following rank functions: 128.38/35.39 - Rank function 1: 128.38/35.39 RF for loc. 5: 1+2*x1 128.38/35.39 RF for loc. 6: 2*x1 128.38/35.39 Bound for (chained) transitions 3: 2 128.38/35.39 Bound for (chained) transitions 4: 2 128.38/35.39 - Rank function 2: 128.38/35.39 RF for loc. 5: 0 128.38/35.39 RF for loc. 6: -1 128.38/35.39 Bound for (chained) transitions 1: 0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (97) 128.38/35.39 YES 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (98) 128.38/35.39 Obligation: 128.38/35.39 SCC 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (99) SCC2IRS (SOUND) 128.38/35.39 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 128.38/35.39 Generated rules. Obtained 28 rulesP rules: 128.38/35.39 f_286(v1, v3, v5, v7, v10, v13, 1, v15, 0, v25, v28, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_290(v1, v3, v5, v7, v10, v13, 1, v15, 0, v25, v28, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_290(v1, v3, v5, v7, v10, v13, 1, v15, 0, v25, v28, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_294(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_294(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_298(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v28 != 0 128.38/35.39 f_298(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_303(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_303(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_308(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_308(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_314(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_314(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_322(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_322(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_330(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_330(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_337(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_337(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_344(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_344(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_351(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_351(v1, v3, v5, v7, v10, v28, 1, v15, v13, 0, v25, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_357(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_357(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_364(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v28 <= 0 && 1 + v13 <= 0 128.38/35.39 f_364(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_371(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_371(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_378(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_378(v1, v3, v5, v7, v10, v28, 1, v15, 0, v25, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_385(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_385(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_392(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v788 != 0 128.38/35.39 f_392(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_401(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_401(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_410(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_410(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_420(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_420(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v13, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_430(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_430(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_442(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: v884 = 1 + v28 && v884 <= 1 128.38/35.39 f_442(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_454(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: 0 = 0 128.38/35.39 f_454(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_466(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_466(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_478(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_478(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_490(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_490(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_282(v1, v3, v5, v7, v10, v28, 1, v15, 0, v788, v884, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 f_282(v1, v3, v5, v7, v10, v13, 1, v15, 0, v25, v28, v2, v4, v6, v8, v11, 3, 7, 4, 8) -> f_286(v1, v3, v5, v7, v10, v13, 1, v15, 0, v25, v28, v2, v4, v6, v8, v11, 3, 7, 4, 8) :|: TRUE 128.38/35.39 Combined rules. Obtained 4 rulesP rules: 128.38/35.39 f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, v25:0, v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v28:0, 1, v15:0, 0, v788:0, 1 + v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v28:0 < 0 && v13:0 < 0 && v28:0 < 1 && v788:0 < 0 128.38/35.39 f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, v25:0, v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v28:0, 1, v15:0, 0, v788:0, 1 + v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v28:0 < 0 && v13:0 < 0 && v28:0 < 1 && v788:0 > 0 128.38/35.39 f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, v25:0, v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v28:0, 1, v15:0, 0, v788:0, 1 + v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v28:0 > 0 && v13:0 < 0 && v28:0 < 1 && v788:0 < 0 128.38/35.39 f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v13:0, 1, v15:0, 0, v25:0, v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) -> f_286(v1:0, v3:0, v5:0, v7:0, v10:0, v28:0, 1, v15:0, 0, v788:0, 1 + v28:0, v2:0, v4:0, v6:0, v8:0, v11:0, 3, 7, 4, 8) :|: v28:0 > 0 && v13:0 < 0 && v28:0 < 1 && v788:0 > 0 128.38/35.39 Filtered unneeded arguments: 128.38/35.39 f_286(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_286(x6, x11) 128.38/35.39 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 128.38/35.39 f_286(v13:0, v28:0) -> f_286(v28:0, 1 + v28:0) :|: v13:0 < 0 && v28:0 < 1 && v28:0 < 0 128.38/35.39 f_286(v13:0, v28:0) -> f_286(v28:0, 1 + v28:0) :|: v13:0 < 0 && v28:0 < 1 && v28:0 > 0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (100) 128.38/35.39 Obligation: 128.38/35.39 Rules: 128.38/35.39 f_286(v13:0, v28:0) -> f_286(v28:0, 1 + v28:0) :|: v13:0 < 0 && v28:0 < 1 && v28:0 < 0 128.38/35.39 f_286(x, x1) -> f_286(x1, 1 + x1) :|: x < 0 && x1 < 1 && x1 > 0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (101) IRS2T2 (EQUIVALENT) 128.38/35.39 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 128.38/35.39 128.38/35.39 (f_286_2,1) 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (102) 128.38/35.39 Obligation: 128.38/35.39 START: 0; 128.38/35.39 128.38/35.39 FROM: 0; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 assume(oldX0 < 0 && oldX1 < 1 && oldX1 < 0); 128.38/35.39 x0 := oldX1; 128.38/35.39 x1 := 1 + oldX1; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 FROM: 1; 128.38/35.39 oldX0 := x0; 128.38/35.39 oldX1 := x1; 128.38/35.39 assume(oldX0 < 0 && oldX1 < 1 && oldX1 > 0); 128.38/35.39 x0 := oldX1; 128.38/35.39 x1 := 1 + oldX1; 128.38/35.39 TO: 1; 128.38/35.39 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (103) T2 (EQUIVALENT) 128.38/35.39 Initially, performed program simplifications using lexicographic rank functions: 128.38/35.39 * Removed transitions 1, 4, 5 using the following rank functions: 128.38/35.39 - Rank function 1: 128.38/35.39 RF for loc. 5: 1-2*x1 128.38/35.39 RF for loc. 6: -2*x1 128.38/35.39 Bound for (chained) transitions 4: 0 128.38/35.39 Bound for (chained) transitions 5: 0 128.38/35.39 - Rank function 2: 128.38/35.39 RF for loc. 5: 0 128.38/35.39 RF for loc. 6: -1 128.38/35.39 Bound for (chained) transitions 1: 0 128.38/35.39 128.38/35.39 ---------------------------------------- 128.38/35.39 128.38/35.39 (104) 128.38/35.39 YES 128.48/36.44 EOF