/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/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, 179 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 26.3 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 272 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 965 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 32 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 3 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 63 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 3 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 25 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 6 ms] (34) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/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 %x = alloca i32, align 4 %y = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %x %3 = call i32 @__VERIFIER_nondet_int() store %3, %y br %4 4: %5 = load %x %6 = icmp sge %5 2 br %6, %7, %31 7: %8 = load %x %9 = add %8 -1 store %9, %x %10 = load %y %11 = load %x %12 = add %10 %11 store %12, %y br %13 13: %14 = load %y %15 = load %x %16 = icmp sge %14 %15 br %16, %17, %20 17: %18 = call i32 @__VERIFIER_nondet_int() %19 = icmp ne %18 0 br %20 20: %21 = phi [0, %13], [%19, %17] br %21, %22, %25 22: %23 = load %y %24 = add %23 -1 store %24, %y br %13 25: %26 = load %x %27 = add %26 -1 store %27, %x %28 = load %y %29 = load %x %30 = sub %28 %29 store %30, %y br %4 31: ret 0 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 4 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 169 rulesP rules: f_1301(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1305(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: 0 = 0 f_1305(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1309(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: v13040 <= v13045 && 1 <= v13045 && 2 <= v13043 f_1305(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1310(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: v13045 < v13040 && v13043 = v13040 f_1309(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1314(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: 0 = 0 f_1314(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1317(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: TRUE f_1317(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1445(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: TRUE f_1445(v15276, v15277, v15278, v15279, v15280, v15281, 1, v15283, v15284, v15285, v15286, v15287, v15288, v15289, v15290, v15291, v15292, v15293, 0, 3, 2, 4) -> f_1516(v15276, v15277, v15278, v15279, v15280, v15281, 1, v15283, v15284, v15285, v15286, v15287, v15288, v15289, v15290, v15291, v15292, v15293, 0, 3, 2, 4) :|: TRUE f_1516(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16368, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1521(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) :|: TRUE f_1521(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1526(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) :|: v16544 != 0 f_1521(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1527(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) :|: v16544 = 0 f_1526(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1532(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) :|: 0 = 0 f_1532(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1538(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) :|: 0 = 0 f_1538(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) -> f_1398(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, v16544, v16369, v16367, v16370, v16371, v16372, v16373, v16374, 0, 3, 2, 4) :|: TRUE f_1398(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14323, v14324, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1403(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14323, v14324, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: TRUE f_1403(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14323, v14324, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1409(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14324, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: 0 = 0 f_1409(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14324, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1413(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: 1 + v14733 = v14321 && 0 <= v14733 f_1413(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1417(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: TRUE f_1417(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1421(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: TRUE f_1421(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) -> f_1487(v14311, v14312, v14313, v14314, v14315, v14316, 1, v14318, v14319, v14320, v14321, v14322, v14733, v14325, v14326, v14327, v14328, v14329, 0, 3, 2, 4) :|: TRUE f_1487(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16119, v16120, v16121, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1491(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: 0 = 0 f_1491(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1495(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: 0 = 0 f_1495(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1501(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: v16116 <= v16121 && 1 <= v16121 && 2 <= v16119 f_1495(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1502(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: v16121 < v16116 && v16119 = v16116 f_1501(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1508(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: 0 = 0 f_1508(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1515(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: TRUE f_1515(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1516(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16119, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) :|: TRUE f_1502(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, v16120, v16122, v16123, v16124, v16125, v16126, 0, 3, 2, 4) -> f_1509(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, 0, v16120, v16122, v16123, v16124, v16125, v16126, 3, 2, 4) :|: 0 = 0 f_1509(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, 0, v16120, v16122, v16123, v16124, v16125, v16126, 3, 2, 4) -> f_1517(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, 0, v16120, v16122, v16123, v16124, v16125, v16126, 3, 2, 4) :|: 0 = 0 f_1517(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, 0, v16120, v16122, v16123, v16124, v16125, v16126, 3, 2, 4) -> f_1518(v16109, v16110, v16111, v16112, v16113, v16114, 1, v16116, v16117, v16118, v16121, 0, v16120, v16122, v16123, v16124, v16125, v16126, 3, 2, 4) :|: TRUE f_1518(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16517, v16518, v16519, v16520, v16521, 3, 2, 4) -> f_1522(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16517, v16518, v16519, v16520, v16521, 3, 2, 4) :|: TRUE f_1522(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16517, v16518, v16519, v16520, v16521, 3, 2, 4) -> f_1528(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) :|: 0 = 0 f_1528(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) -> f_1534(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) :|: 1 + v16514 = v16511 f_1534(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) -> f_1540(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) :|: TRUE f_1540(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16518, v16519, v16520, v16521, 3, 2, 4) -> f_1543(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: 0 = 0 f_1543(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) -> f_1546(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: 0 = 0 f_1546(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) -> f_1549(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: 0 = 0 f_1549(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) -> f_1552(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: TRUE f_1552(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) -> f_1554(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: TRUE f_1554(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) -> f_1555(v16504, v16505, v16506, v16507, v16508, v16509, 1, v16511, v16512, v16513, v16514, 0, v16516, v16519, v16520, v16521, 3, 2, 4) :|: TRUE f_1555(v17110, v17111, v17112, v17113, v17114, v17115, 1, v17117, v17118, v17119, v17120, 0, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1557(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1557(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1559(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) :|: 2 <= v17120 && 3 <= v17117 && 4 <= v17115 f_1559(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) -> f_1563(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) :|: 0 = 0 f_1563(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) -> f_1566(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) :|: TRUE f_1566(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17115, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 4, 2) -> f_1569(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1569(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17117, v17118, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1572(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, v17118, v17117, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 1 + v17310 = v17120 && 1 <= v17310 f_1572(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, v17118, v17117, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1575(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, v17118, v17117, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1575(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, v17118, v17117, v17119, 0, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1578(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17119, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1578(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17119, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1581(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17119, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1581(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17119, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1585(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1585(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1589(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1589(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1593(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1593(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1597(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1597(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17122, v17123, v17124, v17125, 3, 2, 4) -> f_1601(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1601(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1605(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1605(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1609(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1609(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17122, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1613(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1613(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1616(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) :|: v17933 != 0 f_1613(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1617(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) :|: v17933 = 0 f_1616(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1621(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1621(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1626(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1626(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17933, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1398(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17310, v17310, v17933, v17117, v17120, v17117, v17120, v17123, v17124, v17125, 0, 3, 2, 4) :|: TRUE f_1617(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1622(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1622(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1627(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) :|: 0 = 0 f_1627(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17117, v17123, v17124, v17125, 3, 2, 4) -> f_1443(v17110, v17111, v17112, v17113, v17114, v17120, 1, v17310, 0, v17310, v17310, 0, v17117, v17120, v17117, v17120, v17123, v17124, v17125, 3, 2, 4) :|: TRUE f_1443(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15223, v15224, v15225, v15226, v15227, 3, 2, 4) -> f_1449(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15223, v15224, v15225, v15226, v15227, 3, 2, 4) :|: TRUE f_1449(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15223, v15224, v15225, v15226, v15227, 3, 2, 4) -> f_1454(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15224, v15225, v15226, v15227, 3, 2, 4) :|: 0 = 0 f_1454(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15224, v15225, v15226, v15227, 3, 2, 4) -> f_1460(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15224, v15225, v15226, v15227, 3, 2, 4) :|: 1 + v15507 = v15216 && 0 <= v15507 f_1460(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15224, v15225, v15226, v15227, 3, 2, 4) -> f_1466(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15224, v15225, v15226, v15227, 3, 2, 4) :|: TRUE f_1466(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15224, v15225, v15226, v15227, 3, 2, 4) -> f_1472(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15225, v15226, v15227, 3, 2, 4) :|: 0 = 0 f_1472(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15225, v15226, v15227, 3, 2, 4) -> f_1476(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15225, v15226, v15227, 3, 2, 4) :|: 0 = 0 f_1476(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v15225, v15226, v15227, 3, 2, 4) -> f_1480(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) :|: v16026 + v15507 = v15219 f_1480(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) -> f_1484(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) :|: TRUE f_1484(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) -> f_1489(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) :|: TRUE f_1489(v15209, v15210, v15211, v15212, v15213, v15214, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v15507, v16026, v15225, v15226, v15227, 3, 2, 4) -> f_1493(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 2, 4) :|: 0 = 0 f_1493(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 2, 4) -> f_1497(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: 2 <= v15507 && 3 <= v15216 && 4 <= v15214 && 4 <= v15221 && 3 <= v15222 && 3 <= v15219 f_1497(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1504(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: 0 = 0 f_1504(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1511(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: TRUE f_1511(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15214, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1520(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: 0 = 0 f_1520(v15209, v15210, v15211, v15212, v15213, v15507, 1, v15216, v15217, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1525(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v15217, v15216, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: 1 + v16584 = v15507 && 1 <= v16584 f_1525(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v15217, v15216, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1531(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v15217, v15216, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) :|: TRUE f_1531(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v15217, v15216, v15218, v15219, 0, v15221, v15222, v16026, v15225, v15226, v15227, 3, 4, 2) -> f_1537(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v15216, v15218, v15219, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) :|: 0 = 0 f_1537(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v15216, v15218, v15219, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) -> f_1542(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v15218, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) :|: 0 = 0 f_1542(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v15218, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) -> f_1545(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) :|: v16979 = v16026 + v16584 f_1545(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) -> f_1548(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) :|: TRUE f_1548(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) -> f_1551(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) :|: TRUE f_1551(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 4, 2) -> f_1424(v15209, v15210, v15211, v15212, v15213, v15507, 1, v16584, v16026, v16979, v15219, v15216, 0, v15221, v15222, v15225, v15226, v15227, 3, 2, 4) :|: TRUE f_1424(v14809, v14810, v14811, v14812, v14813, v14814, 1, v14816, v14817, v14818, v14819, v14820, 0, v14822, v14823, v14824, v14825, v14826, 3, 2, 4) -> f_1562(v14809, v14810, v14811, v14812, v14813, v14814, 1, v14816, v14817, v14818, v14819, v14820, 0, v14822, v14823, v14824, v14825, v14826, 3, 2, 4) :|: TRUE f_1562(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17243, v17244, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 4) -> f_1565(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17244, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1565(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17244, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1568(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1568(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1570(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: v17240 <= v17242 && 0 <= v17241 && 1 <= v17242 && 2 <= v17243 f_1568(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1571(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: v17242 < v17240 && 1 + v17241 <= 0 f_1570(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1573(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1573(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1576(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1576(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1579(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1579(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1582(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: v17387 != 0 f_1579(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1583(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: v17387 = 0 f_1582(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1586(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1586(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1590(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: 0 = 0 f_1590(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1594(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: TRUE f_1594(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1598(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: 0 = 0 f_1598(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17247, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1602(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: 1 + v17759 = v17242 && 0 <= v17759 f_1602(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1606(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: TRUE f_1606(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1610(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: TRUE f_1610(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) -> f_1298(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, v17242, v17387, v17759, v17244, v17243, v17248, v17249, v17250, 0, 3, 2, 4) :|: TRUE f_1298(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13043, v13044, v13045, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1301(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13043, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) :|: 0 = 0 f_1583(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1587(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1587(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1591(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1591(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1595(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1595(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1599(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1599(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1603(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 1 + v17760 = v17240 && 0 <= v17760 f_1603(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1607(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1607(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1611(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1611(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17248, v17249, v17250, 3, 2, 4) -> f_1614(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1614(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17248, v17249, v17250, 3, 2, 4) -> f_1618(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) :|: v17934 + v17760 = v17242 f_1618(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) -> f_1623(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1623(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) -> f_1628(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1628(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17760, v17934, v17248, v17249, v17250, 3, 2, 4) -> f_1631(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1631(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 4) -> f_1633(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) :|: 2 <= v17760 && 3 <= v17240 && 4 <= v17238 && 3 <= v17242 && 5 <= v17246 && 4 <= v17247 f_1633(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1636(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) :|: 0 = 0 f_1636(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1639(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) :|: TRUE f_1639(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1642(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1642(v17233, v17234, v17235, v17236, v17237, v17760, 1, v17240, v17241, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1644(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17241, v17240, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) :|: 1 + v18499 = v17760 && 1 <= v18499 f_1644(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17241, v17240, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1646(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17241, v17240, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1646(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17241, v17240, v17242, 0, v17246, v17247, v17934, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1648(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v17240, v17242, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1648(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v17240, v17242, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1650(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1650(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1652(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: v18603 = v17934 + v18499 f_1652(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1654(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1654(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1657(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1657(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1562(v17233, v17234, v17235, v17236, v17237, v17760, 1, v18499, v17934, v18603, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1571(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1574(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1574(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1577(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1577(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1580(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1580(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17244, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1584(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1584(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1588(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17243, v17248, v17249, v17250, 3, 2, 4) :|: 1 + v17424 = v17240 && 0 <= v17424 f_1588(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1592(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17243, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1592(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17243, v17248, v17249, v17250, 3, 2, 4) -> f_1596(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1596(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17248, v17249, v17250, 3, 2, 4) -> f_1600(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1600(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17248, v17249, v17250, 3, 2, 4) -> f_1604(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) :|: v17761 + v17424 = v17242 f_1604(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) -> f_1608(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1608(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) -> f_1612(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1612(v17233, v17234, v17235, v17236, v17237, v17238, 1, v17240, v17241, v17242, 0, v17246, v17247, v17424, v17761, v17248, v17249, v17250, 3, 2, 4) -> f_1615(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 4) :|: 0 = 0 f_1615(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 4) -> f_1619(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) :|: 2 <= v17424 && 3 <= v17240 && 4 <= v17238 && 5 <= v17246 && 4 <= v17247 f_1619(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1624(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) :|: 0 = 0 f_1624(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1629(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) :|: TRUE f_1629(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17238, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 4, 5, 2) -> f_1632(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1632(v17233, v17234, v17235, v17236, v17237, v17424, 1, v17240, v17241, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1635(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17241, v17240, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) :|: 1 + v18394 = v17424 && 1 <= v18394 f_1635(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17241, v17240, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1638(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17241, v17240, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1638(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17241, v17240, v17242, 0, v17246, v17247, v17761, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1641(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v17240, v17242, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1641(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v17240, v17242, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1643(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1643(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1645(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: v18500 = v17761 + v18394 f_1645(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1647(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1647(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1649(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1649(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17242, v17240, 0, v17246, v17247, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1651(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17240, 0, v17246, v17247, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1651(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, v17240, 0, v17246, v17247, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1653(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1653(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1655(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: v18394 <= v18500 && 0 <= v17761 && 1 <= v18500 && 2 <= v17242 f_1653(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1656(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: v18500 < v18394 && 1 + v17761 <= 0 f_1655(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1658(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1658(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1660(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: TRUE f_1660(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1576(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1656(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1659(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1659(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1661(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) :|: 0 = 0 f_1661(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 5, 4) -> f_1577(v17233, v17234, v17235, v17236, v17237, v17424, 1, v18394, v17761, v18500, 0, v17246, v17247, v17240, v17242, v17248, v17249, v17250, 3, 2, 4) :|: TRUE f_1527(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) -> f_1533(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) :|: 0 = 0 f_1533(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) -> f_1539(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) :|: 0 = 0 f_1539(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) -> f_1443(v16357, v16358, v16359, v16360, v16361, v16362, 1, v16364, v16365, v16366, v16367, 0, v16369, v16367, v16370, v16371, v16372, v16373, v16374, 3, 2, 4) :|: TRUE f_1310(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, v13044, v13046, v13047, v13048, v13049, v13050, 0, 3, 2, 4) -> f_1315(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, 0, v13044, v13046, v13047, v13048, v13049, v13050, 3, 2, 4) :|: 0 = 0 f_1315(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, 0, v13044, v13046, v13047, v13048, v13049, v13050, 3, 2, 4) -> f_1318(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, 0, v13044, v13046, v13047, v13048, v13049, v13050, 3, 2, 4) :|: 0 = 0 f_1318(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, 0, v13044, v13046, v13047, v13048, v13049, v13050, 3, 2, 4) -> f_1447(v13033, v13034, v13035, v13036, v13037, v13038, 1, v13040, v13041, v13042, v13045, 0, v13044, v13046, v13047, v13048, v13049, v13050, 3, 2, 4) :|: TRUE f_1447(v15421, v15422, v15423, v15424, v15425, v15426, 1, v15428, v15429, v15430, v15431, 0, v15433, v15434, v15435, v15436, v15437, v15438, 3, 2, 4) -> f_1518(v15421, v15422, v15423, v15424, v15425, v15426, 1, v15428, v15429, v15430, v15431, 0, v15433, v15434, v15435, v15436, v15437, v15438, 3, 2, 4) :|: TRUE Combined rules. Obtained 17 rulesP rules: f_1653(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17424:0, 1, 1 + (1 + v18394:1), v17761:0, v17761:1 + (1 + v18394:1), 0, v17246:0, v17247:0, v17240:0, v17242:0, v17248:0, v17249:0, v17250:0, 3, 2, 5, 4) -> f_1653(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, 1 + v18394:1, 1, v18394:1, v17761:1, v17761:1 + v18394:1, 0, v17246:0, v17247:0, 1 + (1 + v18394:1), v17761:1 + (1 + v18394:1), v17248:0, v17249:0, v17250:0, 3, 2, 5, 4) :|: v18394:1 > 0 && v17424:0 > 3 && v17246:0 > 4 && v17247:0 > 3 && v17761:1 + (1 + v18394:1) < 1 + (1 + v18394:1) && v17761:0 < 0 f_1495(v16109:0, v16110:0, v16111:0, v16112:0, v16113:0, v16114:0, 1, 1 + (1 + v17310:0), v16117:0, v16118:0, 1 + v17310:0, v16120:0, 1 + (1 + v17310:0), v16122:0, v16123:0, v16124:0, v16125:0, v16126:0, 0, 3, 2, 4) -> f_1613(v16109:0, v16110:0, v16111:0, v16112:0, v16113:0, 1 + v17310:0, 1, v17310:0, 0, v17933:0, 1 + (1 + v17310:0), v16124:0, v16125:0, v16126:0, 3, 2, 4) :|: 1 + v17310:0 < 1 + (1 + v17310:0) && v17310:0 > 0 && v16114:0 > 3 f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, 1 + v17759:0, v17387:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1521(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, 1 + v17759:0, v17759:0, v16544:0, 1 + v17759:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 0, 3, 2, 4) :|: v17759:0 > 0 && v17387:0 < 0 && v17759:0 >= v17240:0 f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, 1 + v17759:0, v17387:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1521(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, 1 + v17759:0, v17759:0, v16544:0, 1 + v17759:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 0, 3, 2, 4) :|: v17759:0 > 0 && v17387:0 > 0 && v17759:0 >= v17240:0 f_1521(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, v16362:0, 1, v16364:0, v16365:0, v16366:0, 1 + v14733:0, v16544:0, v16369:0, v16370:0, v16371:0, v16372:0, v16373:0, v16374:0, 0, 3, 2, 4) -> f_1495(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, v16362:0, 1, v16364:0, v16365:0, v16366:0, v14733:0, v16544:0, 1 + v14733:0, v16370:0, v16371:0, v16372:0, v16373:0, v16374:0, 0, 3, 2, 4) :|: v14733:0 > -1 && v16544:0 < 0 f_1521(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, v16362:0, 1, v16364:0, v16365:0, v16366:0, 1 + v14733:0, v16544:0, v16369:0, v16370:0, v16371:0, v16372:0, v16373:0, v16374:0, 0, 3, 2, 4) -> f_1495(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, v16362:0, 1, v16364:0, v16365:0, v16366:0, v14733:0, v16544:0, 1 + v14733:0, v16370:0, v16371:0, v16372:0, v16373:0, v16374:0, 0, 3, 2, 4) :|: v14733:0 > -1 && v16544:0 > 0 f_1613(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, v17120:0, 1, 1 + v14733:0, 0, v17933:0, v17117:0, v17123:0, v17124:0, v17125:0, 3, 2, 4) -> f_1495(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, v17120:0, 1, 1 + v14733:0, 0, 1 + v14733:0, v14733:0, v17933:0, 1 + v14733:0, v17117:0, v17120:0, v17123:0, v17124:0, v17125:0, 0, 3, 2, 4) :|: v17933:0 < 0 && v14733:0 > -1 f_1613(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, v17120:0, 1, 1 + v14733:0, 0, v17933:0, v17117:0, v17123:0, v17124:0, v17125:0, 3, 2, 4) -> f_1495(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, v17120:0, 1, 1 + v14733:0, 0, 1 + v14733:0, v14733:0, v17933:0, 1 + v14733:0, v17117:0, v17120:0, v17123:0, v17124:0, v17125:0, 0, 3, 2, 4) :|: v17933:0 > 0 && v14733:0 > -1 f_1568(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, 1 + (1 + v18394:0), v17241:0, v17761:0 + (1 + v18394:0), 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1653(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, 1 + v18394:0, 1, v18394:0, v17761:0, v17761:0 + v18394:0, 0, v17246:0, v17247:0, 1 + (1 + v18394:0), v17761:0 + (1 + v18394:0), v17248:0, v17249:0, v17250:0, 3, 2, 5, 4) :|: v18394:0 > 0 && v17241:0 < 0 && v17761:0 + (1 + v18394:0) < 1 + (1 + v18394:0) && v17238:0 > 3 && v17246:0 > 4 && v17247:0 > 3 f_1495(v16109:0, v16110:0, v16111:0, v16112:0, v16113:0, v16114:0, 1, v16116:0, v16117:0, v16118:0, v16121:0, v16120:0, v16119:0, v16122:0, v16123:0, v16124:0, v16125:0, v16126:0, 0, 3, 2, 4) -> f_1521(v16109:0, v16110:0, v16111:0, v16112:0, v16113:0, v16114:0, 1, v16116:0, v16117:0, v16118:0, v16121:0, v16544:0, v16119:0, v16122:0, v16123:0, v16124:0, v16125:0, v16126:0, 0, 3, 2, 4) :|: v16121:0 > 0 && v16119:0 > 1 && v16121:0 >= v16116:0 f_1653(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17424:0, 1, v18394:0, v17761:0, v18500:0, 0, v17246:0, v17247:0, v17240:0, v17242:0, v17248:0, v17249:0, v17250:0, 3, 2, 5, 4) -> f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17424:0, 1, v18394:0, v17761:0, v18500:0, v17387:0, 0, v17246:0, v17247:0, v17240:0, v17242:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) :|: v17761:0 > -1 && v18500:0 >= v18394:0 && v17242:0 > 1 && v18500:0 > 0 f_1521(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, v16362:0, 1, 1 + (1 + v16584:0), v16365:0, v16366:0, v16026:0 + (1 + v16584:0), 0, v16369:0, v16370:0, v16371:0, v16372:0, v16373:0, v16374:0, 0, 3, 2, 4) -> f_1568(v16357:0, v16358:0, v16359:0, v16360:0, v16361:0, 1 + v16584:0, 1, v16584:0, v16026:0, v16026:0 + v16584:0, 0, v16369:0, v16026:0 + (1 + v16584:0), 1 + (1 + v16584:0), v16026:0 + (1 + v16584:0), v16372:0, v16373:0, v16374:0, 3, 2, 4) :|: v16584:0 > 0 && v16362:0 > 3 && v16369:0 > 3 && v16026:0 + (1 + v16584:0) > 2 f_1568(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, v17242:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, v17240:0, v17241:0, v17242:0, v17387:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) :|: v17241:0 > -1 && v17242:0 >= v17240:0 && v17243:0 > 1 && v17242:0 > 0 f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, 1 + (1 + v17310:0), v17241:0, 1 + (1 + v17310:0), v17387:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1613(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, 1 + v17310:0, 1, v17310:0, 0, v17933:0, 1 + (1 + v17310:0), v17248:0, v17249:0, v17250:0, 3, 2, 4) :|: v17310:0 > 0 && v17238:0 > 3 && 1 + v17310:0 < 1 + (1 + v17310:0) && v17387:0 < 0 f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, 1 + (1 + v17310:0), v17241:0, 1 + (1 + v17310:0), v17387:0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1613(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, 1 + v17310:0, 1, v17310:0, 0, v17933:0, 1 + (1 + v17310:0), v17248:0, v17249:0, v17250:0, 3, 2, 4) :|: v17310:0 > 0 && v17238:0 > 3 && 1 + v17310:0 < 1 + (1 + v17310:0) && v17387:0 > 0 f_1613(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, v17120:0, 1, v16026:0 + (1 + v16584:0), 0, 0, v17117:0, v17123:0, v17124:0, v17125:0, 3, 2, 4) -> f_1568(v17110:0, v17111:0, v17112:0, v17113:0, v17114:0, 1 + v16584:0, 1, v16584:0, v16026:0, v16026:0 + v16584:0, 0, v17117:0, v17120:0, v16026:0 + (1 + v16584:0), v16026:0 + (1 + v16584:0), v17123:0, v17124:0, v17125:0, 3, 2, 4) :|: v16584:0 > 0 && v17120:0 > 3 && v16026:0 + (1 + v16584:0) = 1 + (1 + v16584:0) && v16026:0 + (1 + v16584:0) > 2 && v17117:0 > 3 f_1579(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, v17238:0, 1, 1 + (1 + v18499:0), v17241:0, v17934:0 + (1 + v18499:0), 0, 0, v17246:0, v17247:0, v17244:0, v17243:0, v17248:0, v17249:0, v17250:0, 3, 2, 4) -> f_1568(v17233:0, v17234:0, v17235:0, v17236:0, v17237:0, 1 + v18499:0, 1, v18499:0, v17934:0, v17934:0 + v18499:0, 0, v17246:0, v17247:0, 1 + (1 + v18499:0), v17934:0 + (1 + v18499:0), v17248:0, v17249:0, v17250:0, 3, 2, 4) :|: v18499:0 > 0 && v17238:0 > 3 && v17934:0 + (1 + v18499:0) > 2 && v17246:0 > 4 && v17247:0 > 3 Filtered unneeded arguments: f_1653(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1653(x6, x8, x9, x10, x12, x13, x15) f_1495(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1495(x6, x8, x11, x13) f_1579(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1579(x6, x8, x10, x11, x13, x14) f_1521(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1521(x6, x8, x11, x12, x13) f_1613(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17) -> f_1613(x6, x8, x10, x11) f_1568(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_1568(x6, x8, x9, x10, x12, x13, x15) Removed division, modulo operations, cleaned up constraints. Obtained 17 rules.P rules: f_1653(v17424:0, sum~cons_1~sum~cons_1~v18394:1, v17761:0, sum~v17761:1~sum~cons_1~v18394:1, v17246:0, v17247:0, v17242:0) -> f_1653(1 + v18394:1, v18394:1, v17761:1, v17761:1 + v18394:1, v17246:0, v17247:0, v17761:1 + (1 + v18394:1)) :|: v17424:0 > 3 && v18394:1 > 0 && v17246:0 > 4 && v17247:0 > 3 && v17761:0 < 0 && v17761:1 + (1 + v18394:1) < 1 + (1 + v18394:1) && sum~cons_1~sum~cons_1~v18394:1 = 1 + (1 + v18394:1) && sum~v17761:1~sum~cons_1~v18394:1 = v17761:1 + (1 + v18394:1) f_1495(v16114:0, sum~cons_1~sum~cons_1~v17310:0, sum~cons_1~v17310:0, sum~cons_1~sum~cons_1~v17310:01) -> f_1613(1 + v17310:0, v17310:0, v17933:0, 1 + (1 + v17310:0)) :|: v17310:0 > 0 && v16114:0 > 3 && 1 + v17310:0 < 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:0 = 1 + (1 + v17310:0) && sum~cons_1~v17310:0 = 1 + v17310:0 && sum~cons_1~sum~cons_1~v17310:01 = 1 + (1 + v17310:0) f_1579(v17238:0, v17240:0, sum~cons_1~v17759:0, v17387:0, v17246:0, v17247:0) -> f_1521(v17238:0, v17240:0, v17759:0, v16544:0, 1 + v17759:0) :|: v17387:0 < 0 && v17759:0 >= v17240:0 && v17759:0 > 0 && sum~cons_1~v17759:0 = 1 + v17759:0 f_1579(v17238:0, v17240:0, sum~cons_1~v17759:0, v17387:0, v17246:0, v17247:0) -> f_1521(v17238:0, v17240:0, v17759:0, v16544:0, 1 + v17759:0) :|: v17387:0 > 0 && v17759:0 >= v17240:0 && v17759:0 > 0 && sum~cons_1~v17759:0 = 1 + v17759:0 f_1521(v16362:0, v16364:0, sum~cons_1~v14733:0, v16544:0, v16369:0) -> f_1495(v16362:0, v16364:0, v14733:0, 1 + v14733:0) :|: v14733:0 > -1 && v16544:0 < 0 && sum~cons_1~v14733:0 = 1 + v14733:0 f_1521(v16362:0, v16364:0, sum~cons_1~v14733:0, v16544:0, v16369:0) -> f_1495(v16362:0, v16364:0, v14733:0, 1 + v14733:0) :|: v14733:0 > -1 && v16544:0 > 0 && sum~cons_1~v14733:0 = 1 + v14733:0 f_1613(v17120:0, sum~cons_1~v14733:0, v17933:0, v17117:0) -> f_1495(v17120:0, 1 + v14733:0, v14733:0, 1 + v14733:0) :|: v17933:0 < 0 && v14733:0 > -1 && sum~cons_1~v14733:0 = 1 + v14733:0 f_1613(v17120:0, sum~cons_1~v14733:0, v17933:0, v17117:0) -> f_1495(v17120:0, 1 + v14733:0, v14733:0, 1 + v14733:0) :|: v17933:0 > 0 && v14733:0 > -1 && sum~cons_1~v14733:0 = 1 + v14733:0 f_1568(v17238:0, sum~cons_1~sum~cons_1~v18394:0, v17241:0, sum~v17761:0~sum~cons_1~v18394:0, v17246:0, v17247:0, v17243:0) -> f_1653(1 + v18394:0, v18394:0, v17761:0, v17761:0 + v18394:0, v17246:0, v17247:0, v17761:0 + (1 + v18394:0)) :|: v17241:0 < 0 && v18394:0 > 0 && v17761:0 + (1 + v18394:0) < 1 + (1 + v18394:0) && v17238:0 > 3 && v17247:0 > 3 && v17246:0 > 4 && sum~cons_1~sum~cons_1~v18394:0 = 1 + (1 + v18394:0) && sum~v17761:0~sum~cons_1~v18394:0 = v17761:0 + (1 + v18394:0) f_1495(v16114:0, v16116:0, v16121:0, v16119:0) -> f_1521(v16114:0, v16116:0, v16121:0, v16544:0, v16119:0) :|: v16119:0 > 1 && v16121:0 >= v16116:0 && v16121:0 > 0 f_1653(v17424:0, v18394:0, v17761:0, v18500:0, v17246:0, v17247:0, v17242:0) -> f_1579(v17424:0, v18394:0, v18500:0, v17387:0, v17246:0, v17247:0) :|: v18500:0 >= v18394:0 && v17761:0 > -1 && v18500:0 > 0 && v17242:0 > 1 f_1521(v16362:0, sum~cons_1~sum~cons_1~v16584:0, sum~v16026:0~sum~cons_1~v16584:0, cons_0, v16369:0) -> f_1568(1 + v16584:0, v16584:0, v16026:0, v16026:0 + v16584:0, v16369:0, v16026:0 + (1 + v16584:0), v16026:0 + (1 + v16584:0)) :|: v16362:0 > 3 && v16584:0 > 0 && v16026:0 + (1 + v16584:0) > 2 && v16369:0 > 3 && sum~cons_1~sum~cons_1~v16584:0 = 1 + (1 + v16584:0) && sum~v16026:0~sum~cons_1~v16584:0 = v16026:0 + (1 + v16584:0) && cons_0 = 0 f_1568(v17238:0, v17240:0, v17241:0, v17242:0, v17246:0, v17247:0, v17243:0) -> f_1579(v17238:0, v17240:0, v17242:0, v17387:0, v17246:0, v17247:0) :|: v17242:0 >= v17240:0 && v17241:0 > -1 && v17242:0 > 0 && v17243:0 > 1 f_1579(v17238:0, sum~cons_1~sum~cons_1~v17310:0, sum~cons_1~sum~cons_1~v17310:01, v17387:0, v17246:0, v17247:0) -> f_1613(1 + v17310:0, v17310:0, v17933:0, 1 + (1 + v17310:0)) :|: v17238:0 > 3 && v17310:0 > 0 && v17387:0 < 0 && 1 + v17310:0 < 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:0 = 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:01 = 1 + (1 + v17310:0) f_1579(v17238:0, sum~cons_1~sum~cons_1~v17310:0, sum~cons_1~sum~cons_1~v17310:01, v17387:0, v17246:0, v17247:0) -> f_1613(1 + v17310:0, v17310:0, v17933:0, 1 + (1 + v17310:0)) :|: v17238:0 > 3 && v17310:0 > 0 && v17387:0 > 0 && 1 + v17310:0 < 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:0 = 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:01 = 1 + (1 + v17310:0) f_1613(v17120:0, sum~v16026:0~sum~cons_1~v16584:0, cons_0, v17117:0) -> f_1568(1 + v16584:0, v16584:0, v16026:0, v16026:0 + v16584:0, v17117:0, v17120:0, v16026:0 + (1 + v16584:0)) :|: v17120:0 > 3 && v16584:0 > 0 && v16026:0 + (1 + v16584:0) = 1 + (1 + v16584:0) && v17117:0 > 3 && v16026:0 + (1 + v16584:0) > 2 && sum~v16026:0~sum~cons_1~v16584:0 = v16026:0 + (1 + v16584:0) && cons_0 = 0 f_1579(v17238:0, sum~cons_1~sum~cons_1~v18499:0, sum~v17934:0~sum~cons_1~v18499:0, cons_0, v17246:0, v17247:0) -> f_1568(1 + v18499:0, v18499:0, v17934:0, v17934:0 + v18499:0, v17246:0, v17247:0, v17934:0 + (1 + v18499:0)) :|: v17238:0 > 3 && v18499:0 > 0 && v17934:0 + (1 + v18499:0) > 2 && v17247:0 > 3 && v17246:0 > 4 && sum~cons_1~sum~cons_1~v18499:0 = 1 + (1 + v18499:0) && sum~v17934:0~sum~cons_1~v18499:0 = v17934:0 + (1 + v18499:0) && cons_0 = 0 ---------------------------------------- (9) Obligation: Rules: f_1653(v17424:0, sum~cons_1~sum~cons_1~v18394:1, v17761:0, sum~v17761:1~sum~cons_1~v18394:1, v17246:0, v17247:0, v17242:0) -> f_1653(1 + v18394:1, v18394:1, v17761:1, v17761:1 + v18394:1, v17246:0, v17247:0, v17761:1 + (1 + v18394:1)) :|: v17424:0 > 3 && v18394:1 > 0 && v17246:0 > 4 && v17247:0 > 3 && v17761:0 < 0 && v17761:1 + (1 + v18394:1) < 1 + (1 + v18394:1) && sum~cons_1~sum~cons_1~v18394:1 = 1 + (1 + v18394:1) && sum~v17761:1~sum~cons_1~v18394:1 = v17761:1 + (1 + v18394:1) f_1495(v16114:0, sum~cons_1~sum~cons_1~v17310:0, sum~cons_1~v17310:0, sum~cons_1~sum~cons_1~v17310:01) -> f_1613(1 + v17310:0, v17310:0, v17933:0, 1 + (1 + v17310:0)) :|: v17310:0 > 0 && v16114:0 > 3 && 1 + v17310:0 < 1 + (1 + v17310:0) && sum~cons_1~sum~cons_1~v17310:0 = 1 + (1 + v17310:0) && sum~cons_1~v17310:0 = 1 + v17310:0 && sum~cons_1~sum~cons_1~v17310:01 = 1 + (1 + v17310:0) f_1579(x, x1, x2, x3, x4, x5) -> f_1521(x, x1, x6, x7, 1 + x6) :|: x3 < 0 && x6 >= x1 && x6 > 0 && x2 = 1 + x6 f_1579(x8, x9, x10, x11, x12, x13) -> f_1521(x8, x9, x14, x15, 1 + x14) :|: x11 > 0 && x14 >= x9 && x14 > 0 && x10 = 1 + x14 f_1521(v16362:0, v16364:0, sum~cons_1~v14733:0, v16544:0, v16369:0) -> f_1495(v16362:0, v16364:0, v14733:0, 1 + v14733:0) :|: v14733:0 > -1 && v16544:0 < 0 && sum~cons_1~v14733:0 = 1 + v14733:0 f_1521(x16, x17, x18, x19, x20) -> f_1495(x16, x17, x21, 1 + x21) :|: x21 > -1 && x19 > 0 && x18 = 1 + x21 f_1613(x22, x23, x24, x25) -> f_1495(x22, 1 + x26, x26, 1 + x26) :|: x24 < 0 && x26 > -1 && x23 = 1 + x26 f_1613(x27, x28, x29, x30) -> f_1495(x27, 1 + x31, x31, 1 + x31) :|: x29 > 0 && x31 > -1 && x28 = 1 + x31 f_1568(x32, x33, x34, x35, x36, x37, x38) -> f_1653(1 + x39, x39, x40, x40 + x39, x36, x37, x40 + (1 + x39)) :|: x34 < 0 && x39 > 0 && x40 + (1 + x39) < 1 + (1 + x39) && x32 > 3 && x37 > 3 && x36 > 4 && x33 = 1 + (1 + x39) && x35 = x40 + (1 + x39) f_1495(x41, x42, x43, x44) -> f_1521(x41, x42, x43, x45, x44) :|: x44 > 1 && x43 >= x42 && x43 > 0 f_1653(x46, x47, x48, x49, x50, x51, x52) -> f_1579(x46, x47, x49, x53, x50, x51) :|: x49 >= x47 && x48 > -1 && x49 > 0 && x52 > 1 f_1521(x54, x55, x56, x57, x58) -> f_1568(1 + x59, x59, x60, x60 + x59, x58, x60 + (1 + x59), x60 + (1 + x59)) :|: x54 > 3 && x59 > 0 && x60 + (1 + x59) > 2 && x58 > 3 && x55 = 1 + (1 + x59) && x56 = x60 + (1 + x59) && x57 = 0 f_1568(x61, x62, x63, x64, x65, x66, x67) -> f_1579(x61, x62, x64, x68, x65, x66) :|: x64 >= x62 && x63 > -1 && x64 > 0 && x67 > 1 f_1579(x69, x70, x71, x72, x73, x74) -> f_1613(1 + x75, x75, x76, 1 + (1 + x75)) :|: x69 > 3 && x75 > 0 && x72 < 0 && 1 + x75 < 1 + (1 + x75) && x70 = 1 + (1 + x75) && x71 = 1 + (1 + x75) f_1579(x77, x78, x79, x80, x81, x82) -> f_1613(1 + x83, x83, x84, 1 + (1 + x83)) :|: x77 > 3 && x83 > 0 && x80 > 0 && 1 + x83 < 1 + (1 + x83) && x78 = 1 + (1 + x83) && x79 = 1 + (1 + x83) f_1613(v17120:0, sum~v16026:0~sum~cons_1~v16584:0, cons_0, v17117:0) -> f_1568(1 + v16584:0, v16584:0, v16026:0, v16026:0 + v16584:0, v17117:0, v17120:0, v16026:0 + (1 + v16584:0)) :|: v17120:0 > 3 && v16584:0 > 0 && v16026:0 + (1 + v16584:0) = 1 + (1 + v16584:0) && v17117:0 > 3 && v16026:0 + (1 + v16584:0) > 2 && sum~v16026:0~sum~cons_1~v16584:0 = v16026:0 + (1 + v16584:0) && cons_0 = 0 f_1579(x85, x86, x87, x88, x89, x90) -> f_1568(1 + x91, x91, x92, x92 + x91, x89, x90, x92 + (1 + x91)) :|: x85 > 3 && x91 > 0 && x92 + (1 + x91) > 2 && x90 > 3 && x89 > 4 && x86 = 1 + (1 + x91) && x87 = x92 + (1 + x91) && x88 = 0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1653_7,1) (f_1495_7,2) (f_1613_7,3) (f_1579_7,4) (f_1521_7,5) (f_1568_7,6) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 0; TO: 3; FROM: 0; TO: 4; FROM: 0; TO: 5; FROM: 0; TO: 6; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := oldX3 - (oldX7 + 1); assume(oldX0 > 3 && oldX7 > 0 && oldX4 > 4 && oldX5 > 3 && oldX2 < 0 && oldX8 + (1 + oldX7) < 1 + (1 + oldX7) && oldX1 = 1 + (1 + oldX7) && oldX3 = oldX8 + (1 + oldX7)); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX3 - (oldX7 + 1); x3 := oldX8 + oldX7; x4 := oldX4; x5 := oldX5; x6 := oldX8 + (1 + oldX7); TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); oldX11 := nondet(); assume(oldX7 > 0 && oldX0 > 3 && 1 + oldX7 < 1 + (1 + oldX7) && oldX1 = 1 + (1 + oldX7) && oldX2 = 1 + oldX7 && oldX3 = 1 + (1 + oldX7)); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX8; x3 := 1 + (1 + oldX7); x4 := oldX9; x5 := oldX10; x6 := oldX11; TO: 3; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX2 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX3 < 0 && oldX7 >= oldX1 && oldX7 > 0 && oldX2 = 1 + oldX7); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX8; x4 := 1 + oldX7; x5 := oldX9; x6 := oldX10; TO: 5; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX2 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX3 > 0 && oldX7 >= oldX1 && oldX7 > 0 && oldX2 = 1 + oldX7); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX8; x4 := 1 + oldX7; x5 := oldX9; x6 := oldX10; TO: 5; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX2 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX7 > -1 && oldX3 < 0 && oldX2 = 1 + oldX7); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX7; x4 := oldX8; x5 := oldX9; x6 := oldX10; TO: 2; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX2 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX7 > -1 && oldX3 > 0 && oldX2 = 1 + oldX7); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX7; x4 := oldX8; x5 := oldX9; x6 := oldX10; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX2 < 0 && oldX7 > -1 && oldX1 = 1 + oldX7); x0 := oldX0; x1 := 1 + oldX7; x2 := oldX1 - 1; x3 := 1 + oldX7; x4 := oldX8; x5 := oldX9; x6 := oldX10; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 1; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); assume(oldX2 > 0 && oldX7 > -1 && oldX1 = 1 + oldX7); x0 := oldX0; x1 := 1 + oldX7; x2 := oldX1 - 1; x3 := 1 + oldX7; x4 := oldX8; x5 := oldX9; x6 := oldX10; TO: 2; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := oldX3 - (oldX7 + 1); assume(oldX2 < 0 && oldX7 > 0 && oldX8 + (1 + oldX7) < 1 + (1 + oldX7) && oldX0 > 3 && oldX5 > 3 && oldX4 > 4 && oldX1 = 1 + (1 + oldX7) && oldX3 = oldX8 + (1 + oldX7)); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX3 - (oldX7 + 1); x3 := oldX8 + oldX7; x4 := oldX4; x5 := oldX5; x6 := oldX8 + (1 + oldX7); TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX3 > 1 && oldX2 >= oldX1 && oldX2 > 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX7; x4 := oldX3; x5 := oldX8; x6 := oldX9; TO: 5; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := nondet(); oldX8 := nondet(); assume(oldX3 >= oldX1 && oldX2 > -1 && oldX3 > 0 && oldX6 > 1); x0 := oldX0; x1 := oldX1; x2 := oldX3; x3 := oldX7; x4 := oldX4; x5 := oldX5; x6 := oldX8; TO: 4; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := oldX2 - (oldX7 + 1); assume(oldX0 > 3 && oldX7 > 0 && oldX8 + (1 + oldX7) > 2 && oldX4 > 3 && oldX1 = 1 + (1 + oldX7) && oldX2 = oldX8 + (1 + oldX7) && oldX3 = 0); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX2 - (oldX7 + 1); x3 := oldX8 + oldX7; x4 := oldX4; x5 := oldX8 + (1 + oldX7); x6 := oldX8 + (1 + oldX7); TO: 6; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := nondet(); oldX8 := nondet(); assume(oldX3 >= oldX1 && oldX2 > -1 && oldX3 > 0 && oldX6 > 1); x0 := oldX0; x1 := oldX1; x2 := oldX3; x3 := oldX7; x4 := oldX4; x5 := oldX5; x6 := oldX8; TO: 4; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); oldX11 := nondet(); assume(oldX0 > 3 && oldX7 > 0 && oldX3 < 0 && 1 + oldX7 < 1 + (1 + oldX7) && oldX1 = 1 + (1 + oldX7) && oldX2 = 1 + (1 + oldX7)); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX8; x3 := 1 + (1 + oldX7); x4 := oldX9; x5 := oldX10; x6 := oldX11; TO: 3; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := nondet(); oldX9 := nondet(); oldX10 := nondet(); oldX11 := nondet(); assume(oldX0 > 3 && oldX7 > 0 && oldX3 > 0 && 1 + oldX7 < 1 + (1 + oldX7) && oldX1 = 1 + (1 + oldX7) && oldX2 = 1 + (1 + oldX7)); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX8; x3 := 1 + (1 + oldX7); x4 := oldX9; x5 := oldX10; x6 := oldX11; TO: 3; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := nondet(); oldX8 := nondet(); assume(oldX0 > 3 && oldX7 > 0 && oldX8 + (1 + oldX7) = 1 + (1 + oldX7) && oldX3 > 3 && oldX8 + (1 + oldX7) > 2 && oldX1 = oldX8 + (1 + oldX7) && oldX2 = 0); x0 := 1 + oldX7; x1 := oldX7; x2 := oldX8; x3 := oldX8 + oldX7; x4 := oldX3; x5 := oldX0; x6 := oldX8 + (1 + oldX7); TO: 6; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX1 - 2; oldX8 := oldX2 - (oldX7 + 1); assume(oldX0 > 3 && oldX7 > 0 && oldX8 + (1 + oldX7) > 2 && oldX5 > 3 && oldX4 > 4 && oldX1 = 1 + (1 + oldX7) && oldX2 = oldX8 + (1 + oldX7) && oldX3 = 0); x0 := 1 + oldX7; x1 := oldX1 - 2; x2 := oldX2 - (oldX7 + 1); x3 := oldX8 + oldX7; x4 := oldX4; x5 := oldX5; x6 := oldX8 + (1 + oldX7); TO: 6; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 14, 17, 18, 26, 29, 30, 38, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 51, 61, 64, 65 using the following rank functions: - Rank function 1: RF for loc. 10: -2-x1+6*x3 RF for loc. 11: 3+5*x2 RF for loc. 12: 5+5*x1 RF for loc. 13: -4+5*x2 RF for loc. 14: 5*x2 RF for loc. 15: -2+5*x3 RF for loc. 16: -3-x1+6*x3 RF for loc. 20: 2+5*x2 RF for loc. 24: 5+5*x1 RF for loc. 28: -3+5*x3 Bound for (chained) transitions 18: 2 Bound for (chained) transitions 29: 12 Bound for (chained) transitions 30: 7 Bound for (chained) transitions 38: 6 Bound for (chained) transitions 39: 6 Bound for (chained) transitions 40: 11 Bound for (chained) transitions 41: 11 Bound for (chained) transitions 42: 11 Bound for (chained) transitions 43: 5 Bound for (chained) transitions 44: 5 Bound for (chained) transitions 45: 15 Bound for (chained) transitions 49: 10 Bound for (chained) transitions 50: 10 Bound for (chained) transitions 51: 20 Bound for (chained) transitions 65: 2 - Rank function 2: RF for loc. 10: x1 RF for loc. 11: 1 RF for loc. 12: 1 RF for loc. 15: x1 RF for loc. 16: -1+x1 RF for loc. 20: 0 RF for loc. 24: 0 RF for loc. 28: -1+x1 Bound for (chained) transitions 17: 2 Bound for (chained) transitions 26: 1 Bound for (chained) transitions 46: 1 Bound for (chained) transitions 64: 2 - Rank function 3: RF for loc. 10: 1 RF for loc. 15: 1 RF for loc. 16: 0 RF for loc. 28: 0 Bound for (chained) transitions 14: 1 Bound for (chained) transitions 61: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 68 rulesP rules: f_1089(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1092(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: 2 <= v9432 && 3 <= v9428 && 4 <= v9426 f_1092(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1097(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1097(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1102(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1102(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1109(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1109(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1113(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9429, v9428, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: 1 + v10225 = v9432 && 1 <= v10225 f_1113(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9429, v9428, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1117(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9429, v9428, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1117(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9429, v9428, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1121(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v9428, v9430, 0, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1121(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v9428, v9430, 0, v9434, v9435, v9436, 3, 2, 4) -> f_1125(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1125(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) -> f_1130(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) :|: v10374 = v9433 + v10225 f_1130(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) -> f_1133(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1133(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) -> f_1137(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1137(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9430, v9428, 0, v9434, v9435, v9436, 3, 2, 4) -> f_1141(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9428, 0, v9430, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1141(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, v9428, 0, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1146(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1146(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1149(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: v10225 <= v10374 && 0 <= v9433 && 1 <= v10374 && 2 <= v9430 f_1146(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1150(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: v10374 < v10225 && 1 + v9433 <= 0 f_1149(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1154(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1154(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1159(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1159(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1160(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1160(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) -> f_1166(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, v10794, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) :|: TRUE f_1166(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, v10794, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) -> f_1171(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) :|: v10794 = 0 f_1171(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) -> f_1176(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) :|: 0 = 0 f_1176(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) -> f_1182(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) :|: 0 = 0 f_1182(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) -> f_1183(v10592, v10593, v10594, v10595, v10596, v10597, 1, v10599, v10600, v10601, 0, v10603, v10604, v10605, v10606, v10607, 3, 2, 4) :|: TRUE f_1183(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11086, v11087, v11088, v11089, v11090, 3, 2, 4) -> f_1188(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11086, v11087, v11088, v11089, v11090, 3, 2, 4) :|: TRUE f_1188(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11086, v11087, v11088, v11089, v11090, 3, 2, 4) -> f_1193(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11087, v11088, v11089, v11090, 3, 2, 4) :|: 0 = 0 f_1193(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11087, v11088, v11089, v11090, 3, 2, 4) -> f_1198(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11087, v11088, v11089, v11090, 3, 2, 4) :|: 1 + v11223 = v11082 && 0 <= v11223 f_1198(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11087, v11088, v11089, v11090, 3, 2, 4) -> f_1203(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11087, v11088, v11089, v11090, 3, 2, 4) :|: TRUE f_1203(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11087, v11088, v11089, v11090, 3, 2, 4) -> f_1209(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11088, v11089, v11090, 3, 2, 4) :|: 0 = 0 f_1209(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11088, v11089, v11090, 3, 2, 4) -> f_1214(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11088, v11089, v11090, 3, 2, 4) :|: 0 = 0 f_1214(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11088, v11089, v11090, 3, 2, 4) -> f_1220(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) :|: v11463 + v11223 = v11084 f_1220(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) -> f_1228(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) :|: TRUE f_1228(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) -> f_1236(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) :|: TRUE f_1236(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) -> f_1086(v11075, v11076, v11077, v11078, v11079, v11080, 1, v11082, v11083, v11084, 0, v11223, v11463, v11088, v11089, v11090, 3, 2, 4) :|: TRUE f_1086(v9421, v9422, v9423, v9424, v9425, v9426, 1, v9428, v9429, v9430, 0, v9432, v9433, v9434, v9435, v9436, 3, 2, 4) -> f_1089(v9421, v9422, v9423, v9424, v9425, v9432, 1, v9426, v9428, v9429, v9430, 0, v9433, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1150(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1155(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1155(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1161(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: 0 = 0 f_1161(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) -> f_1162(v9421, v9422, v9423, v9424, v9425, v9432, 1, v10225, v9433, v10374, 0, v9428, v9430, v9434, v9435, v9436, 3, 2, 4) :|: TRUE f_1162(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10698, v10699, v10700, v10701, v10702, 3, 2, 4) -> f_1167(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10698, v10699, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1167(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10698, v10699, v10700, v10701, v10702, 3, 2, 4) -> f_1172(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10699, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1172(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10699, v10700, v10701, v10702, 3, 2, 4) -> f_1177(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10699, v10700, v10701, v10702, 3, 2, 4) :|: 1 + v10877 = v10694 && 0 <= v10877 f_1177(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10699, v10700, v10701, v10702, 3, 2, 4) -> f_1184(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10699, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1184(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10699, v10700, v10701, v10702, 3, 2, 4) -> f_1189(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1189(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10700, v10701, v10702, 3, 2, 4) -> f_1194(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1194(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v10700, v10701, v10702, 3, 2, 4) -> f_1199(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) :|: v11224 + v10877 = v10696 f_1199(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1204(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1204(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1210(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1210(v10687, v10688, v10689, v10690, v10691, v10692, 1, v10694, v10695, v10696, 0, v10877, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1215(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1215(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1221(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: 2 <= v10877 && 3 <= v10694 && 4 <= v10692 f_1221(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1229(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1229(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1237(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1237(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10692, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1244(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1244(v10687, v10688, v10689, v10690, v10691, v10877, 1, v10694, v10695, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1251(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v10695, v10694, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: 1 + v12069 = v10877 && 1 <= v12069 f_1251(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v10695, v10694, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1259(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v10695, v10694, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1259(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v10695, v10694, v10696, 0, v11224, v10700, v10701, v10702, 3, 2, 4) -> f_1267(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v10694, v10696, 0, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1267(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v10694, v10696, 0, v10700, v10701, v10702, 3, 2, 4) -> f_1277(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1277(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) -> f_1284(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) :|: v12889 = v11224 + v12069 f_1284(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) -> f_1288(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1288(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) -> f_1292(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1292(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10696, v10694, 0, v10700, v10701, v10702, 3, 2, 4) -> f_1296(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10694, 0, v10696, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1296(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, v10694, 0, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1300(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1300(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1303(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: v12069 <= v12889 && 0 <= v11224 && 1 <= v12889 && 2 <= v10696 f_1300(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1304(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: v12889 < v12069 && 1 + v11224 <= 0 f_1303(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1307(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1307(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1312(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1312(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1160(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: TRUE f_1304(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1308(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1308(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1313(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: 0 = 0 f_1313(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) -> f_1162(v10687, v10688, v10689, v10690, v10691, v10877, 1, v12069, v11224, v12889, 0, v10694, v10696, v10700, v10701, v10702, 3, 2, 4) :|: TRUE Combined rules. Obtained 4 rulesP rules: f_1300(v10687:0, v10688:0, v10689:0, v10690:0, v10691:0, v10877:0, 1, 1 + v11223:0, v11224:0, v11463:0 + v11223:0, 0, v10694:0, v10696:0, v10700:0, v10701:0, v10702:0, 3, 2, 4) -> f_1089(v10687:0, v10688:0, v10689:0, v10690:0, v10691:0, v11223:0, 1, v10877:0, 1 + v11223:0, v11224:0, v11463:0 + v11223:0, 0, v11463:0, v10700:0, v10701:0, v10702:0, 3, 2, 4) :|: v11223:0 > -1 && v11224:0 > -1 && v11463:0 + v11223:0 >= 1 + v11223:0 && v10696:0 > 1 && v11463:0 + v11223:0 > 0 f_1089(v9421:0, v9422:0, v9423:0, v9424:0, v9425:0, 1 + (1 + (1 + v12069:0)), 1, v9426:0, v9428:0, v9429:0, v9430:0, 0, v9433:0, v9434:0, v9435:0, v9436:0, 3, 2, 4) -> f_1300(v9421:0, v9422:0, v9423:0, v9424:0, v9425:0, 1 + v12069:0, 1, v12069:0, v11224:0, v11224:0 + v12069:0, 0, 1 + (1 + v12069:0), v11224:0 + (1 + v12069:0), v9434:0, v9435:0, v9436:0, 3, 2, 4) :|: v12069:0 > 0 && v9428:0 > 2 && v9426:0 > 3 && v9433:0 + (1 + (1 + v12069:0)) = v11224:0 + (1 + v12069:0) && v9433:0 < 0 && v11224:0 + (1 + v12069:0) < 1 + (1 + v12069:0) f_1300(v10687:0, v10688:0, v10689:0, v10690:0, v10691:0, v10877:0, 1, 1 + (1 + v12069:1), v11224:0, v11224:1 + (1 + v12069:1), 0, v10694:0, v10696:0, v10700:0, v10701:0, v10702:0, 3, 2, 4) -> f_1300(v10687:0, v10688:0, v10689:0, v10690:0, v10691:0, 1 + v12069:1, 1, v12069:1, v11224:1, v11224:1 + v12069:1, 0, 1 + (1 + v12069:1), v11224:1 + (1 + v12069:1), v10700:0, v10701:0, v10702:0, 3, 2, 4) :|: v12069:1 > 0 && v10877:0 > 3 && v11224:1 + (1 + v12069:1) < 1 + (1 + v12069:1) && v11224:0 < 0 f_1089(v9421:0, v9422:0, v9423:0, v9424:0, v9425:0, 1 + (1 + v11223:0), 1, v9426:0, v9428:0, v9429:0, v9430:0, 0, v9433:0, v9434:0, v9435:0, v9436:0, 3, 2, 4) -> f_1089(v9421:0, v9422:0, v9423:0, v9424:0, v9425:0, v11223:0, 1, 1 + (1 + v11223:0), 1 + v11223:0, v9433:0, v11463:0 + v11223:0, 0, v11463:0, v9434:0, v9435:0, v9436:0, 3, 2, 4) :|: v9428:0 > 2 && v11223:0 > -1 && v9426:0 > 3 && v9433:0 + (1 + v11223:0) = v11463:0 + v11223:0 && v9433:0 > -1 && v11463:0 + v11223:0 >= 1 + v11223:0 && v11463:0 + v11223:0 > 0 && v9430:0 > 1 Filtered unneeded arguments: f_1300(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_1300(x6, x8, x9, x10, x13) f_1089(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_1089(x6, x8, x9, x11, x13) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: f_1300(v10877:0, sum~cons_1~v11223:0, v11224:0, sum~v11463:0~v11223:0, v10696:0) -> f_1089(v11223:0, v10877:0, 1 + v11223:0, v11463:0 + v11223:0, v11463:0) :|: v11224:0 > -1 && v11223:0 > -1 && v11463:0 + v11223:0 >= 1 + v11223:0 && v11463:0 + v11223:0 > 0 && v10696:0 > 1 && sum~cons_1~v11223:0 = 1 + v11223:0 && sum~v11463:0~v11223:0 = v11463:0 + v11223:0 f_1089(sum~cons_1~sum~cons_1~sum~cons_1~v12069:0, v9426:0, v9428:0, v9430:0, v9433:0) -> f_1300(1 + v12069:0, v12069:0, v11224:0, v11224:0 + v12069:0, v11224:0 + (1 + v12069:0)) :|: v9428:0 > 2 && v12069:0 > 0 && v9426:0 > 3 && v9433:0 + (1 + (1 + v12069:0)) = v11224:0 + (1 + v12069:0) && v11224:0 + (1 + v12069:0) < 1 + (1 + v12069:0) && v9433:0 < 0 && sum~cons_1~sum~cons_1~sum~cons_1~v12069:0 = 1 + (1 + (1 + v12069:0)) f_1300(v10877:0, sum~cons_1~sum~cons_1~v12069:1, v11224:0, sum~v11224:1~sum~cons_1~v12069:1, v10696:0) -> f_1300(1 + v12069:1, v12069:1, v11224:1, v11224:1 + v12069:1, v11224:1 + (1 + v12069:1)) :|: v10877:0 > 3 && v12069:1 > 0 && v11224:0 < 0 && v11224:1 + (1 + v12069:1) < 1 + (1 + v12069:1) && sum~cons_1~sum~cons_1~v12069:1 = 1 + (1 + v12069:1) && sum~v11224:1~sum~cons_1~v12069:1 = v11224:1 + (1 + v12069:1) f_1089(sum~cons_1~sum~cons_1~v11223:0, v9426:0, v9428:0, v9430:0, v9433:0) -> f_1089(v11223:0, 1 + (1 + v11223:0), 1 + v11223:0, v11463:0 + v11223:0, v11463:0) :|: v11223:0 > -1 && v9428:0 > 2 && v9426:0 > 3 && v9433:0 + (1 + v11223:0) = v11463:0 + v11223:0 && v9433:0 > -1 && v11463:0 + v11223:0 >= 1 + v11223:0 && v9430:0 > 1 && v11463:0 + v11223:0 > 0 && sum~cons_1~sum~cons_1~v11223:0 = 1 + (1 + v11223:0) ---------------------------------------- (16) Obligation: Rules: f_1300(v10877:0, sum~cons_1~v11223:0, v11224:0, sum~v11463:0~v11223:0, v10696:0) -> f_1089(v11223:0, v10877:0, 1 + v11223:0, v11463:0 + v11223:0, v11463:0) :|: v11224:0 > -1 && v11223:0 > -1 && v11463:0 + v11223:0 >= 1 + v11223:0 && v11463:0 + v11223:0 > 0 && v10696:0 > 1 && sum~cons_1~v11223:0 = 1 + v11223:0 && sum~v11463:0~v11223:0 = v11463:0 + v11223:0 f_1089(x, x1, x2, x3, x4) -> f_1300(1 + x5, x5, x6, x6 + x5, x6 + (1 + x5)) :|: x2 > 2 && x5 > 0 && x1 > 3 && x4 + (1 + (1 + x5)) = x6 + (1 + x5) && x6 + (1 + x5) < 1 + (1 + x5) && x4 < 0 && x = 1 + (1 + (1 + x5)) f_1300(x7, x8, x9, x10, x11) -> f_1300(1 + x12, x12, x13, x13 + x12, x13 + (1 + x12)) :|: x7 > 3 && x12 > 0 && x9 < 0 && x13 + (1 + x12) < 1 + (1 + x12) && x8 = 1 + (1 + x12) && x10 = x13 + (1 + x12) f_1089(x14, x15, x16, x17, x18) -> f_1089(x19, 1 + (1 + x19), 1 + x19, x20 + x19, x20) :|: x19 > -1 && x16 > 2 && x15 > 3 && x18 + (1 + x19) = x20 + x19 && x18 > -1 && x20 + x19 >= 1 + x19 && x17 > 1 && x20 + x19 > 0 && x14 = 1 + (1 + x19) ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1300_5,1) (f_1089_5,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 := oldX1 - 1; oldX6 := oldX3 - oldX5; assume(oldX2 > -1 && oldX5 > -1 && oldX6 + oldX5 >= 1 + oldX5 && oldX6 + oldX5 > 0 && oldX4 > 1 && oldX1 = 1 + oldX5 && oldX3 = oldX6 + oldX5); x0 := oldX1 - 1; x1 := oldX0; x2 := 1 + oldX5; x3 := oldX6 + oldX5; x4 := oldX3 - oldX5; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 3; oldX6 := oldX4 + (oldX5 + 2) - (oldX5 + 1); assume(oldX2 > 2 && oldX5 > 0 && oldX1 > 3 && oldX4 + (1 + (1 + oldX5)) = oldX6 + (1 + oldX5) && oldX6 + (1 + oldX5) < 1 + (1 + oldX5) && oldX4 < 0 && oldX0 = 1 + (1 + (1 + oldX5))); x0 := 1 + oldX5; x1 := oldX0 - 3; x2 := oldX4 + (oldX5 + 2) - (oldX5 + 1); x3 := oldX6 + oldX5; x4 := oldX6 + (1 + oldX5); TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := oldX3 - (oldX5 + 1); assume(oldX0 > 3 && oldX5 > 0 && oldX2 < 0 && oldX6 + (1 + oldX5) < 1 + (1 + oldX5) && oldX1 = 1 + (1 + oldX5) && oldX3 = oldX6 + (1 + oldX5)); x0 := 1 + oldX5; x1 := oldX1 - 2; x2 := oldX3 - (oldX5 + 1); x3 := oldX6 + oldX5; x4 := oldX6 + (1 + oldX5); TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX6 := oldX4 + (oldX5 + 1) - oldX5; assume(oldX5 > -1 && oldX2 > 2 && oldX1 > 3 && oldX4 + (1 + oldX5) = oldX6 + oldX5 && oldX4 > -1 && oldX6 + oldX5 >= 1 + oldX5 && oldX3 > 1 && oldX6 + oldX5 > 0 && oldX0 = 1 + (1 + oldX5)); x0 := oldX0 - 2; x1 := 1 + (1 + oldX5); x2 := 1 + oldX5; x3 := oldX6 + oldX5; x4 := oldX4 + (oldX5 + 1) - oldX5; TO: 2; ---------------------------------------- (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: 2+x1 RF for loc. 7: 1+x0 RF for loc. 8: 1+x1 RF for loc. 12: x0 Bound for (chained) transitions 5: 2 Bound for (chained) transitions 6: 4 Bound for (chained) transitions 17: 4 Bound for (chained) transitions 18: 2 - Rank function 2: RF for loc. 6: 1 RF for loc. 7: 1 RF for loc. 8: 0 RF for loc. 12: 0 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 14: 1 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 27 rulesP rules: f_494(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 2, 4) -> f_500(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: 2 <= v1334 && 3 <= v1330 && 4 <= v1328 && 4 <= v1326 f_500(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_507(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_507(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_514(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: TRUE f_514(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_521(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_521(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_527(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1331, v1330, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: 1 + v1569 = v1334 && 1 <= v1569 f_527(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1331, v1330, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_533(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1331, v1330, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) :|: TRUE f_533(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1331, v1330, v1332, 0, v1335, v1336, v1337, v1338, 3, 4, 2) -> f_540(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1330, v1332, 0, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_540(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1330, v1332, 0, v1336, v1337, v1338, 3, 4, 2) -> f_548(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_548(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) -> f_557(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) :|: v1904 = v1335 + v1569 f_557(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) -> f_565(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) :|: TRUE f_565(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) -> f_571(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) :|: TRUE f_571(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1332, v1330, 0, v1336, v1337, v1338, 3, 4, 2) -> f_578(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1330, 0, v1332, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_578(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, v1330, 0, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_585(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_585(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_591(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) :|: v1904 < v1569 && 1 + v1335 <= 0 f_591(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_596(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_596(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_601(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) :|: 0 = 0 f_601(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_606(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) :|: TRUE f_606(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1330, v1332, v1336, v1337, v1338, 3, 4, 2) -> f_612(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1332, v1336, v1337, v1338, 3, 2, 4) :|: 0 = 0 f_612(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v1332, v1336, v1337, v1338, 3, 2, 4) -> f_618(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1332, v1336, v1337, v1338, 3, 2, 4) :|: 1 + v2415 = v1569 && 0 <= v2415 f_618(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1332, v1336, v1337, v1338, 3, 2, 4) -> f_624(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1332, v1336, v1337, v1338, 3, 2, 4) :|: TRUE f_624(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1332, v1336, v1337, v1338, 3, 2, 4) -> f_631(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1336, v1337, v1338, 3, 2, 4) :|: 0 = 0 f_631(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1336, v1337, v1338, 3, 2, 4) -> f_639(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1336, v1337, v1338, 3, 2, 4) :|: 0 = 0 f_639(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v1336, v1337, v1338, 3, 2, 4) -> f_646(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) :|: v2739 + v2415 = v1904 f_646(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) -> f_654(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) :|: TRUE f_654(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) -> f_665(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) :|: TRUE f_665(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) -> f_488(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1569, v1335, v1904, 0, v2415, v2739, v1336, v1337, v1338, 3, 2, 4) :|: TRUE f_488(v1323, v1324, v1325, v1326, v1327, v1328, 1, v1330, v1331, v1332, 0, v1334, v1335, v1336, v1337, v1338, 3, 2, 4) -> f_494(v1323, v1324, v1325, v1326, v1327, v1334, 1, v1328, v1330, v1331, v1332, 0, v1335, v1336, v1337, v1338, 3, 2, 4) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_494(v1323:0, v1324:0, v1325:0, v1326:0, v1327:0, 1 + (1 + v2415:0), 1, v1328:0, v1330:0, v1331:0, v1332:0, 0, v1335:0, v1336:0, v1337:0, v1338:0, 3, 2, 4) -> f_494(v1323:0, v1324:0, v1325:0, v1326:0, v1327:0, v2415:0, 1, 1 + (1 + v2415:0), 1 + v2415:0, v1335:0, v2739:0 + v2415:0, 0, v2739:0, v1336:0, v1337:0, v1338:0, 3, 2, 4) :|: v1330:0 > 2 && v2415:0 > -1 && v1328:0 > 3 && v1326:0 > 3 && v2739:0 + v2415:0 = v1335:0 + (1 + v2415:0) && v1335:0 < 0 && v2739:0 + v2415:0 < 1 + v2415:0 Filtered unneeded arguments: f_494(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_494(x4, x6, x8, x9, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_494(v1326:0, sum~cons_1~sum~cons_1~v2415:0, v1328:0, v1330:0, v1335:0) -> f_494(v1326:0, v2415:0, 1 + (1 + v2415:0), 1 + v2415:0, v2739:0) :|: v2415:0 > -1 && v1330:0 > 2 && v1328:0 > 3 && v1326:0 > 3 && v2739:0 + v2415:0 = v1335:0 + (1 + v2415:0) && v2739:0 + v2415:0 < 1 + v2415:0 && v1335:0 < 0 && sum~cons_1~sum~cons_1~v2415:0 = 1 + (1 + v2415:0) ---------------------------------------- (23) Obligation: Rules: f_494(v1326:0, sum~cons_1~sum~cons_1~v2415:0, v1328:0, v1330:0, v1335:0) -> f_494(v1326:0, v2415:0, 1 + (1 + v2415:0), 1 + v2415:0, v2739:0) :|: v2415:0 > -1 && v1330:0 > 2 && v1328:0 > 3 && v1326:0 > 3 && v2739:0 + v2415:0 = v1335:0 + (1 + v2415:0) && v2739:0 + v2415:0 < 1 + v2415:0 && v1335:0 < 0 && sum~cons_1~sum~cons_1~v2415:0 = 1 + (1 + v2415:0) ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_494_5,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := -(oldX5 - (oldX4 + (oldX5 + 1))); assume(oldX5 > -1 && oldX3 > 2 && oldX2 > 3 && oldX0 > 3 && oldX6 + oldX5 = oldX4 + (1 + oldX5) && oldX6 + oldX5 < 1 + oldX5 && oldX4 < 0 && oldX1 = 1 + (1 + oldX5)); x0 := oldX0; x1 := oldX1 - 2; x2 := 1 + (1 + oldX5); x3 := 1 + oldX5; x4 := -(oldX5 - (oldX4 + (oldX5 + 1))); 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: 2+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 4 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 15 rulesP rules: f_341(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) -> f_346(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 f_346(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) -> f_351(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) :|: v717 <= v721 && 1 <= v721 && 2 <= v719 && 2 <= v718 f_351(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) -> f_356(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 f_356(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) -> f_362(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_362(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) -> f_369(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_369(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) -> f_373(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) :|: v825 != 0 f_373(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) -> f_379(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 f_379(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) -> f_385(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 f_385(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) -> f_391(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_391(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v719, v722, v723, v724, 0, 3, 2, 4) -> f_396(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 f_396(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v722, v723, v724, 0, 3, 2, 4) -> f_401(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) :|: 1 + v931 = v721 && 0 <= v931 f_401(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) -> f_406(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_406(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) -> f_412(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_412(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) -> f_336(v711, v712, v713, v714, v715, 1, v717, v718, v721, v825, v931, v722, v723, v724, 0, 3, 2, 4) :|: TRUE f_336(v711, v712, v713, v714, v715, 1, v717, v718, v719, v720, v721, v722, v723, v724, 0, 3, 2, 4) -> f_341(v711, v712, v713, v714, v715, 1, v717, v718, v721, v720, v719, v722, v723, v724, 0, 3, 2, 4) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_341(v711:0, v712:0, v713:0, v714:0, v715:0, 1, v717:0, v718:0, 1 + v931:0, v720:0, v719:0, v722:0, v723:0, v724:0, 0, 3, 2, 4) -> f_341(v711:0, v712:0, v713:0, v714:0, v715:0, 1, v717:0, v718:0, v931:0, v825:0, 1 + v931:0, v722:0, v723:0, v724:0, 0, 3, 2, 4) :|: v931:0 > -1 && v717:0 <= 1 + v931:0 && v719:0 > 1 && v718:0 > 1 && v825:0 < 0 f_341(v711:0, v712:0, v713:0, v714:0, v715:0, 1, v717:0, v718:0, 1 + v931:0, v720:0, v719:0, v722:0, v723:0, v724:0, 0, 3, 2, 4) -> f_341(v711:0, v712:0, v713:0, v714:0, v715:0, 1, v717:0, v718:0, v931:0, v825:0, 1 + v931:0, v722:0, v723:0, v724:0, 0, 3, 2, 4) :|: v931:0 > -1 && v717:0 <= 1 + v931:0 && v719:0 > 1 && v718:0 > 1 && v825:0 > 0 Filtered unneeded arguments: f_341(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_341(x7, x8, x9, x11) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_341(v717:0, v718:0, sum~cons_1~v931:0, v719:0) -> f_341(v717:0, v718:0, v931:0, 1 + v931:0) :|: v717:0 <= 1 + v931:0 && v931:0 > -1 && v718:0 > 1 && v719:0 > 1 && sum~cons_1~v931:0 = 1 + v931:0 ---------------------------------------- (30) Obligation: Rules: f_341(v717:0, v718:0, sum~cons_1~v931:0, v719:0) -> f_341(v717:0, v718:0, v931:0, 1 + v931:0) :|: v717:0 <= 1 + v931:0 && v931:0 > -1 && v718:0 > 1 && v719:0 > 1 && sum~cons_1~v931:0 = 1 + v931:0 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_341_4,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX2 - 1; assume(oldX0 <= 1 + oldX4 && oldX4 > -1 && oldX1 > 1 && oldX3 > 1 && oldX2 = 1 + oldX4); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX4; 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*x2 RF for loc. 6: 2*x2 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 ---------------------------------------- (34) YES