/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 177 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 68.4 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 141 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 1076 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 149 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 853 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 75 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 831 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 73 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 2 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 45 ms] (37) IntTRS (38) IRS2T2 [EQUIVALENT, 0 ms] (39) T2IntSys (40) T2 [EQUIVALENT, 1 ms] (41) YES (42) LLVM Symbolic Execution SCC (43) SCC2IRS [SOUND, 90 ms] (44) IntTRS (45) IRS2T2 [EQUIVALENT, 0 ms] (46) T2IntSys (47) T2 [EQUIVALENT, 2 ms] (48) YES (49) LLVM Symbolic Execution SCC (50) SCC2IRS [SOUND, 109 ms] (51) IntTRS (52) IRS2T2 [EQUIVALENT, 0 ms] (53) T2IntSys (54) T2 [EQUIVALENT, 843 ms] (55) YES (56) LLVM Symbolic Execution SCC (57) SCC2IRS [SOUND, 30 ms] (58) IntTRS (59) IRS2T2 [EQUIVALENT, 0 ms] (60) T2IntSys (61) T2 [EQUIVALENT, 1 ms] (62) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "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" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %i = alloca i32, align 4 %j = alloca i32, align 4 %val = alloca i32, align 4 %length = alloca i32, align 4 %arr = alloca *i32, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %length %3 = load %length %4 = icmp slt %3 1 br %4, %5, %6 5: store 1, %length br %6 6: %7 = load %length %8 = sext i32 %7 to i64 %9 = mul %8 4 %10 = alloca i8, numElementsLit: %9 %11 = bitcast *i8 %10 to *i32 store %11, %arr %12 = load %arr %13 = icmp ne %12 null br %13, %15, %14 14: store 0, %1 br %59 15: store 0, %i br %16 16: %17 = load %i %18 = load %length %19 = icmp slt %17 %18 br %19, %20, %34 20: %21 = call i32 @__VERIFIER_nondet_int() store %21, %val %22 = load %val %23 = icmp slt %22 0 br %23, %24, %25 24: store 0, %val br %25 25: %26 = load %val %27 = load %i %28 = sext i32 %27 to i64 %29 = load %arr %30 = getelementptr %29, %28 store %26, %30 br %31 31: %32 = load %i %33 = add %32 1 store %33, %i br %16 34: store 0, %j br %35 35: %36 = load %j %37 = load %length %38 = icmp slt %36 %37 br %38, %39, %58 39: br %40 40: %41 = load %j %42 = sext i32 %41 to i64 %43 = load %arr %44 = getelementptr %43, %42 %45 = load %44 %46 = icmp sgt %45 0 br %46, %47, %54 47: %48 = load %j %49 = sext i32 %48 to i64 %50 = load %arr %51 = getelementptr %50, %49 %52 = load %51 %53 = add %52 -1 store %53, %51 br %40 54: br %55 55: %56 = load %j %57 = add %56 1 store %57, %j br %35 58: store 0, %1 br %59 59: %60 = load %1 ret %60 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 8 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 58 rulesP rules: f_2576(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2581(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2581(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2585(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: v32988 < v32975 f_2585(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2590(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2590(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2594(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: TRUE f_2594(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2598(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: TRUE f_2598(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2602(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2602(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2605(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32984, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2605(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32984, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2608(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32984, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2608(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32984, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2610(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, 3, 7, 4, 2, 5, 8) :|: v34175 = v32978 + 4 * v32988 && 5 <= v34175 f_2610(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v32985, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, 3, 7, 4, 2, 5, 8) -> f_2613(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: TRUE f_2613(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2616(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: 0 < v34176 f_2613(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2617(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: v34176 <= 0 f_2616(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2620(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2620(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2622(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: TRUE f_2622(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2623(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, 1, 0, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v34655, v34656, 3, 7, 4, 2, 5, 8) :|: TRUE f_2623(v34626, v34627, v34628, v34629, v34630, v34631, v34632, 0, v34634, v34635, 1, v34637, v34638, v34639, v34640, v34641, v34642, v34643, v34644, v34645, v34646, v34647, v34648, v34649, v34650, v34651, v34652, v34653, v34654, v34655, v34656, 3, 7, 4, 2, 5, 8) -> f_2650(v34626, v34627, v34628, v34629, v34630, v34631, v34632, 0, v34634, v34635, 1, v34637, v34638, v34639, v34640, v34641, v34642, v34643, v34644, v34645, v34646, v34647, v34648, v34649, v34650, v34651, v34652, v34653, v34654, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: TRUE f_2650(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35455, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2652(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35455, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2652(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35455, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2654(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2654(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2656(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2656(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35456, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2658(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: v35453 = v35447 + 4 * v35452 f_2658(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35457, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2660(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2660(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35458, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2662(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35458, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: 1 + v35908 = v35454 && 0 <= v35908 f_2662(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35456, v35458, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2664(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: TRUE f_2664(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2666(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: TRUE f_2666(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35908, v35459, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35467, v35468, 3, 7, 4, 2, 5, 8) -> f_2639(v35438, v35439, v35440, v35441, v35442, v35443, v35444, 0, v35446, v35447, 1, v35449, v35450, v35451, v35452, v35453, v35454, v35459, v35908, v35460, v35461, v35462, v35463, v35464, v35465, v35466, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2639(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2640(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2640(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2641(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2641(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2642(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2642(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2643(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: v35280 = v35274 + 4 * v35279 f_2643(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35281, v35282, v35283, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2644(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2644(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2645(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 < v35283 && 2 <= v35281 f_2644(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2646(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: v35283 <= 0 && v35281 = 1 && v35283 = 0 && 0 = 0 f_2645(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2647(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2647(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2649(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2649(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35282, v35281, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2650(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35283, v35279, v35280, v35281, v35283, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35467, v35468, 3, 7, 4, 2, 5, 8) :|: TRUE f_2646(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2648(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2648(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2651(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2651(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2653(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2653(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35282, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2655(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2655(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2657(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: v35767 = 1 + v35279 && 2 <= v35767 f_2657(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2659(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2659(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2661(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: TRUE f_2661(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35279, v35280, v35767, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2663(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2663(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2665(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2665(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 5, 8) -> f_2667(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) :|: v35767 < v35271 && 3 <= v35271 && 2 <= v35277 && 9 <= v35278 && 12 <= v35290 f_2667(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) -> f_2669(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) :|: 0 = 0 f_2669(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) -> f_2671(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) :|: TRUE f_2671(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, v35291, v35292, 3, 7, 4, 2, 9, 5, 8, 12) -> f_2594(v35265, v35266, v35267, v35268, v35269, v35270, v35271, 0, v35273, v35274, 1, v35276, v35277, v35278, v35767, v35279, v35280, 0, v35279, v35280, v35284, v35285, v35286, v35287, v35288, v35289, v35290, 3, 7, 4, 2, 5, 8) :|: TRUE f_2617(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2621(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2621(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2624(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) :|: TRUE f_2624(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v32984, v32985, 3, 7, 4, 2, 5, 8) -> f_2625(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v34175, v34176, v32986, v32987, v32983, v32989, v32990, v32991, v32992, v32993, v32994, v32995, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2625(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34828, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2627(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34828, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2627(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34828, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2629(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2629(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2631(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: v34958 = 1 + v34823 && 2 <= v34958 f_2631(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2633(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2633(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2635(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2635(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, v34836, v34837, 3, 7, 4, 2, 5, 8) -> f_2572(v34809, v34810, v34811, v34812, v34813, v34814, v34815, 0, v34817, v34818, 1, v34820, v34821, v34822, v34823, v34824, v34825, v34826, v34827, v34958, v34829, v34830, v34831, v34832, v34833, v34834, v34835, 3, 7, 4, 2, 5, 8) :|: TRUE f_2572(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32983, v32984, v32985, v32986, v32987, v32988, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) -> f_2576(v32969, v32970, v32971, v32972, v32973, v32974, v32975, 0, v32977, v32978, 1, v32980, v32981, v32982, v32988, v32983, v32984, v32985, v32986, v32987, v32989, v32990, v32991, v32992, v32993, v32994, v32995, 3, 7, 4, 2, 5, 8) :|: 0 = 0 Combined rules. Obtained 4 rulesP rules: f_2613(v32969:0, v32970:0, v32971:0, v32972:0, v32973:0, v32974:0, v32975:0, 0, v32977:0, v32978:0, 1, v32980:0, v32981:0, v32982:0, v32988:0, v34175:0, v34176:0, v32986:0, v32987:0, v32983:0, v32989:0, v32990:0, v32991:0, v32992:0, v32993:0, v32994:0, v32995:0, v32984:0, v32985:0, 3, 7, 4, 2, 5, 8) -> f_2613(v32969:0, v32970:0, v32971:0, v32972:0, v32973:0, v32974:0, v32975:0, 0, v32977:0, v32978:0, 1, v32980:0, v32981:0, v32982:0, 1 + v32988:0, v32978:0 + 4 * (1 + v32988:0), v34176:1, v32986:0, v32987:0, v32988:0, v32989:0, v32990:0, v32991:0, v32992:0, v32993:0, v32994:0, v32995:0, v34175:0, v34176:0, 3, 7, 4, 2, 5, 8) :|: v34176:0 < 1 && v32975:0 > 1 + v32988:0 && v32978:0 + 4 * (1 + v32988:0) > 4 && v32988:0 > 0 f_2644(v35265:0, v35266:0, v35267:0, v35268:0, v35269:0, v35270:0, v35271:0, 0, v35273:0, v35274:0, 1, v35276:0, v35277:0, v35278:0, v35279:0, v35280:0, 0, v35282:0, 1, v35284:0, v35285:0, v35286:0, v35287:0, v35288:0, v35289:0, v35290:0, v35291:0, v35292:0, 3, 7, 4, 2, 5, 8) -> f_2613(v35265:0, v35266:0, v35267:0, v35268:0, v35269:0, v35270:0, v35271:0, 0, v35273:0, v35274:0, 1, v35276:0, v35277:0, v35278:0, 1 + v35279:0, v35274:0 + 4 * (1 + v35279:0), v34176:0, v35279:0, v35280:0, v35279:0, v35284:0, v35285:0, v35286:0, v35287:0, v35288:0, v35289:0, v35290:0, v35280:0, 0, 3, 7, 4, 2, 5, 8) :|: v35279:0 > 0 && v35271:0 > 2 && v35271:0 > 1 + v35279:0 && v35277:0 > 1 && v35278:0 > 8 && v35274:0 + 4 * (1 + v35279:0) > 4 && v35290:0 > 11 f_2613(v32969:0, v32970:0, v32971:0, v32972:0, v32973:0, v32974:0, v32975:0, 0, v32977:0, v32978:0, 1, v32980:0, v32981:0, v32982:0, v32988:0, v32978:0 + 4 * v32988:0, 1 + v35908:0, v32986:0, v32987:0, v32983:0, v32989:0, v32990:0, v32991:0, v32992:0, v32993:0, v32994:0, v32995:0, v32984:0, v32985:0, 3, 7, 4, 2, 5, 8) -> f_2644(v32969:0, v32970:0, v32971:0, v32972:0, v32973:0, v32974:0, v32975:0, 0, v32977:0, v32978:0, 1, v32980:0, v32981:0, v32982:0, v32988:0, v32978:0 + 4 * v32988:0, v35908:0, v32983:0, 1 + v35908:0, v32989:0, v32990:0, v32991:0, v32992:0, v32993:0, v32994:0, v32995:0, v35291:0, v35292:0, 3, 7, 4, 2, 5, 8) :|: v35908:0 > -1 f_2644(v35265:0, v35266:0, v35267:0, v35268:0, v35269:0, v35270:0, v35271:0, 0, v35273:0, v35274:0, 1, v35276:0, v35277:0, v35278:0, v35279:0, v35274:0 + 4 * v35279:0, 1 + v35908:0, v35282:0, v35281:0, v35284:0, v35285:0, v35286:0, v35287:0, v35288:0, v35289:0, v35290:0, v35291:0, v35292:0, 3, 7, 4, 2, 5, 8) -> f_2644(v35265:0, v35266:0, v35267:0, v35268:0, v35269:0, v35270:0, v35271:0, 0, v35273:0, v35274:0, 1, v35276:0, v35277:0, v35278:0, v35279:0, v35274:0 + 4 * v35279:0, v35908:0, v35282:0, 1 + v35908:0, v35284:0, v35285:0, v35286:0, v35287:0, v35288:0, v35289:0, v35290:0, v35291:1, v35292:1, 3, 7, 4, 2, 5, 8) :|: v35908:0 > -1 && v35281:0 > 1 Filtered unneeded arguments: f_2613(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, x30, x31, x32, x33, x34, x35) -> f_2613(x7, x10, x13, x14, x15, x16, x17, x27) f_2644(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, x30, x31, x32, x33, x34) -> f_2644(x7, x10, x13, x14, x15, x16, x17, x19, x26) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: f_2613(v32975:0, v32978:0, v32981:0, v32982:0, v32988:0, v34175:0, v34176:0, v32995:0) -> f_2613(v32975:0, v32978:0, v32981:0, v32982:0, 1 + v32988:0, v32978:0 + (4 + 4 * v32988:0), v34176:1, v32995:0) :|: v32975:0 > 1 + v32988:0 && v34176:0 < 1 && v32988:0 > 0 && v32978:0 + (4 + 4 * v32988:0) > 4 f_2644(v35271:0, v35274:0, v35277:0, v35278:0, v35279:0, v35280:0, cons_0, cons_1, v35290:0) -> f_2613(v35271:0, v35274:0, v35277:0, v35278:0, 1 + v35279:0, v35274:0 + (4 + 4 * v35279:0), v34176:0, v35290:0) :|: v35271:0 > 2 && v35279:0 > 0 && v35271:0 > 1 + v35279:0 && v35277:0 > 1 && v35278:0 > 8 && v35290:0 > 11 && v35274:0 + (4 + 4 * v35279:0) > 4 && cons_0 = 0 && cons_1 = 1 f_2613(v32975:0, v32978:0, v32981:0, v32982:0, v32988:0, sum~v32978:0~times~cons_4~v32988:0, sum~cons_1~v35908:0, v32995:0) -> f_2644(v32975:0, v32978:0, v32981:0, v32982:0, v32988:0, v32978:0 + 4 * v32988:0, v35908:0, 1 + v35908:0, v32995:0) :|: v35908:0 > -1 && sum~v32978:0~times~cons_4~v32988:0 = v32978:0 + 4 * v32988:0 && sum~cons_1~v35908:0 = 1 + v35908:0 f_2644(v35271:0, v35274:0, v35277:0, v35278:0, v35279:0, sum~v35274:0~times~cons_4~v35279:0, sum~cons_1~v35908:0, v35281:0, v35290:0) -> f_2644(v35271:0, v35274:0, v35277:0, v35278:0, v35279:0, v35274:0 + 4 * v35279:0, v35908:0, 1 + v35908:0, v35290:0) :|: v35908:0 > -1 && v35281:0 > 1 && sum~v35274:0~times~cons_4~v35279:0 = v35274:0 + 4 * v35279:0 && sum~cons_1~v35908:0 = 1 + v35908:0 ---------------------------------------- (9) Obligation: Rules: f_2613(v32975:0, v32978:0, v32981:0, v32982:0, v32988:0, v34175:0, v34176:0, v32995:0) -> f_2613(v32975:0, v32978:0, v32981:0, v32982:0, 1 + v32988:0, v32978:0 + (4 + 4 * v32988:0), v34176:1, v32995:0) :|: v32975:0 > 1 + v32988:0 && v34176:0 < 1 && v32988:0 > 0 && v32978:0 + (4 + 4 * v32988:0) > 4 f_2644(x, x1, x2, x3, x4, x5, x6, x7, x8) -> f_2613(x, x1, x2, x3, 1 + x4, x1 + (4 + 4 * x4), x9, x8) :|: x > 2 && x4 > 0 && x > 1 + x4 && x2 > 1 && x3 > 8 && x8 > 11 && x1 + (4 + 4 * x4) > 4 && x6 = 0 && x7 = 1 f_2613(x10, x11, x12, x13, x14, x15, x16, x17) -> f_2644(x10, x11, x12, x13, x14, x11 + 4 * x14, x18, 1 + x18, x17) :|: x18 > -1 && x15 = x11 + 4 * x14 && x16 = 1 + x18 f_2644(v35271:0, v35274:0, v35277:0, v35278:0, v35279:0, sum~v35274:0~times~cons_4~v35279:0, sum~cons_1~v35908:0, v35281:0, v35290:0) -> f_2644(v35271:0, v35274:0, v35277:0, v35278:0, v35279:0, v35274:0 + 4 * v35279:0, v35908:0, 1 + v35908:0, v35290:0) :|: v35908:0 > -1 && v35281:0 > 1 && sum~v35274:0~times~cons_4~v35279:0 = v35274:0 + 4 * v35279:0 && sum~cons_1~v35908:0 = 1 + v35908:0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2613_9,1) (f_2644_9,2) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := nondet(); oldX10 := nondet(); assume(oldX0 > 1 + oldX4 && oldX6 < 1 && oldX4 > 0 && oldX1 + (4 + 4 * oldX4) > 4); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX1 + (4 + 4 * oldX4); x6 := oldX9; x7 := oldX7; x8 := oldX10; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := nondet(); oldX10 := nondet(); assume(oldX0 > 2 && oldX4 > 0 && oldX0 > 1 + oldX4 && oldX2 > 1 && oldX3 > 8 && oldX8 > 11 && oldX1 + (4 + 4 * oldX4) > 4 && oldX6 = 0 && oldX7 = 1); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX1 + (4 + 4 * oldX4); x6 := oldX9; x7 := oldX8; x8 := oldX10; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := oldX6 - 1; assume(oldX9 > -1 && oldX5 = oldX1 + 4 * oldX4 && oldX6 = 1 + oldX9); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX1 + 4 * oldX4; x6 := oldX6 - 1; x7 := 1 + oldX9; x8 := oldX7; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := oldX6 - 1; assume(oldX9 > -1 && oldX7 > 1 && oldX5 = oldX1 + 4 * oldX4 && oldX6 = 1 + oldX9); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX1 + 4 * oldX4; x6 := oldX6 - 1; x7 := 1 + oldX9; x8 := oldX8; TO: 2; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: - Rank function 1: RF for loc. 6: 2+4*x0-4*x4 RF for loc. 7: 4*x0-4*x4 RF for loc. 8: 1+4*x0-4*x4 RF for loc. 12: 4*x0-4*x4 Bound for (chained) transitions 17: 8 - Rank function 2: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 1 RF for loc. 12: 0 Bound for (chained) transitions 6: 1 - Rank function 3: RF for loc. 6: 0 RF for loc. 7: 1+2*x6 RF for loc. 8: 0 RF for loc. 12: 2*x6 Bound for (chained) transitions 18: 2 - Rank function 4: RF for loc. 6: 1+2*x0-2*x4 RF for loc. 7: 1 RF for loc. 8: 2*x0-2*x4 RF for loc. 12: 0 Bound for (chained) transitions 5: 4 - Rank function 5: RF for loc. 6: 0 RF for loc. 7: 0 RF for loc. 8: -1 RF for loc. 12: -1 Bound for (chained) transitions 2: 0 Bound for (chained) transitions 14: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 48 rulesP rules: f_2494(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2499(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2499(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2505(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2505(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2510(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: v28419 = v27150 + 4 * v27158 f_2510(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2515(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2515(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2520(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 < v30279 && 2 <= v28421 f_2515(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2521(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: v30279 <= 0 && v28421 = 1 && v30279 = 0 && 0 = 0 f_2520(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2527(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2527(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2535(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2535(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27155, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2536(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v30279, v27158, v28419, v28421, v30279, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: TRUE f_2536(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31542, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2543(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31542, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2543(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31542, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2551(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2551(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2555(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2555(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31543, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2559(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: v31540 = v31534 + 4 * v31539 f_2559(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31544, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2563(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2563(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31545, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2568(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31545, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: 1 + v32851 = v31541 && 0 <= v32851 f_2568(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31543, v31545, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2573(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: TRUE f_2573(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2577(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: TRUE f_2577(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v32851, v31546, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v31554, v31555, 3, 7, 4, 2, 5, 8) -> f_2489(v31525, v31526, v31527, v31528, v31529, v31530, v31531, 0, v31533, v31534, 1, v31536, v31537, v31538, v31539, v31540, v31541, v31546, v32851, v31547, v31548, v31549, v31550, v31551, v31552, v31553, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2489(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2494(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v30279, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2521(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2528(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2528(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2537(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2537(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2538(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, 0, v27158, v28419, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: TRUE f_2538(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v31710, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2544(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v31710, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: TRUE f_2544(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v31710, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2552(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2552(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2556(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: v32678 = 1 + v31705 && 2 <= v32678 f_2556(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2560(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: TRUE f_2560(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2564(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: TRUE f_2564(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, v31718, v31719, 3, 7, 4, 2, 5, 8) -> f_2565(v31691, v31692, v31693, v31694, v31695, v31696, v31697, 0, v31699, v31700, 1, v31702, v31703, v31704, v31705, v31706, v31707, v31708, v31709, v32678, v31711, v31712, v31713, v31714, v31715, v31716, v31717, 3, 7, 4, 8) :|: TRUE f_2565(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32825, v32826, v32827, v32828, v32829, v32830, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 8) -> f_2569(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 8) :|: 0 = 0 f_2569(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 8) -> f_2574(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 8) :|: 0 = 0 f_2574(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 8) -> f_2578(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) :|: v32830 < v32817 && 1 <= v32823 && 5 <= v32824 && 2 <= v32817 && 8 <= v32837 f_2578(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) -> f_2582(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2582(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) -> f_2587(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2587(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) -> f_2588(v32811, v32812, v32813, v32814, v32815, v32816, v32817, 0, v32819, v32820, 1, v32822, v32823, v32824, v32830, v32825, v32826, v32827, v32828, v32829, v32831, v32832, v32833, v32834, v32835, v32836, v32837, 3, 7, 4, 2, 5, 8) :|: TRUE f_2588(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33491, v33492, v33493, v33494, v33495, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) -> f_2592(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33491, v33492, v33493, v33494, v33495, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) :|: TRUE f_2592(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33491, v33492, v33493, v33494, v33495, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) -> f_2596(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33491, v33492, v33493, v33494, v33495, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2596(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33491, v33492, v33493, v33494, v33495, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) -> f_2600(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33492, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2600(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33492, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) -> f_2604(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33492, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2604(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v33492, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, 3, 7, 4, 2, 5, 8) -> f_2607(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, 3, 7, 4, 2, 5, 8) :|: v34172 = v33485 + 4 * v33490 && 5 <= v34172 f_2607(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v33493, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, 3, 7, 4, 2, 5, 8) -> f_2609(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: TRUE f_2609(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2611(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: 0 < v34173 f_2609(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2612(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: v34173 <= 0 f_2611(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2614(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2614(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2618(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: TRUE f_2618(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2536(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, 1, 0, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v31554, v31555, 3, 7, 4, 2, 5, 8) :|: TRUE f_2612(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2615(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2615(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2619(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) :|: TRUE f_2619(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v33492, v33493, 3, 7, 4, 2, 5, 8) -> f_2538(v33476, v33477, v33478, v33479, v33480, v33481, v33482, 0, v33484, v33485, 1, v33487, v33488, v33489, v33490, v34172, v34173, v33494, v33495, v33491, v33496, v33497, v33498, v33499, v33500, v33501, v33502, v31718, v31719, 3, 7, 4, 2, 5, 8) :|: TRUE Combined rules. Obtained 4 rulesP rules: f_2609(v33476:0, v33477:0, v33478:0, v33479:0, v33480:0, v33481:0, v33482:0, 0, v33484:0, v33485:0, 1, v33487:0, v33488:0, v33489:0, v33490:0, v33485:0 + 4 * v33490:0, 1 + v32851:0, v33494:0, v33495:0, v33491:0, v33496:0, v33497:0, v33498:0, v33499:0, v33500:0, v33501:0, v33502:0, v33492:0, v33493:0, 3, 7, 4, 2, 5, 8) -> f_2494(v33476:0, v33477:0, v33478:0, v33479:0, v33480:0, v33481:0, v33482:0, 0, v33484:0, v33485:0, 1, v33487:0, v33488:0, v33489:0, v33490:0, v33485:0 + 4 * v33490:0, 1 + v32851:0, v33491:0, v32851:0, v33496:0, v33497:0, v33498:0, v33499:0, v33500:0, v33501:0, v33502:0, v27156:0, v27157:0, 3, 7, 4, 2, 5, 8) :|: v32851:0 > -1 f_2494(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, v27158:0, v27150:0 + 4 * v27158:0, 1, v27155:0, 0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, v27156:0, v27157:0, 3, 7, 4, 2, 5, 8) -> f_2609(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, 1 + v27158:0, v27150:0 + 4 * (1 + v27158:0), v34173:0, v27158:0, v27150:0 + 4 * v27158:0, v27158:0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, v27150:0 + 4 * v27158:0, 0, 3, 7, 4, 2, 5, 8) :|: v27158:0 > 0 && v27153:0 > 0 && v27147:0 > 1 + v27158:0 && v27154:0 > 4 && v27147:0 > 1 && v27150:0 + 4 * (1 + v27158:0) > 4 && v27165:0 > 7 f_2494(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, v27158:0, v27150:0 + 4 * v27158:0, v28421:0, v27155:0, 1 + v32851:0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, v27156:0, v27157:0, 3, 7, 4, 2, 5, 8) -> f_2494(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, v27158:0, v27150:0 + 4 * v27158:0, 1 + v32851:0, v27155:0, v32851:0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, v27156:1, v27157:1, 3, 7, 4, 2, 5, 8) :|: v28421:0 > 1 && v32851:0 > -1 f_2609(v33476:0, v33477:0, v33478:0, v33479:0, v33480:0, v33481:0, v33482:0, 0, v33484:0, v33485:0, 1, v33487:0, v33488:0, v33489:0, v33490:0, v34172:0, v34173:0, v33494:0, v33495:0, v33491:0, v33496:0, v33497:0, v33498:0, v33499:0, v33500:0, v33501:0, v33502:0, v33492:0, v33493:0, 3, 7, 4, 2, 5, 8) -> f_2609(v33476:0, v33477:0, v33478:0, v33479:0, v33480:0, v33481:0, v33482:0, 0, v33484:0, v33485:0, 1, v33487:0, v33488:0, v33489:0, 1 + v33490:0, v33485:0 + 4 * (1 + v33490:0), v34173:1, v33494:0, v33495:0, v33490:0, v33496:0, v33497:0, v33498:0, v33499:0, v33500:0, v33501:0, v33502:0, v34172:0, v34173:0, 3, 7, 4, 2, 5, 8) :|: v33490:0 > 0 && v33488:0 > 0 && v33482:0 > 1 + v33490:0 && v33489:0 > 4 && v33482:0 > 1 && v33502:0 > 7 && v34173:0 < 1 && v33485:0 + 4 * (1 + v33490:0) > 4 Filtered unneeded arguments: f_2609(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, x30, x31, x32, x33, x34, x35) -> f_2609(x7, x10, x13, x14, x15, x16, x17, x27) f_2494(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, x30, x31, x32, x33, x34) -> f_2494(x7, x10, x13, x14, x15, x16, x17, x19, x26) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: f_2609(v33482:0, v33485:0, v33488:0, v33489:0, v33490:0, sum~v33485:0~times~cons_4~v33490:0, sum~cons_1~v32851:0, v33502:0) -> f_2494(v33482:0, v33485:0, v33488:0, v33489:0, v33490:0, v33485:0 + 4 * v33490:0, 1 + v32851:0, v32851:0, v33502:0) :|: v32851:0 > -1 && sum~v33485:0~times~cons_4~v33490:0 = v33485:0 + 4 * v33490:0 && sum~cons_1~v32851:0 = 1 + v32851:0 f_2494(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, sum~v27150:0~times~cons_4~v27158:0, cons_1, cons_0, v27165:0) -> f_2609(v27147:0, v27150:0, v27153:0, v27154:0, 1 + v27158:0, v27150:0 + (4 + 4 * v27158:0), v34173:0, v27165:0) :|: v27153:0 > 0 && v27158:0 > 0 && v27147:0 > 1 + v27158:0 && v27154:0 > 4 && v27147:0 > 1 && v27165:0 > 7 && v27150:0 + (4 + 4 * v27158:0) > 4 && sum~v27150:0~times~cons_4~v27158:0 = v27150:0 + 4 * v27158:0 && cons_1 = 1 && cons_0 = 0 f_2494(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, sum~v27150:0~times~cons_4~v27158:0, v28421:0, sum~cons_1~v32851:0, v27165:0) -> f_2494(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, v27150:0 + 4 * v27158:0, 1 + v32851:0, v32851:0, v27165:0) :|: v28421:0 > 1 && v32851:0 > -1 && sum~v27150:0~times~cons_4~v27158:0 = v27150:0 + 4 * v27158:0 && sum~cons_1~v32851:0 = 1 + v32851:0 f_2609(v33482:0, v33485:0, v33488:0, v33489:0, v33490:0, v34172:0, v34173:0, v33502:0) -> f_2609(v33482:0, v33485:0, v33488:0, v33489:0, 1 + v33490:0, v33485:0 + (4 + 4 * v33490:0), v34173:1, v33502:0) :|: v33488:0 > 0 && v33490:0 > 0 && v33482:0 > 1 + v33490:0 && v33489:0 > 4 && v33482:0 > 1 && v33502:0 > 7 && v33485:0 + (4 + 4 * v33490:0) > 4 && v34173:0 < 1 ---------------------------------------- (16) Obligation: Rules: f_2609(v33482:0, v33485:0, v33488:0, v33489:0, v33490:0, sum~v33485:0~times~cons_4~v33490:0, sum~cons_1~v32851:0, v33502:0) -> f_2494(v33482:0, v33485:0, v33488:0, v33489:0, v33490:0, v33485:0 + 4 * v33490:0, 1 + v32851:0, v32851:0, v33502:0) :|: v32851:0 > -1 && sum~v33485:0~times~cons_4~v33490:0 = v33485:0 + 4 * v33490:0 && sum~cons_1~v32851:0 = 1 + v32851:0 f_2494(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, sum~v27150:0~times~cons_4~v27158:0, cons_1, cons_0, v27165:0) -> f_2609(v27147:0, v27150:0, v27153:0, v27154:0, 1 + v27158:0, v27150:0 + (4 + 4 * v27158:0), v34173:0, v27165:0) :|: v27153:0 > 0 && v27158:0 > 0 && v27147:0 > 1 + v27158:0 && v27154:0 > 4 && v27147:0 > 1 && v27165:0 > 7 && v27150:0 + (4 + 4 * v27158:0) > 4 && sum~v27150:0~times~cons_4~v27158:0 = v27150:0 + 4 * v27158:0 && cons_1 = 1 && cons_0 = 0 f_2494(x, x1, x2, x3, x4, x5, x6, x7, x8) -> f_2494(x, x1, x2, x3, x4, x1 + 4 * x4, 1 + x9, x9, x8) :|: x6 > 1 && x9 > -1 && x5 = x1 + 4 * x4 && x7 = 1 + x9 f_2609(x10, x11, x12, x13, x14, x15, x16, x17) -> f_2609(x10, x11, x12, x13, 1 + x14, x11 + (4 + 4 * x14), x18, x17) :|: x12 > 0 && x14 > 0 && x10 > 1 + x14 && x13 > 4 && x10 > 1 && x17 > 7 && x11 + (4 + 4 * x14) > 4 && x16 < 1 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2609_9,1) (f_2494_9,2) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := oldX6 - 1; assume(oldX9 > -1 && oldX5 = oldX1 + 4 * oldX4 && oldX6 = 1 + oldX9); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX1 + 4 * oldX4; x6 := 1 + oldX9; x7 := oldX6 - 1; x8 := oldX7; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := nondet(); oldX10 := nondet(); assume(oldX2 > 0 && oldX4 > 0 && oldX0 > 1 + oldX4 && oldX3 > 4 && oldX0 > 1 && oldX8 > 7 && oldX1 + (4 + 4 * oldX4) > 4 && oldX5 = oldX1 + 4 * oldX4 && oldX6 = 1 && oldX7 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX1 + (4 + 4 * oldX4); x6 := oldX9; x7 := oldX8; x8 := oldX10; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := oldX7 - 1; assume(oldX6 > 1 && oldX9 > -1 && oldX5 = oldX1 + 4 * oldX4 && oldX7 = 1 + oldX9); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX1 + 4 * oldX4; x6 := 1 + oldX9; x7 := oldX7 - 1; x8 := oldX8; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := nondet(); oldX10 := nondet(); assume(oldX2 > 0 && oldX4 > 0 && oldX0 > 1 + oldX4 && oldX3 > 4 && oldX0 > 1 && oldX7 > 7 && oldX1 + (4 + 4 * oldX4) > 4 && oldX6 < 1); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX1 + (4 + 4 * oldX4); x6 := oldX9; x7 := oldX7; x8 := oldX10; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: - Rank function 1: RF for loc. 6: 8+12*x0-12*x4 RF for loc. 7: 12*x0+3*x1-3*x5 RF for loc. 8: 4+12*x0-12*x4 RF for loc. 12: 12*x0+3*x1-3*x5 Bound for (chained) transitions 6: 28 Bound for (chained) transitions 17: 24 - Rank function 2: RF for loc. 6: 3*x6 RF for loc. 7: 1+3*x7 RF for loc. 8: -1+3*x6 RF for loc. 12: 3*x7 Bound for (chained) transitions 5: 2 Bound for (chained) transitions 18: 3 - Rank function 3: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 0 RF for loc. 12: -1 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 14: 0 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 20 rulesP rules: f_2347(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) -> f_2353(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) :|: 0 = 0 f_2353(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) -> f_2359(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: v27347 < v27336 && 1 <= v27342 && 5 <= v27343 && 2 <= v27336 && 8 <= v27354 f_2359(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2366(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2366(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2373(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: TRUE f_2373(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2380(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: TRUE f_2380(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2387(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2387(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2394(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27345, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2394(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27345, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2401(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27345, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2401(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27345, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 2, 5, 8) -> f_2407(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, 3, 7, 4, 2, 5, 8) :|: v28587 = v27339 + 4 * v27347 && 5 <= v28587 f_2407(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v27346, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, 3, 7, 4, 2, 5, 8) -> f_2414(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: TRUE f_2414(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2423(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: v28680 <= 0 f_2423(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2431(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2431(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2439(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: TRUE f_2439(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2449(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: TRUE f_2449(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27344, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2457(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2457(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2466(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: v29963 = 1 + v27347 && 2 <= v29963 f_2466(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2474(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: TRUE f_2474(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2481(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) :|: TRUE f_2481(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, v27345, v27346, 3, 7, 4, 2, 5, 8) -> f_2341(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v28587, v28680, v29963, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) :|: TRUE f_2341(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27344, v27345, v27346, v27347, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) -> f_2347(v27330, v27331, v27332, v27333, v27334, v27335, v27336, 0, v27338, v27339, 1, v27341, v27342, v27343, v27347, v27344, v27345, v27346, v27348, v27349, v27350, v27351, v27352, v27353, v27354, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_2347(v27330:0, v27331:0, v27332:0, v27333:0, v27334:0, v27335:0, v27336:0, 0, v27338:0, v27339:0, 1, v27341:0, v27342:0, v27343:0, v27347:0, v27344:0, v27345:0, v27346:0, v27348:0, v27349:0, v27350:0, v27351:0, v27352:0, v27353:0, v27354:0, 3, 7, 4, 8) -> f_2347(v27330:0, v27331:0, v27332:0, v27333:0, v27334:0, v27335:0, v27336:0, 0, v27338:0, v27339:0, 1, v27341:0, v27342:0, v27343:0, 1 + v27347:0, v27347:0, v27339:0 + 4 * v27347:0, v28680:0, v27348:0, v27349:0, v27350:0, v27351:0, v27352:0, v27353:0, v27354:0, 3, 7, 4, 8) :|: v27342:0 > 0 && v27347:0 < v27336:0 && v27343:0 > 4 && v27336:0 > 1 && v27354:0 > 7 && v27339:0 + 4 * v27347:0 > 4 && v27347:0 > 0 && v28680:0 < 1 Filtered unneeded arguments: f_2347(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_2347(x7, x10, x13, x14, x15, x25) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_2347(v27336:0, v27339:0, v27342:0, v27343:0, v27347:0, v27354:0) -> f_2347(v27336:0, v27339:0, v27342:0, v27343:0, 1 + v27347:0, v27354:0) :|: v27347:0 < v27336:0 && v27342:0 > 0 && v27343:0 > 4 && v27336:0 > 1 && v27354:0 > 7 && v27347:0 > 0 && v27339:0 + 4 * v27347:0 > 4 ---------------------------------------- (23) Obligation: Rules: f_2347(v27336:0, v27339:0, v27342:0, v27343:0, v27347:0, v27354:0) -> f_2347(v27336:0, v27339:0, v27342:0, v27343:0, 1 + v27347:0, v27354:0) :|: v27347:0 < v27336:0 && v27342:0 > 0 && v27343:0 > 4 && v27336:0 > 1 && v27354:0 > 7 && v27347:0 > 0 && v27339:0 + 4 * v27347:0 > 4 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2347_6,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; assume(oldX4 < oldX0 && oldX2 > 0 && oldX3 > 4 && oldX0 > 1 && oldX5 > 7 && oldX4 > 0 && oldX1 + 4 * oldX4 > 4); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX5; TO: 1; ---------------------------------------- (26) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x4 RF for loc. 6: 2*x0-2*x4 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 20 rulesP rules: f_2336(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) -> f_2344(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) :|: 0 = 0 f_2344(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) -> f_2349(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: v27158 < v27147 && 1 <= v27153 && 5 <= v27154 && 2 <= v27147 && 8 <= v27165 f_2349(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2355(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2355(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2362(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: TRUE f_2362(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2370(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: TRUE f_2370(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2377(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2377(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2384(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27156, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2384(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27156, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2391(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27156, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2391(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27156, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 2, 5, 8) -> f_2398(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, 3, 7, 4, 2, 5, 8) :|: v28419 = v27150 + 4 * v27158 && 5 <= v28419 f_2398(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v27157, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, 3, 7, 4, 2, 5, 8) -> f_2404(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2404(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2411(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: v28421 <= 0 f_2411(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2419(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2419(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2427(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2427(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2435(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2435(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27155, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2444(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_2444(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2454(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: v29802 = 1 + v27158 && 2 <= v29802 f_2454(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2463(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2463(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2470(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) :|: TRUE f_2470(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, v27156, v27157, 3, 7, 4, 2, 5, 8) -> f_2329(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v28419, v28421, v29802, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) :|: TRUE f_2329(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27155, v27156, v27157, v27158, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) -> f_2336(v27141, v27142, v27143, v27144, v27145, v27146, v27147, 0, v27149, v27150, 1, v27152, v27153, v27154, v27158, v27155, v27156, v27157, v27159, v27160, v27161, v27162, v27163, v27164, v27165, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_2336(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, v27158:0, v27155:0, v27156:0, v27157:0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, 3, 7, 4, 8) -> f_2336(v27141:0, v27142:0, v27143:0, v27144:0, v27145:0, v27146:0, v27147:0, 0, v27149:0, v27150:0, 1, v27152:0, v27153:0, v27154:0, 1 + v27158:0, v27158:0, v27150:0 + 4 * v27158:0, v28421:0, v27159:0, v27160:0, v27161:0, v27162:0, v27163:0, v27164:0, v27165:0, 3, 7, 4, 8) :|: v27153:0 > 0 && v27158:0 < v27147:0 && v27154:0 > 4 && v27147:0 > 1 && v27165:0 > 7 && v27150:0 + 4 * v27158:0 > 4 && v27158:0 > 0 && v28421:0 < 1 Filtered unneeded arguments: f_2336(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_2336(x7, x10, x13, x14, x15, x25) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_2336(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, v27165:0) -> f_2336(v27147:0, v27150:0, v27153:0, v27154:0, 1 + v27158:0, v27165:0) :|: v27158:0 < v27147:0 && v27153:0 > 0 && v27154:0 > 4 && v27147:0 > 1 && v27165:0 > 7 && v27158:0 > 0 && v27150:0 + 4 * v27158:0 > 4 ---------------------------------------- (30) Obligation: Rules: f_2336(v27147:0, v27150:0, v27153:0, v27154:0, v27158:0, v27165:0) -> f_2336(v27147:0, v27150:0, v27153:0, v27154:0, 1 + v27158:0, v27165:0) :|: v27158:0 < v27147:0 && v27153:0 > 0 && v27154:0 > 4 && v27147:0 > 1 && v27165:0 > 7 && v27158:0 > 0 && v27150:0 + 4 * v27158:0 > 4 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2336_6,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; assume(oldX4 < oldX0 && oldX2 > 0 && oldX3 > 4 && oldX0 > 1 && oldX5 > 7 && oldX4 > 0 && oldX1 + 4 * oldX4 > 4); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX4; x5 := oldX5; TO: 1; ---------------------------------------- (33) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x4 RF for loc. 6: 2*x0-2*x4 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_1578(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1587(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) :|: 0 = 0 f_1587(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1593(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) :|: 0 = 0 f_1593(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1600(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) :|: 0 = 0 f_1600(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1608(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) :|: 0 = 0 f_1608(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1616(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) :|: 0 < v11095 && 2 <= v11094 f_1616(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) -> f_1624(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) :|: 0 = 0 f_1624(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) -> f_1632(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) :|: TRUE f_1632(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) -> f_1633(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11095, v11094, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 2, 8) :|: TRUE f_1633(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) -> f_1641(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) :|: 0 = 0 f_1641(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) -> f_1650(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) :|: 0 = 0 f_1650(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) -> f_1658(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) :|: 0 = 0 f_1658(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) -> f_1666(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) :|: 0 = 0 f_1666(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12388, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 2, 8) -> f_1675(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) :|: 0 = 0 f_1675(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) -> f_1685(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) :|: 1 + v13200 = v12387 && 0 <= v13200 f_1685(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) -> f_1695(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) :|: TRUE f_1695(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) -> f_1705(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) :|: TRUE f_1705(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) -> f_1568(v12373, v12374, v12375, v12376, v12377, v12378, v12379, 0, v12381, v12382, 1, v12384, v12385, v12386, v12387, v13200, v12389, v12390, v12391, v12392, v12393, v12394, v12395, 3, 7, 4, 8) :|: TRUE f_1568(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) -> f_1578(v11080, v11081, v11082, v11083, v11084, v11085, v11086, 0, v11088, v11089, 1, v11091, v11092, v11093, v11094, v11095, v11096, v11097, v11098, v11099, v11100, v11101, v11102, 3, 7, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1578(v11080:0, v11081:0, v11082:0, v11083:0, v11084:0, v11085:0, v11086:0, 0, v11088:0, v11089:0, 1, v11091:0, v11092:0, v11093:0, v11094:0, 1 + v13200:0, v11096:0, v11097:0, v11098:0, v11099:0, v11100:0, v11101:0, v11102:0, 3, 7, 4, 8) -> f_1578(v11080:0, v11081:0, v11082:0, v11083:0, v11084:0, v11085:0, v11086:0, 0, v11088:0, v11089:0, 1, v11091:0, v11092:0, v11093:0, 1 + v13200:0, v13200:0, v11096:0, v11097:0, v11098:0, v11099:0, v11100:0, v11101:0, v11102:0, 3, 7, 4, 8) :|: v11094:0 > 1 && v13200:0 > -1 Filtered unneeded arguments: f_1578(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_1578(x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1578(v11094:0, sum~cons_1~v13200:0) -> f_1578(1 + v13200:0, v13200:0) :|: v11094:0 > 1 && v13200:0 > -1 && sum~cons_1~v13200:0 = 1 + v13200:0 ---------------------------------------- (37) Obligation: Rules: f_1578(v11094:0, sum~cons_1~v13200:0) -> f_1578(1 + v13200:0, v13200:0) :|: v11094:0 > 1 && v13200:0 > -1 && sum~cons_1~v13200:0 = 1 + v13200:0 ---------------------------------------- (38) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1578_2,1) ---------------------------------------- (39) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := oldX1 - 1; assume(oldX0 > 1 && oldX2 > -1 && oldX1 = 1 + oldX2); x0 := 1 + oldX2; x1 := oldX1 - 1; TO: 1; ---------------------------------------- (40) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (41) YES ---------------------------------------- (42) Obligation: SCC ---------------------------------------- (43) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 17 rulesP rules: f_1471(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1477(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 f_1477(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1483(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 f_1483(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1489(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 f_1489(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1495(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 f_1495(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1501(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 < v9164 && 2 <= v7785 f_1501(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1508(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 = 0 f_1508(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1515(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: TRUE f_1515(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1522(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 = 0 f_1522(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1530(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 = 0 f_1530(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1538(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 = 0 f_1538(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1547(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) :|: 0 = 0 f_1547(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7785, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 2, 5) -> f_1555(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 f_1555(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1563(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 1 + v10997 = v9164 && 0 <= v10997 f_1563(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1574(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: TRUE f_1574(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1582(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: TRUE f_1582(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1465(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v9164, v10997, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: TRUE f_1465(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) -> f_1471(v7762, v7763, v7764, v7765, v7766, v7767, v7889, 0, v7770, v7771, 1, v7774, v7773, v7801, v7785, v9164, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7777, 3, 7, 4, 8, 5, 2) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_1471(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7889:0, 0, v7770:0, v7771:0, 1, v7774:0, v7773:0, v7801:0, v7785:0, 1 + v10997:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7777:0, 3, 7, 4, 8, 5, 2) -> f_1471(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7889:0, 0, v7770:0, v7771:0, 1, v7774:0, v7773:0, v7801:0, 1 + v10997:0, v10997:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7777:0, 3, 7, 4, 8, 5, 2) :|: v7785:0 > 1 && v10997:0 > -1 Filtered unneeded arguments: f_1471(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, x30) -> f_1471(x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1471(v7785:0, sum~cons_1~v10997:0) -> f_1471(1 + v10997:0, v10997:0) :|: v7785:0 > 1 && v10997:0 > -1 && sum~cons_1~v10997:0 = 1 + v10997:0 ---------------------------------------- (44) Obligation: Rules: f_1471(v7785:0, sum~cons_1~v10997:0) -> f_1471(1 + v10997:0, v10997:0) :|: v7785:0 > 1 && v10997:0 > -1 && sum~cons_1~v10997:0 = 1 + v10997:0 ---------------------------------------- (45) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1471_2,1) ---------------------------------------- (46) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := oldX1 - 1; assume(oldX0 > 1 && oldX2 > -1 && oldX1 = 1 + oldX2); x0 := 1 + oldX2; x1 := oldX1 - 1; TO: 1; ---------------------------------------- (47) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (48) YES ---------------------------------------- (49) Obligation: SCC ---------------------------------------- (50) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 65 rulesP rules: f_1219(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6304, v6305, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) -> f_1222(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6304, v6305, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) :|: 0 = 0 f_1222(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6304, v6305, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) -> f_1225(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6305, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) :|: 0 = 0 f_1225(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6305, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) -> f_1228(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6305, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) :|: 0 = 0 f_1228(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6305, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) -> f_1231(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) :|: v6448 = v6300 + 4 * v6302 && 5 <= v6448 f_1231(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) -> f_1234(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) :|: TRUE f_1234(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) -> f_1237(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) :|: TRUE f_1237(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, v6305, 3, 7, 4, 2, 8, 5) -> f_1345(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6448, v6304, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 5, 8) :|: TRUE f_1345(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7843, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1347(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_1347(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1349(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: v7887 = 1 + v7840 && 2 <= v7887 f_1349(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1351(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: TRUE f_1351(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1353(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: TRUE f_1353(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7840, v7841, v7842, v7887, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1355(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_1355(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1357(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) :|: 0 = 0 f_1357(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 5, 8) -> f_1359(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: v7887 < v7835 && 3 <= v7835 && 12 <= v7850 f_1359(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1362(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: 0 = 0 f_1362(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1366(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1366(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1370(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1370(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1374(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1374(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1378(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: 0 = 0 f_1378(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1382(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: v8029 < 0 f_1378(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1383(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: 0 <= v8029 f_1382(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1387(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: 0 = 0 f_1387(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1393(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1393(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1399(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1399(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1404(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1404(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1328(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 8) :|: TRUE f_1328(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7775, v7776, v7777, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, 3, 7, 4, 2, 8) -> f_1331(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7776, v7777, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) :|: 0 = 0 f_1331(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7776, v7777, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) -> f_1334(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7776, v7777, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) :|: 0 = 0 f_1334(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7776, v7777, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) -> f_1337(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7777, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) :|: 0 = 0 f_1337(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7777, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) -> f_1340(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7777, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) :|: 0 = 0 f_1340(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7777, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7775, 3, 7, 4, 2, 8) -> f_1343(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: v7801 = v7771 + 4 * v7773 && 5 <= v7801 f_1343(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1346(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: TRUE f_1346(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1348(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: TRUE f_1348(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7776, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1350(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: 0 = 0 f_1350(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1352(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: v7889 = 1 + v7773 && 2 <= v7889 f_1352(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1354(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: TRUE f_1354(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1356(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: TRUE f_1356(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7773, v7774, v7801, v7889, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1358(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: 0 = 0 f_1358(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1361(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) :|: 0 = 0 f_1361(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 2, 8, 5) -> f_1364(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: v7889 < v7768 && 3 <= v7768 && 12 <= v7784 f_1364(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1368(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: 0 = 0 f_1368(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1372(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: TRUE f_1372(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1376(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: TRUE f_1376(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1380(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: TRUE f_1380(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7774, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1385(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: 0 = 0 f_1385(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1390(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: v8160 < 0 f_1385(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1391(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: 0 <= v8160 f_1390(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1396(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: 0 = 0 f_1396(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1401(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: TRUE f_1401(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1393(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, 0, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1391(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1397(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: 0 = 0 f_1397(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1402(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) :|: TRUE f_1402(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, v7777, v7775, 3, 7, 4, 8, 12, 5, 2) -> f_1214(v7762, v7763, v7764, v7765, v7766, v7767, v7768, 0, v7770, v7771, 1, v7889, v8160, v7773, v7801, v7778, v7779, v7780, v7781, v7782, v7783, v7784, v7785, 3, 7, 4, 2, 8) :|: TRUE f_1214(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6304, v6305, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) -> f_1219(v6291, v6292, v6293, v6294, v6295, v6296, v6297, 0, v6299, v6300, 1, v6302, v6303, v6304, v6305, v6306, v6307, v6308, v6309, v6310, v6311, v6312, v6313, 3, 7, 4, 2, 8) :|: 0 = 0 f_1383(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1388(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: 0 = 0 f_1388(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1394(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) :|: TRUE f_1394(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 5, 8, 12, 2) -> f_1317(v7829, v7830, v7831, v7832, v7833, v7834, v7835, 0, v7837, v7838, 1, v7887, v8029, v7841, v7840, v7842, v7844, v7845, v7846, v7847, v7848, v7849, v7850, v7851, 3, 7, 4, 2, 8) :|: TRUE f_1317(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, 3, 7, 4, 2, 8) -> f_1323(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7428, v7429, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) :|: 0 = 0 f_1323(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7428, v7429, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) -> f_1329(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7428, v7429, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) :|: 0 = 0 f_1329(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7428, v7429, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) -> f_1332(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7429, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) :|: 0 = 0 f_1332(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7429, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) -> f_1335(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7429, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) :|: 0 = 0 f_1335(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7429, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7427, 3, 7, 4, 2, 8) -> f_1338(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) :|: v7799 = v7423 + 4 * v7425 && 5 <= v7799 f_1338(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) -> f_1341(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) :|: TRUE f_1341(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) -> f_1344(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) :|: TRUE f_1344(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, v7429, v7427, 3, 7, 4, 2, 8, 5) -> f_1345(v7414, v7415, v7416, v7417, v7418, v7419, v7420, 0, v7422, v7423, 1, v7425, v7426, v7799, v7428, v7430, v7431, v7432, v7433, v7434, v7435, v7436, v7437, 3, 7, 4, 2, 5, 8) :|: TRUE Combined rules. Obtained 4 rulesP rules: f_1378(v7829:0, v7830:0, v7831:0, v7832:0, v7833:0, v7834:0, v7835:0, 0, v7837:0, v7838:0, 1, v7887:0, v8029:0, v7841:0, v7840:0, v7842:0, v7844:0, v7845:0, v7846:0, v7847:0, v7848:0, v7849:0, v7850:0, v7851:0, 3, 7, 4, 5, 8, 12, 2) -> f_1385(v7829:0, v7830:0, v7831:0, v7832:0, v7833:0, v7834:0, v7835:0, 0, v7837:0, v7838:0, 1, 1 + v7887:0, v8160:0, v7887:0, v7838:0 + 4 * v7887:0, v7844:0, v7845:0, v7846:0, v7847:0, v7848:0, v7849:0, v7850:0, v7851:0, v7842:0, v7841:0, 3, 7, 4, 8, 12, 5, 2) :|: v8029:0 < 0 && v7838:0 + 4 * v7887:0 > 4 && v7887:0 > 0 && v7835:0 > 2 && v7850:0 > 11 && v7835:0 > 1 + v7887:0 f_1385(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7768:0, 0, v7770:0, v7771:0, 1, v7889:0, v8160:0, v7773:0, v7801:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7785:0, v7777:0, v7775:0, 3, 7, 4, 8, 12, 5, 2) -> f_1385(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7768:0, 0, v7770:0, v7771:0, 1, 1 + v7889:0, v8160:1, v7889:0, v7771:0 + 4 * v7889:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7785:0, v7801:0, 0, 3, 7, 4, 8, 12, 5, 2) :|: v7771:0 + 4 * v7889:0 > 4 && v7889:0 > 0 && v7768:0 > 2 && v7768:0 > 1 + v7889:0 && v8160:0 < 0 && v7784:0 > 11 f_1385(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7768:0, 0, v7770:0, v7771:0, 1, v7889:0, v8160:0, v7773:0, v7801:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7785:0, v7777:0, v7775:0, 3, 7, 4, 8, 12, 5, 2) -> f_1378(v7762:0, v7763:0, v7764:0, v7765:0, v7766:0, v7767:0, v7768:0, 0, v7770:0, v7771:0, 1, 1 + v7889:0, v8029:0, v8160:0, v7889:0, v7771:0 + 4 * v7889:0, v7778:0, v7779:0, v7780:0, v7781:0, v7782:0, v7783:0, v7784:0, v7785:0, 3, 7, 4, 5, 8, 12, 2) :|: v7771:0 + 4 * v7889:0 > 4 && v7889:0 > 0 && v7768:0 > 2 && v7768:0 > 1 + v7889:0 && v8160:0 > -1 && v7784:0 > 11 f_1378(v7829:0, v7830:0, v7831:0, v7832:0, v7833:0, v7834:0, v7835:0, 0, v7837:0, v7838:0, 1, v7887:0, v8029:0, v7841:0, v7840:0, v7842:0, v7844:0, v7845:0, v7846:0, v7847:0, v7848:0, v7849:0, v7850:0, v7851:0, 3, 7, 4, 5, 8, 12, 2) -> f_1378(v7829:0, v7830:0, v7831:0, v7832:0, v7833:0, v7834:0, v7835:0, 0, v7837:0, v7838:0, 1, 1 + v7887:0, v8029:1, v8029:0, v7887:0, v7838:0 + 4 * v7887:0, v7844:0, v7845:0, v7846:0, v7847:0, v7848:0, v7849:0, v7850:0, v7851:0, 3, 7, 4, 5, 8, 12, 2) :|: v7887:0 > 0 && v8029:0 > -1 && v7835:0 > 2 && v7835:0 > 1 + v7887:0 && v7838:0 + 4 * v7887:0 > 4 && v7850:0 > 11 Filtered unneeded arguments: f_1378(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, x30, x31) -> f_1378(x7, x10, x12, x13, x23) f_1385(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, x30, x31, x32) -> f_1385(x7, x10, x12, x13, x22) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: f_1378(v7835:0, v7838:0, v7887:0, v8029:0, v7850:0) -> f_1385(v7835:0, v7838:0, 1 + v7887:0, v8160:0, v7850:0) :|: v7838:0 + 4 * v7887:0 > 4 && v8029:0 < 0 && v7887:0 > 0 && v7835:0 > 2 && v7835:0 > 1 + v7887:0 && v7850:0 > 11 f_1385(v7768:0, v7771:0, v7889:0, v8160:0, v7784:0) -> f_1385(v7768:0, v7771:0, 1 + v7889:0, v8160:1, v7784:0) :|: v7889:0 > 0 && v7771:0 + 4 * v7889:0 > 4 && v7768:0 > 2 && v7768:0 > 1 + v7889:0 && v7784:0 > 11 && v8160:0 < 0 f_1385(v7768:0, v7771:0, v7889:0, v8160:0, v7784:0) -> f_1378(v7768:0, v7771:0, 1 + v7889:0, v8029:0, v7784:0) :|: v7889:0 > 0 && v7771:0 + 4 * v7889:0 > 4 && v7768:0 > 2 && v7768:0 > 1 + v7889:0 && v7784:0 > 11 && v8160:0 > -1 f_1378(v7835:0, v7838:0, v7887:0, v8029:0, v7850:0) -> f_1378(v7835:0, v7838:0, 1 + v7887:0, v8029:1, v7850:0) :|: v8029:0 > -1 && v7887:0 > 0 && v7835:0 > 2 && v7835:0 > 1 + v7887:0 && v7850:0 > 11 && v7838:0 + 4 * v7887:0 > 4 ---------------------------------------- (51) Obligation: Rules: f_1378(v7835:0, v7838:0, v7887:0, v8029:0, v7850:0) -> f_1385(v7835:0, v7838:0, 1 + v7887:0, v8160:0, v7850:0) :|: v7838:0 + 4 * v7887:0 > 4 && v8029:0 < 0 && v7887:0 > 0 && v7835:0 > 2 && v7835:0 > 1 + v7887:0 && v7850:0 > 11 f_1385(x, x1, x2, x3, x4) -> f_1385(x, x1, 1 + x2, x5, x4) :|: x2 > 0 && x1 + 4 * x2 > 4 && x > 2 && x > 1 + x2 && x4 > 11 && x3 < 0 f_1385(x6, x7, x8, x9, x10) -> f_1378(x6, x7, 1 + x8, x11, x10) :|: x8 > 0 && x7 + 4 * x8 > 4 && x6 > 2 && x6 > 1 + x8 && x10 > 11 && x9 > -1 f_1378(x12, x13, x14, x15, x16) -> f_1378(x12, x13, 1 + x14, x17, x16) :|: x15 > -1 && x14 > 0 && x12 > 2 && x12 > 1 + x14 && x16 > 11 && x13 + 4 * x14 > 4 ---------------------------------------- (52) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1378_5,1) (f_1385_5,2) ---------------------------------------- (53) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX1 + 4 * oldX2 > 4 && oldX3 < 0 && oldX2 > 0 && oldX0 > 2 && oldX0 > 1 + oldX2 && oldX4 > 11); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX4; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX2 > 0 && oldX1 + 4 * oldX2 > 4 && oldX0 > 2 && oldX0 > 1 + oldX2 && oldX4 > 11 && oldX3 < 0); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX4; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX2 > 0 && oldX1 + 4 * oldX2 > 4 && oldX0 > 2 && oldX0 > 1 + oldX2 && oldX4 > 11 && oldX3 > -1); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX4; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX3 > -1 && oldX2 > 0 && oldX0 > 2 && oldX0 > 1 + oldX2 && oldX4 > 11 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX4; TO: 1; ---------------------------------------- (54) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: - Rank function 1: RF for loc. 6: 1+2*x0-2*x2 RF for loc. 7: 1+2*x0-2*x2 RF for loc. 8: 2*x0-2*x2 RF for loc. 12: 2*x0-2*x2 Bound for (chained) transitions 5: 4 Bound for (chained) transitions 6: 4 Bound for (chained) transitions 17: 4 Bound for (chained) transitions 18: 4 - Rank function 2: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 0 RF for loc. 12: -1 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 14: 0 ---------------------------------------- (55) YES ---------------------------------------- (56) Obligation: SCC ---------------------------------------- (57) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 17 rulesP rules: f_906(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_911(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: 0 = 0 f_911(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_915(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: 0 = 0 f_915(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_919(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: 0 = 0 f_919(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_923(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: 0 = 0 f_923(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_928(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 < v3098 && 2 <= v3097 && 2 <= v3096 f_928(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_934(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_934(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_940(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: TRUE f_940(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_947(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_947(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_954(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_954(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_962(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_962(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_970(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_970(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3097, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_978(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 0 = 0 f_978(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_986(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: 1 + v3809 = v3098 && 0 <= v3809 f_986(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_995(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: TRUE f_995(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_1004(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) :|: TRUE f_1004(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 2, 8) -> f_901(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3098, v3809, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: TRUE f_901(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) -> f_906(v3085, v3086, v3087, v3088, v3089, v3090, v3091, 1, 4, v3094, 0, v3096, v3097, v3098, v3099, v3100, v3101, v3102, v3103, v3104, v3105, 3, 7, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_906(v3085:0, v3086:0, v3087:0, v3088:0, v3089:0, v3090:0, v3091:0, 1, 4, v3094:0, 0, v3096:0, v3097:0, 1 + v3809:0, v3099:0, v3100:0, v3101:0, v3102:0, v3103:0, v3104:0, v3105:0, 3, 7, 8) -> f_906(v3085:0, v3086:0, v3087:0, v3088:0, v3089:0, v3090:0, v3091:0, 1, 4, v3094:0, 0, v3096:0, 1 + v3809:0, v3809:0, v3099:0, v3100:0, v3101:0, v3102:0, v3103:0, v3104:0, v3105:0, 3, 7, 8) :|: v3097:0 > 1 && v3809:0 > -1 && v3096:0 > 1 Filtered unneeded arguments: f_906(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_906(x12, x13, x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_906(v3096:0, v3097:0, sum~cons_1~v3809:0) -> f_906(v3096:0, 1 + v3809:0, v3809:0) :|: v3809:0 > -1 && v3096:0 > 1 && v3097:0 > 1 && sum~cons_1~v3809:0 = 1 + v3809:0 ---------------------------------------- (58) Obligation: Rules: f_906(v3096:0, v3097:0, sum~cons_1~v3809:0) -> f_906(v3096:0, 1 + v3809:0, v3809:0) :|: v3809:0 > -1 && v3096:0 > 1 && v3097:0 > 1 && sum~cons_1~v3809:0 = 1 + v3809:0 ---------------------------------------- (59) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_906_3,1) ---------------------------------------- (60) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX2 - 1; assume(oldX3 > -1 && oldX0 > 1 && oldX1 > 1 && oldX2 = 1 + oldX3); x0 := oldX0; x1 := 1 + oldX3; x2 := oldX2 - 1; TO: 1; ---------------------------------------- (61) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x2 RF for loc. 6: 2*x2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 2*x2 RF for loc. 6: -1+2*x2 Bound for (chained) transitions 3: 1 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (62) YES