/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 176 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 4525 ms] (4) LLVM Symbolic Execution Graph (5) SEGraph to IRS [EQUIVALENT, 365 ms] (6) IntTRS (7) IRS2T2 [EQUIVALENT, 0 ms] (8) T2IntSys (9) T2 [EQUIVALENT, 2966 ms] (10) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %tx = 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, %tx %3 = call i32 @__VERIFIER_nondet_int() store %3, %x %4 = call i32 @__VERIFIER_nondet_int() store %4, %y br %5 5: %6 = load %x %7 = load %y %8 = icmp sge %6 %7 br %8, %9, %12 9: %10 = load %tx %11 = icmp sge %10 0 br %12 12: %13 = phi [0, %5], [%11, %9] br %13, %14, %28 14: %15 = call i32 @__VERIFIER_nondet_int() %16 = icmp ne %15 0 br %16, %17, %22 17: %18 = load %x %19 = sub %18 1 %20 = load %tx %21 = sub %19 %20 store %21, %x br %27 22: %23 = load %y %24 = add %23 1 %25 = load %tx %26 = add %24 %25 store %26, %y br %27 27: br %5 28: 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) SEGraph to IRS (EQUIVALENT) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 185 rulesP rules: f_117 -> f_118(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_118(v1, v2, 3, 1, 4) -> f_119(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_119(v1, v3, v2, v4, 3, 1, 4) -> f_120(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 f_120(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_121(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 f_121(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_122(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_122(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_123(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_123(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_124(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_124(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_125(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_125(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) -> f_126(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_126(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) -> f_127(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_127(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_128(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_128(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_129(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_129(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_130(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_130(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_131(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_131(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_132(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: v13 <= v11 f_131(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_133(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) :|: v11 < v13 f_132(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_134(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_133(v1, v3, v5, v7, v9, v11, v13, v2, v4, v6, v8, 0, 3, 1, 4) -> f_135(v1, v3, v5, v7, v9, v11, v13, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_134(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_136(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_135(v1, v3, v5, v7, v9, v11, v13, 0, v2, v4, v6, v8, 3, 1, 4) -> f_137(v1, v3, v5, v7, v9, v11, v13, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_136(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_138(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_137(v1, v3, v5, v7, v9, v11, v13, 0, v2, v4, v6, v8, 3, 1, 4) -> f_139(v1, v3, v5, v7, v9, v11, v13, 0, v2, v4, v6, v8, 3, 1, 4) :|: TRUE f_138(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_140(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 <= v9 f_138(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_141(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: v9 < 0 f_140(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_142(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_141(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_143(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_142(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_144(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_143(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_145(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_144(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_146(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_145(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_147(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: TRUE f_146(v1, v3, v5, v7, v9, v11, v13, 1, v2, v4, v6, v8, 0, 3, 4) -> f_148(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_148(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_149(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) :|: v19 != 0 f_148(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_150(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: v19 = 0 f_149(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_151(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_150(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_152(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_151(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_153(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_152(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_154(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: TRUE f_153(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_155(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_154(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_156(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_155(v1, v3, v5, v7, v9, v11, v13, 1, v19, v2, v4, v6, v8, 0, 3, 4) -> f_157(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v2, v4, v6, v8, 0, 3, 4) :|: 1 + v20 = v11 f_156(v1, v3, v5, v7, v9, v11, v13, 1, 0, v2, v4, v6, v8, 3, 4) -> f_158(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v2, v4, v6, v8, 3, 4) :|: v21 = 1 + v13 f_157(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v2, v4, v6, v8, 0, 3, 4) -> f_159(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_158(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v2, v4, v6, v8, 3, 4) -> f_160(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_159(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v2, v4, v6, v8, 0, 3, 4) -> f_161(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) :|: v22 + v9 = v20 f_160(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v2, v4, v6, v8, 3, 4) -> f_162(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) :|: v23 = v21 + v9 f_161(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) -> f_163(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_162(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) -> f_164(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) :|: TRUE f_163(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) -> f_165(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_164(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) -> f_166(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) :|: TRUE f_165(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) -> f_167(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_166(v1, v3, v5, v7, v9, v11, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) -> f_233(v1, v3, v5, v7, v9, v11, v13, v13, 1, 0, v21, v23, v2, v4, v6, v8, 3, 4) :|: TRUE f_167(v1, v3, v5, v7, v9, v11, v13, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) -> f_235(v1, v3, v5, v7, v9, v11, v13, v11, 1, v19, v20, v22, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_233(v285, v286, v287, v288, v289, v290, v291, v292, 1, 0, v295, v296, v297, v298, v299, v300, 3, 4) -> f_301(v285, v286, v287, v288, v289, v290, v291, v292, 1, 0, v295, v296, v297, v298, v299, v300, 3, 4) :|: TRUE f_235(v333, v334, v335, v336, v337, v338, v339, v340, 1, v342, v343, v344, v345, v346, v347, v348, 0, 3, 4) -> f_303(v333, v334, v335, v336, v337, v338, v339, v340, 1, v342, v343, v344, v345, v346, v347, v348, 0, 3, 4) :|: TRUE f_301(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_304(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) :|: TRUE f_303(v628, v629, v630, v631, v632, v633, v634, v635, 1, v637, v638, v639, v640, v641, v642, v643, 0, 3, 4) -> f_305(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_304(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_306(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_305(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_307(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_306(v584, v585, v586, v587, v588, v589, v590, v591, 1, 0, v594, v595, v596, v597, v598, v599, 3, 4) -> f_308(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_307(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_309(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: v634 <= v639 f_307(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_310(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: v639 < v634 f_308(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_311(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v595 <= v589 f_308(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_312(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v589 < v595 f_309(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_313(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_310(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_314(v628, v629, v630, v631, v632, v633, v634, v639, 0, 1, v637, v635, v638, v640, v641, v642, v643, 3, 4) :|: 0 = 0 f_311(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_315(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_312(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_316(v584, v585, v586, v587, v588, v589, v590, v595, 0, 1, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_313(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_317(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_314(v628, v629, v630, v631, v632, v633, v634, v639, 0, 1, v637, v635, v638, v640, v641, v642, v643, 3, 4) -> f_318(v628, v629, v630, v631, v632, v633, v634, v639, 0, 1, v637, v635, v638, v640, v641, v642, v643, 3, 4) :|: 0 = 0 f_315(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_319(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_316(v584, v585, v586, v587, v588, v589, v590, v595, 0, 1, v591, v594, v596, v597, v598, v599, 3, 4) -> f_320(v584, v585, v586, v587, v588, v589, v590, v595, 0, 1, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_317(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_321(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_318(v628, v629, v630, v631, v632, v633, v634, v639, 0, 1, v637, v635, v638, v640, v641, v642, v643, 3, 4) -> f_322(v628, v629, v630, v631, v632, v633, v634, v639, 0, 1, v637, v635, v638, v640, v641, v642, v643, 3, 4) :|: TRUE f_319(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_323(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_320(v584, v585, v586, v587, v588, v589, v590, v595, 0, 1, v591, v594, v596, v597, v598, v599, 3, 4) -> f_324(v584, v585, v586, v587, v588, v589, v590, v595, 0, 1, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_321(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_325(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_323(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_326(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_325(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_327(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_326(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_328(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_327(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_329(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_328(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_330(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_329(v628, v629, v630, v631, v632, v633, v634, v639, 1, v637, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_331(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_330(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_332(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_331(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_333(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: v788 != 0 f_331(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_334(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) :|: v788 = 0 f_332(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_335(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v789 != 0 f_332(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_336(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: v789 = 0 f_333(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_337(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_334(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) -> f_338(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) :|: 0 = 0 f_335(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_339(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) :|: 0 = 0 f_336(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_340(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_337(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_341(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_338(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) -> f_342(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) :|: TRUE f_339(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) -> f_343(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) :|: TRUE f_340(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_344(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) :|: TRUE f_341(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v635, v638, v640, v641, v642, v643, 0, 3, 4) -> f_345(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v638, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_342(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) -> f_346(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) :|: 0 = 0 f_343(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) -> f_347(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) :|: 0 = 0 f_344(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v591, v594, v596, v597, v598, v599, 3, 4) -> f_348(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v594, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_345(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v638, v640, v641, v642, v643, 0, 3, 4) -> f_349(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) :|: 1 + v808 = v639 f_346(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v640, v641, v642, v643, 3, 4) -> f_350(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v640, v641, v642, v643, 3, 4) :|: v809 = 1 + v634 f_347(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v596, v597, v598, v599, 0, 3, 4) -> f_351(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v596, v597, v598, v599, 0, 3, 4) :|: 1 + v810 = v589 f_348(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v594, v596, v597, v598, v599, 3, 4) -> f_352(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) :|: v811 = 1 + v595 f_349(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) -> f_353(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) :|: 0 = 0 f_350(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v640, v641, v642, v643, 3, 4) -> f_354(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v640, v641, v642, v643, 3, 4) :|: 0 = 0 f_351(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v596, v597, v598, v599, 0, 3, 4) -> f_355(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v596, v597, v598, v599, 0, 3, 4) :|: 0 = 0 f_352(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) -> f_356(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) :|: 0 = 0 f_353(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v640, v641, v642, v643, 0, 3, 4) -> f_357(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: v812 + v632 = v808 f_354(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v640, v641, v642, v643, 3, 4) -> f_358(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) :|: v813 = v809 + v632 f_355(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v596, v597, v598, v599, 0, 3, 4) -> f_359(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) :|: v814 + v588 = v810 f_356(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v596, v597, v598, v599, 3, 4) -> f_360(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: v815 = v811 + v588 f_357(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_361(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_358(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) -> f_362(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) :|: TRUE f_359(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) -> f_363(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) :|: TRUE f_360(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_364(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: TRUE f_361(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_365(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_362(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) -> f_366(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) :|: TRUE f_363(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) -> f_367(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) :|: TRUE f_364(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_368(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: TRUE f_365(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_369(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_366(v628, v629, v630, v631, v632, v633, v634, v639, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) -> f_488(v628, v629, v630, v631, v632, v633, v634, v639, v634, 1, 0, v635, v638, v809, v813, v640, v641, v642, v643, 3, 4) :|: TRUE f_367(v584, v585, v586, v587, v588, v589, v590, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) -> f_425(v584, v585, v586, v587, v588, v589, v590, v589, v595, 1, v789, v591, v594, v810, v814, v596, v597, v598, v599, 0, 3, 4) :|: TRUE f_368(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) -> f_301(v584, v585, v586, v587, v588, v589, v590, v595, 1, 0, v811, v815, v596, v597, v598, v599, 3, 4) :|: TRUE f_369(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) -> f_303(v628, v629, v630, v631, v632, v633, v634, v639, 1, v788, v808, v812, v640, v641, v642, v643, 0, 3, 4) :|: TRUE f_425(v1665, v1666, v1667, v1668, v1669, v1670, v1671, v1672, v1673, 1, v1675, v1676, v1677, v1678, v1679, v1680, v1681, v1682, v1683, 0, 3, 4) -> f_523(v1665, v1666, v1667, v1668, v1669, v1670, v1671, v1672, v1673, 1, v1675, v1676, v1677, v1678, v1679, v1680, v1681, v1682, v1683, 0, 3, 4) :|: TRUE f_488(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_489(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_489(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_490(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_490(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2604, 1, 0, v2607, v2608, v2609, v2610, v2611, v2612, v2613, v2614, 3, 4) -> f_491(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_491(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_492(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2610 <= v2603 f_491(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_493(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2603 < v2610 f_492(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_494(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_493(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_495(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 0, 1, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_494(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_496(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_495(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 0, 1, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_497(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 0, 1, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_496(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_498(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_497(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 0, 1, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_499(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 0, 1, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_498(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_500(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_500(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_501(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_501(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_502(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_502(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_504(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2936 != 0 f_503(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_505(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: v2936 = 0 f_504(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_506(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: 0 = 0 f_505(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_507(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: 0 = 0 f_506(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) -> f_508(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: TRUE f_507(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_510(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_508(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) -> f_509(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, v2936, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 0, 3, 4) :|: TRUE f_509(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2974, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_512(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 0 = 0 f_510(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2607, v2608, v2604, v2609, v2611, v2612, v2613, v2614, 3, 4) -> f_511(v2596, v2597, v2598, v2599, v2600, v2601, v2602, v2603, v2610, 1, 0, v2604, v2609, v2607, v2608, v2611, v2612, v2613, v2614, 3, 4) :|: TRUE f_511(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3020, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_513(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: 0 = 0 f_512(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2975, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_514(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 1 + v3028 = v2970 f_513(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3021, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_515(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: v3029 = 1 + v3017 f_514(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_516(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: 0 = 0 f_515(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_517(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: 0 = 0 f_516(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_518(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: v3030 + v2967 = v3028 f_517(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_519(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: v3031 = v3029 + v3013 f_518(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_520(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: TRUE f_519(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_521(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: TRUE f_520(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_522(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) :|: TRUE f_521(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_524(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) :|: TRUE f_522(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v3028, v3030, v2976, v2977, v2978, v2979, v2980, v2981, 0, 3, 4) -> f_523(v2963, v2964, v2965, v2966, v2967, v2968, v2969, v2970, v2971, 1, v2973, v2976, v2977, v3028, v3030, v2978, v2979, v2980, v2981, 0, 3, 4) :|: TRUE f_523(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_525(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_524(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3029, v3031, v3022, v3023, v3024, v3025, v3026, v3027, 3, 4) -> f_488(v3009, v3010, v3011, v3012, v3013, v3014, v3015, v3016, v3017, 1, 0, v3022, v3023, v3029, v3031, v3024, v3025, v3026, v3027, 3, 4) :|: TRUE f_525(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3065, v3066, 1, v3068, v3069, v3070, v3071, v3072, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_526(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_526(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_527(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_527(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_528(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3066 <= v3072 f_527(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_529(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3072 < v3066 f_528(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_530(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_529(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_531(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 0, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: 0 = 0 f_530(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_532(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_531(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 0, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_533(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 0, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: 0 = 0 f_532(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_534(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_533(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 0, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_535(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 0, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: TRUE f_534(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_536(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_536(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_537(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_537(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_538(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_538(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3068, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_540(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: v3453 != 0 f_539(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_541(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: v3453 = 0 f_540(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_542(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: 0 = 0 f_541(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_543(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: 0 = 0 f_542(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_544(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_543(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_545(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: TRUE f_544(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 0, 3, 4) -> f_509(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, v3453, v3065, v3071, v3069, v3070, v3073, v3074, v3075, v3076, 0, 3, 4) :|: TRUE f_545(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) -> f_511(v3058, v3059, v3060, v3061, v3062, v3063, v3064, v3072, v3066, 1, 0, v3069, v3070, v3065, v3071, v3073, v3074, v3075, v3076, 3, 4) :|: TRUE Combined rules. Obtained 21 rulesP rules: f_308(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 1, 0, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) -> f_324(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 0, 1, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) :|: v595:0 > v589:0 f_491(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, 1 + (v3030:0 + v2600:0), v2610:0, 1, 0, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_527(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v3030:0, v2610:0, 1, v2936:0, v2604:0, v2609:0, 1 + (v3030:0 + v2600:0), v3030:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0, 0, 3, 4) :|: v2936:0 < 0 && v2610:0 <= 1 + (v3030:0 + v2600:0) f_491(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, 1 + (v3030:0 + v2600:0), v2610:0, 1, 0, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_527(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v3030:0, v2610:0, 1, v2936:0, v2604:0, v2609:0, 1 + (v3030:0 + v2600:0), v3030:0 + v2600:0, v2611:0, v2612:0, v2613:0, v2614:0, 0, 3, 4) :|: v2936:0 > 0 && v2610:0 <= 1 + (v3030:0 + v2600:0) f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, 1 + (v3030:0 + v3062:0), v3066:0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, 1, v3453:0, v3069:0, v3070:0, 1 + (v3030:0 + v3062:0), v3030:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) :|: v3453:0 < 0 && v3066:0 <= 1 + (v3030:0 + v3062:0) f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, 1 + (v3030:0 + v3062:0), v3066:0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3030:0, v3066:0, 1, v3453:0, v3069:0, v3070:0, 1 + (v3030:0 + v3062:0), v3030:0 + v3062:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) :|: v3453:0 > 0 && v3066:0 <= 1 + (v3030:0 + v3062:0) f_117 -> f_308(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, 1 + v13:0 + v9:0, 1, 0, v13:0, 1 + v13:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 > -1 && v13:0 <= v11:0 f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_322(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 0, 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 3, 4) :|: v639:0 < v634:0 f_308(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 1, 0, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) -> f_308(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, 1 + v595:0 + v588:0, 1, 0, v595:0, 1 + v595:0, v596:0, v597:0, v598:0, v599:0, 3, 4) :|: v595:0 <= v589:0 f_117 -> f_307(v1:0, v3:0, v5:0, v7:0, v9:0, 1 + (v22:0 + v9:0), v13:0, v22:0, 1, v19:0, 1 + (v22:0 + v9:0), v22:0 + v9:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v13:0 <= 1 + (v22:0 + v9:0) && v19:0 < 0 && v9:0 > -1 f_117 -> f_307(v1:0, v3:0, v5:0, v7:0, v9:0, 1 + (v22:0 + v9:0), v13:0, v22:0, 1, v19:0, 1 + (v22:0 + v9:0), v22:0 + v9:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v13:0 <= 1 + (v22:0 + v9:0) && v19:0 > 0 && v9:0 > -1 f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, 1 + (v812:0 + v632:0), 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, 1, v788:0, 1 + (v812:0 + v632:0), v812:0 + v632:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) :|: v788:0 < 0 && v634:0 <= 1 + (v812:0 + v632:0) f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, 1 + (v812:0 + v632:0), 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v812:0, 1, v788:0, 1 + (v812:0 + v632:0), v812:0 + v632:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) :|: v788:0 > 0 && v634:0 <= 1 + (v812:0 + v632:0) f_117 -> f_147(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 < 0 && v13:0 <= v11:0 f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_491(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, 1 + v3066:0 + v3062:0, 1, 0, v3065:0, v3071:0, v3066:0, 1 + v3066:0, v3073:0, v3074:0, v3075:0, v3076:0, 3, 4) :|: v3072:0 >= v3066:0 f_308(v584:0, v585:0, v586:0, v587:0, v588:0, 1 + (v814:0 + v588:0), v590:0, v595:0, 1, 0, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) -> f_527(v584:0, v585:0, v586:0, v587:0, v588:0, 1 + (v814:0 + v588:0), v590:0, v814:0, v595:0, 1, v789:0, v591:0, v594:0, 1 + (v814:0 + v588:0), v814:0 + v588:0, v596:0, v597:0, v598:0, v599:0, 0, 3, 4) :|: v789:0 < 0 && v595:0 <= 1 + (v814:0 + v588:0) f_308(v584:0, v585:0, v586:0, v587:0, v588:0, 1 + (v814:0 + v588:0), v590:0, v595:0, 1, 0, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) -> f_527(v584:0, v585:0, v586:0, v587:0, v588:0, 1 + (v814:0 + v588:0), v590:0, v814:0, v595:0, 1, v789:0, v591:0, v594:0, 1 + (v814:0 + v588:0), v814:0 + v588:0, v596:0, v597:0, v598:0, v599:0, 0, 3, 4) :|: v789:0 > 0 && v595:0 <= 1 + (v814:0 + v588:0) f_491(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, 1, 0, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_491(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, 1 + v2610:0 + v2600:0, 1, 0, v2607:0, v2608:0, v2610:0, 1 + v2610:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) :|: v2610:0 <= v2603:0 f_527(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 0, 3, 4) -> f_535(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 3, 4) :|: v3072:0 < v3066:0 f_491(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, 1, 0, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) -> f_499(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, 0, 1, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) :|: v2610:0 > v2603:0 f_307(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 0, 3, 4) -> f_491(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 1 + v634:0 + v632:0, 1, 0, v635:0, v638:0, v634:0, 1 + v634:0, v640:0, v641:0, v642:0, v643:0, 3, 4) :|: v639:0 >= v634:0 f_117 -> f_139(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v13:0 > v11:0 Filtered unneeded arguments: f_308(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_308(x5, x6, x8) f_491(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_491(x5, x8, x9) f_527(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_527(x5, x8, x9) f_307(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_307(x5, x7, x8) Removed division, modulo operations, cleaned up constraints. Obtained 16 rules.P rules: f_308(v588:0, v589:0, v595:0) -> f_324(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 0, 1, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) :|: v595:0 > v589:0 f_491(v2600:0, sum~cons_1~sum~v3030:0~v2600:0, v2610:0) -> f_527(v2600:0, v3030:0, v2610:0) :|: v2610:0 <= 1 + (v3030:0 + v2600:0) && sum~cons_1~sum~v3030:0~v2600:0 = 1 + (v3030:0 + v2600:0) f_527(v3062:0, sum~cons_1~sum~v3030:0~v3062:0, v3066:0) -> f_527(v3062:0, v3030:0, v3066:0) :|: v3066:0 <= 1 + (v3030:0 + v3062:0) && sum~cons_1~sum~v3030:0~v3062:0 = 1 + (v3030:0 + v3062:0) f_117 -> f_308(v9:0, v11:0, 1 + v13:0 + v9:0) :|: v9:0 > -1 && v13:0 <= v11:0 f_307(v632:0, v634:0, v639:0) -> f_322(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 0, 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 3, 4) :|: v639:0 < v634:0 f_308(v588:0, v589:0, v595:0) -> f_308(v588:0, v589:0, 1 + v595:0 + v588:0) :|: v595:0 <= v589:0 f_117 -> f_307(v9:0, v13:0, v22:0) :|: v13:0 <= 1 + (v22:0 + v9:0) && v9:0 > -1 f_307(v632:0, v634:0, sum~cons_1~sum~v812:0~v632:0) -> f_307(v632:0, v634:0, v812:0) :|: v634:0 <= 1 + (v812:0 + v632:0) && sum~cons_1~sum~v812:0~v632:0 = 1 + (v812:0 + v632:0) f_117 -> f_147(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v13:0 <= v11:0 && v9:0 < 0 f_527(v3062:0, v3072:0, v3066:0) -> f_491(v3062:0, v3072:0, 1 + v3066:0 + v3062:0) :|: v3072:0 >= v3066:0 f_308(v588:0, sum~cons_1~sum~v814:0~v588:0, v595:0) -> f_527(v588:0, v814:0, v595:0) :|: v595:0 <= 1 + (v814:0 + v588:0) && sum~cons_1~sum~v814:0~v588:0 = 1 + (v814:0 + v588:0) f_491(v2600:0, v2603:0, v2610:0) -> f_491(v2600:0, v2603:0, 1 + v2610:0 + v2600:0) :|: v2610:0 <= v2603:0 f_527(v3062:0, v3072:0, v3066:0) -> f_535(v3058:0, v3059:0, v3060:0, v3061:0, v3062:0, v3063:0, v3064:0, v3072:0, v3066:0, 0, 1, v3068:0, v3069:0, v3070:0, v3065:0, v3071:0, v3073:0, v3074:0, v3075:0, v3076:0, 3, 4) :|: v3072:0 < v3066:0 f_491(v2600:0, v2603:0, v2610:0) -> f_499(v2596:0, v2597:0, v2598:0, v2599:0, v2600:0, v2601:0, v2602:0, v2603:0, v2610:0, 0, 1, v2607:0, v2608:0, v2604:0, v2609:0, v2611:0, v2612:0, v2613:0, v2614:0, 3, 4) :|: v2610:0 > v2603:0 f_307(v632:0, v634:0, v639:0) -> f_491(v632:0, v639:0, 1 + v634:0 + v632:0) :|: v639:0 >= v634:0 f_117 -> f_139(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v13:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 3, 1, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v13:0 > v11:0 && v7:0 > 0 ---------------------------------------- (6) Obligation: Rules: f_308(v588:0, v589:0, v595:0) -> f_324(v584:0, v585:0, v586:0, v587:0, v588:0, v589:0, v590:0, v595:0, 0, 1, v591:0, v594:0, v596:0, v597:0, v598:0, v599:0, 3, 4) :|: v595:0 > v589:0 f_491(v2600:0, sum~cons_1~sum~v3030:0~v2600:0, v2610:0) -> f_527(v2600:0, v3030:0, v2610:0) :|: v2610:0 <= 1 + (v3030:0 + v2600:0) && sum~cons_1~sum~v3030:0~v2600:0 = 1 + (v3030:0 + v2600:0) f_527(x, x1, x2) -> f_527(x, x3, x2) :|: x2 <= 1 + (x3 + x) && x1 = 1 + (x3 + x) f_117 -> f_308(v9:0, v11:0, 1 + v13:0 + v9:0) :|: v9:0 > -1 && v13:0 <= v11:0 f_307(v632:0, v634:0, v639:0) -> f_322(v628:0, v629:0, v630:0, v631:0, v632:0, v633:0, v634:0, v639:0, 0, 1, v637:0, v635:0, v638:0, v640:0, v641:0, v642:0, v643:0, 3, 4) :|: v639:0 < v634:0 f_308(x4, x5, x6) -> f_308(x4, x5, 1 + x6 + x4) :|: x6 <= x5 f_117 -> f_307(x7, x8, x9) :|: x8 <= 1 + (x9 + x7) && x7 > -1 f_307(x10, x11, x12) -> f_307(x10, x11, x13) :|: x11 <= 1 + (x13 + x10) && x12 = 1 + (x13 + x10) f_117 -> f_147(x14, x15, x16, x17, x18, x19, x20, 1, 0, 3 + x14, 3 + x15, 3 + x16, 3 + x17, 3, 4) :|: x14 > 0 && x15 > 0 && x16 > 0 && x17 > 0 && x20 <= x19 && x18 < 0 f_527(v3062:0, v3072:0, v3066:0) -> f_491(v3062:0, v3072:0, 1 + v3066:0 + v3062:0) :|: v3072:0 >= v3066:0 f_308(x21, x22, x23) -> f_527(x21, x24, x23) :|: x23 <= 1 + (x24 + x21) && x22 = 1 + (x24 + x21) f_491(x25, x26, x27) -> f_491(x25, x26, 1 + x27 + x25) :|: x27 <= x26 f_527(x28, x29, x30) -> f_535(x31, x32, x33, x34, x28, x35, x36, x29, x30, 0, 1, x37, x38, x39, x40, x41, x42, x43, x44, x45, 3, 4) :|: x29 < x30 f_491(x46, x47, x48) -> f_499(x49, x50, x51, x52, x46, x53, x54, x47, x48, 0, 1, x55, x56, x57, x58, x59, x60, x61, x62, 3, 4) :|: x48 > x47 f_307(x63, x64, x65) -> f_491(x63, x65, 1 + x64 + x63) :|: x65 >= x64 f_117 -> f_139(x66, x67, x68, x69, x70, x71, x72, 0, 3 + x66, 3 + x67, 3 + x68, 3 + x69, 3, 1, 4) :|: x66 > 0 && x67 > 0 && x68 > 0 && x72 > x71 && x69 > 0 Start term: f_117 ---------------------------------------- (7) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_308_22,1) (f_324_22,2) (f_491_22,3) (f_527_22,4) (f_117_22,5) (f_307_22,6) (f_322_22,7) (f_147_22,8) (f_535_22,9) (f_499_22,10) (f_139_22,11) ---------------------------------------- (8) Obligation: START: 5; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); assume(oldX2 > oldX1); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX0; x5 := oldX1; x6 := oldX26; x7 := oldX2; x8 := 0; x9 := 1; x10 := oldX27; x11 := oldX28; x12 := oldX29; x13 := oldX30; x14 := oldX31; x15 := oldX32; x16 := 3; x17 := 4; x18 := oldX33; x19 := oldX34; x20 := oldX35; x21 := oldX36; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := oldX1 - (oldX0 + 1); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX2 <= 1 + (oldX22 + oldX0) && oldX1 = 1 + (oldX22 + oldX0)); x0 := oldX0; x1 := oldX1 - (oldX0 + 1); x2 := oldX2; x3 := oldX23; x4 := oldX24; x5 := oldX25; x6 := oldX26; x7 := oldX27; x8 := oldX28; x9 := oldX29; x10 := oldX30; x11 := oldX31; x12 := oldX32; x13 := oldX33; x14 := oldX34; x15 := oldX35; x16 := oldX36; x17 := oldX37; x18 := oldX38; x19 := oldX39; x20 := oldX40; x21 := oldX41; TO: 4; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := oldX1 - (oldX0 + 1); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX2 <= 1 + (oldX22 + oldX0) && oldX1 = 1 + (oldX22 + oldX0)); x0 := oldX0; x1 := oldX1 - (oldX0 + 1); x2 := oldX2; x3 := oldX23; x4 := oldX24; x5 := oldX25; x6 := oldX26; x7 := oldX27; x8 := oldX28; x9 := oldX29; x10 := oldX30; x11 := oldX31; x12 := oldX32; x13 := oldX33; x14 := oldX34; x15 := oldX35; x16 := oldX36; x17 := oldX37; x18 := oldX38; x19 := oldX39; x20 := oldX40; x21 := oldX41; TO: 4; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); oldX42 := nondet(); oldX43 := nondet(); assume(oldX22 > -1 && oldX24 <= oldX23); x0 := oldX22; x1 := oldX23; x2 := 1 + oldX24 + oldX22; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := oldX29; x8 := oldX30; x9 := oldX31; x10 := oldX32; x11 := oldX33; x12 := oldX34; x13 := oldX35; x14 := oldX36; x15 := oldX37; x16 := oldX38; x17 := oldX39; x18 := oldX40; x19 := oldX41; x20 := oldX42; x21 := oldX43; TO: 1; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); assume(oldX2 < oldX1); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX0; x5 := oldX26; x6 := oldX1; x7 := oldX2; x8 := 0; x9 := 1; x10 := oldX27; x11 := oldX28; x12 := oldX29; x13 := oldX30; x14 := oldX31; x15 := oldX32; x16 := oldX33; x17 := 3; x18 := 4; x19 := oldX34; x20 := oldX35; x21 := oldX36; TO: 7; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); assume(oldX2 <= oldX1); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2 + oldX0; x3 := oldX22; x4 := oldX23; x5 := oldX24; x6 := oldX25; x7 := oldX26; x8 := oldX27; x9 := oldX28; x10 := oldX29; x11 := oldX30; x12 := oldX31; x13 := oldX32; x14 := oldX33; x15 := oldX34; x16 := oldX35; x17 := oldX36; x18 := oldX37; x19 := oldX38; x20 := oldX39; x21 := oldX40; TO: 1; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); oldX42 := nondet(); oldX43 := nondet(); assume(oldX23 <= 1 + (oldX24 + oldX22) && oldX22 > -1); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := oldX29; x8 := oldX30; x9 := oldX31; x10 := oldX32; x11 := oldX33; x12 := oldX34; x13 := oldX35; x14 := oldX36; x15 := oldX37; x16 := oldX38; x17 := oldX39; x18 := oldX40; x19 := oldX41; x20 := oldX42; x21 := oldX43; TO: 6; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := oldX2 - (oldX0 + 1); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX1 <= 1 + (oldX22 + oldX0) && oldX2 = 1 + (oldX22 + oldX0)); x0 := oldX0; x1 := oldX1; x2 := oldX2 - (oldX0 + 1); x3 := oldX23; x4 := oldX24; x5 := oldX25; x6 := oldX26; x7 := oldX27; x8 := oldX28; x9 := oldX29; x10 := oldX30; x11 := oldX31; x12 := oldX32; x13 := oldX33; x14 := oldX34; x15 := oldX35; x16 := oldX36; x17 := oldX37; x18 := oldX38; x19 := oldX39; x20 := oldX40; x21 := oldX41; TO: 6; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX25 > 0 && oldX28 <= oldX27 && oldX26 < 0); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := 1; x8 := 0; x9 := 3 + oldX22; x10 := 3 + oldX23; x11 := 3 + oldX24; x12 := 3 + oldX25; x13 := 3; x14 := 4; x15 := oldX29; x16 := oldX30; x17 := oldX31; x18 := oldX32; x19 := oldX33; x20 := oldX34; x21 := oldX35; TO: 8; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); assume(oldX1 >= oldX2); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2 + oldX0; x3 := oldX22; x4 := oldX23; x5 := oldX24; x6 := oldX25; x7 := oldX26; x8 := oldX27; x9 := oldX28; x10 := oldX29; x11 := oldX30; x12 := oldX31; x13 := oldX32; x14 := oldX33; x15 := oldX34; x16 := oldX35; x17 := oldX36; x18 := oldX37; x19 := oldX38; x20 := oldX39; x21 := oldX40; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := oldX1 - (oldX0 + 1); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX2 <= 1 + (oldX22 + oldX0) && oldX1 = 1 + (oldX22 + oldX0)); x0 := oldX0; x1 := oldX1 - (oldX0 + 1); x2 := oldX2; x3 := oldX23; x4 := oldX24; x5 := oldX25; x6 := oldX26; x7 := oldX27; x8 := oldX28; x9 := oldX29; x10 := oldX30; x11 := oldX31; x12 := oldX32; x13 := oldX33; x14 := oldX34; x15 := oldX35; x16 := oldX36; x17 := oldX37; x18 := oldX38; x19 := oldX39; x20 := oldX40; x21 := oldX41; TO: 4; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); assume(oldX2 <= oldX1); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2 + oldX0; x3 := oldX22; x4 := oldX23; x5 := oldX24; x6 := oldX25; x7 := oldX26; x8 := oldX27; x9 := oldX28; x10 := oldX29; x11 := oldX30; x12 := oldX31; x13 := oldX32; x14 := oldX33; x15 := oldX34; x16 := oldX35; x17 := oldX36; x18 := oldX37; x19 := oldX38; x20 := oldX39; x21 := oldX40; TO: 3; FROM: 4; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); assume(oldX1 < oldX2); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX0; x5 := oldX26; x6 := oldX27; x7 := oldX1; x8 := oldX2; x9 := 0; x10 := 1; x11 := oldX28; x12 := oldX29; x13 := oldX30; x14 := oldX31; x15 := oldX32; x16 := oldX33; x17 := oldX34; x18 := oldX35; x19 := oldX36; x20 := 3; x21 := 4; TO: 9; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); assume(oldX2 > oldX1); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX0; x5 := oldX26; x6 := oldX27; x7 := oldX1; x8 := oldX2; x9 := 0; x10 := 1; x11 := oldX28; x12 := oldX29; x13 := oldX30; x14 := oldX31; x15 := oldX32; x16 := oldX33; x17 := oldX34; x18 := oldX35; x19 := 3; x20 := 4; x21 := oldX36; TO: 10; FROM: 6; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); assume(oldX2 >= oldX1); x0 := oldX0; x1 := oldX2; x2 := 1 + oldX1 + oldX0; x3 := oldX22; x4 := oldX23; x5 := oldX24; x6 := oldX25; x7 := oldX26; x8 := oldX27; x9 := oldX28; x10 := oldX29; x11 := oldX30; x12 := oldX31; x13 := oldX32; x14 := oldX33; x15 := oldX34; x16 := oldX35; x17 := oldX36; x18 := oldX37; x19 := oldX38; x20 := oldX39; x21 := oldX40; TO: 3; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := x18; oldX19 := x19; oldX20 := x20; oldX21 := x21; oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); oldX34 := nondet(); oldX35 := nondet(); assume(oldX22 > 0 && oldX23 > 0 && oldX24 > 0 && oldX28 > oldX27 && oldX25 > 0); x0 := oldX22; x1 := oldX23; x2 := oldX24; x3 := oldX25; x4 := oldX26; x5 := oldX27; x6 := oldX28; x7 := 0; x8 := 3 + oldX22; x9 := 3 + oldX23; x10 := 3 + oldX24; x11 := 3 + oldX25; x12 := 3; x13 := 1; x14 := 4; x15 := oldX29; x16 := oldX30; x17 := oldX31; x18 := oldX32; x19 := oldX33; x20 := oldX34; x21 := oldX35; TO: 11; ---------------------------------------- (9) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 28, 32, 33, 38, 42, 43 using the following rank functions: - Rank function 1: RF for loc. 15: 1+2*x0+2*x1-2*x2 RF for loc. 16: 1+4*x0+2*x1-2*x2 RF for loc. 22: 4*x0+2*x1-2*x2 RF for loc. 26: 2*x0+2*x1-2*x2 Bound for (chained) transitions 32: 0 Bound for (chained) transitions 33: 0 Bound for (chained) transitions 43: 0 - Rank function 2: RF for loc. 15: 1+oldX0+2*x1-2*x2 RF for loc. 16: 1 RF for loc. 22: 0 RF for loc. 26: oldX0+2*x1-2*x2 Bound for (chained) transitions 42: 0 - Rank function 3: RF for loc. 15: 0 RF for loc. 16: 1 RF for loc. 22: 0 RF for loc. 26: -1 Bound for (chained) transitions 38: 0 - Rank function 4: RF for loc. 16: 0 RF for loc. 22: -1 Bound for (chained) transitions 28: 0 Used the following cutpoint-specific lexicographic rank functions: * For cutpoint 14, used the following rank functions/bounds (in descending priority order): - RF -x2+x1, bound 0 * For cutpoint 17, used the following rank functions/bounds (in descending priority order): - RF x2-x1, bound 0 ---------------------------------------- (10) YES