/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, 2498 ms] (4) LLVM Symbolic Execution Graph (5) SEGraph to IRS [EQUIVALENT, 175 ms] (6) IntTRS (7) IRS2T2 [EQUIVALENT, 0 ms] (8) T2IntSys (9) T2 [EQUIVALENT, 915 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 %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 sgt %5 0 br %6, %7, %10 7: %8 = load %y %9 = icmp sgt %8 0 br %10 10: %11 = phi [0, %4], [%9, %7] br %11, %12, %23 12: %13 = call i32 @__VERIFIER_nondet_int() %14 = icmp ne %13 0 br %14, %15, %18 15: %16 = load %x %17 = sub %16 1 store %17, %x br %22 18: %19 = call i32 @__VERIFIER_nondet_int() store %19, %x %20 = load %y %21 = sub %20 1 store %21, %y br %22 22: br %4 23: %24 = load %1 ret %24 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 189 rulesP rules: f_102 -> f_103(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_103(v1, v2, 3, 1, 4) -> f_104(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_104(v1, v3, v2, v4, 3, 1, 4) -> f_105(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 f_105(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_106(v1, v3, v5, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_106(v1, v3, v5, v2, v4, v6, 0, 3, 1, 4) -> f_107(v1, v3, v5, v7, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_107(v1, v3, v5, v7, v2, v4, v6, 0, 3, 1, 4) -> f_108(v1, v3, v5, v7, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_108(v1, v3, v5, v7, v2, v4, v6, 0, 3, 1, 4) -> f_109(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_109(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_110(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_110(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_111(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: TRUE f_111(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_112(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: 0 = 0 f_112(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_113(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: 0 < v7 f_112(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_114(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) :|: v7 <= 0 f_113(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_115(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_114(v1, v3, v5, v7, v9, v2, v4, v6, 0, 3, 1, 4) -> f_116(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) :|: 0 = 0 f_115(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_117(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: TRUE f_116(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) -> f_118(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) :|: 0 = 0 f_117(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_119(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_118(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) -> f_120(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) :|: TRUE f_119(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_121(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: 0 < v9 f_119(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_122(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: v9 <= 0 f_120(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) -> f_123(v1, v3, v5, v7, v9, 0, v2, v4, v6, 3, 1, 4) :|: 0 = 0 f_121(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_124(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_122(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_125(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: 0 = 0 f_124(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_126(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_125(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_127(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: 0 = 0 f_126(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_128(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) :|: TRUE f_127(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_129(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: TRUE f_128(v1, v3, v5, v7, v9, 1, v2, v4, v6, 0, 3, 4) -> f_130(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) :|: TRUE f_129(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_131(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: 0 = 0 f_130(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_132(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) :|: v15 != 0 f_130(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_133(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: v15 = 0 f_132(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_134(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_133(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_135(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: 0 = 0 f_134(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_136(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) :|: TRUE f_135(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_137(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) :|: TRUE f_136(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_138(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) :|: 0 = 0 f_137(v1, v3, v5, v7, v9, 1, 0, v2, v4, v6, 3, 4) -> f_139(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) :|: TRUE f_138(v1, v3, v5, v7, v9, 1, v15, v2, v4, v6, 0, 3, 4) -> f_140(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) :|: 1 + v17 = v7 && 0 <= v17 f_139(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) -> f_141(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) :|: TRUE f_140(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) -> f_142(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) :|: TRUE f_141(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) -> f_143(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) :|: 0 = 0 f_142(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) -> f_144(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) :|: TRUE f_143(v1, v3, v5, v7, v9, 1, 0, v16, v2, v4, v6, 3, 4) -> f_145(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) :|: 1 + v20 = v9 && 0 <= v20 f_144(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) -> f_146(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) :|: TRUE f_145(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) -> f_147(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) :|: TRUE f_146(v1, v3, v5, v7, v9, 1, v15, v17, v2, v4, v6, 0, 3, 4) -> f_207(v1, v3, v5, v7, v9, v7, 1, v15, v17, v2, v4, v6, 0, 3, 4) :|: TRUE f_147(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) -> f_149(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) :|: TRUE f_149(v1, v3, v5, v7, v9, 1, 0, v16, v20, v2, v4, v6, 3, 4) -> f_225(v1, v3, v5, v7, v9, v7, 1, v9, 0, v16, v20, v2, v4, v6, 3, 4) :|: TRUE f_207(v218, v219, v220, v221, v222, v223, 1, v225, v226, v227, v228, v229, 0, 3, 4) -> f_271(v218, v219, v220, v221, v222, v223, 1, v225, v226, v227, v228, v229, 0, 3, 4) :|: TRUE f_225(v304, v305, v306, v307, v308, v309, 1, v311, 0, v313, v314, v315, v316, v317, 3, 4) -> f_300(v304, v305, v306, v307, v308, v309, 1, v311, 0, v313, v314, v315, v316, v317, 3, 4) :|: TRUE f_271(v453, v454, v455, v456, v457, v458, 1, v460, v461, v462, v463, v464, 0, 3, 4) -> f_274(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 4) :|: 0 = 0 f_274(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 4) -> f_277(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 < v461 && 2 <= v458 && 2 <= v456 f_274(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 4) -> f_278(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) :|: v461 <= 0 && v458 = 1 && v461 = 0 && 0 = 0 f_277(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_281(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_278(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) -> f_282(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) :|: 0 = 0 f_281(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_285(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_282(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) -> f_286(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) :|: 0 = 0 f_285(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_289(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_286(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) -> f_290(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) :|: TRUE f_289(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_293(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_290(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) -> f_294(v453, v454, v455, v456, v457, 0, 1, v460, v462, v463, v464, 3, 4) :|: 0 = 0 f_293(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_297(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_297(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_301(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_300(v588, v589, v590, v591, v592, v593, 1, v595, 0, v597, v598, v599, v600, v601, 3, 4) -> f_302(v588, v589, v590, v591, v592, v593, 1, v595, 0, v597, v598, v599, v600, v601, 3, 4) :|: TRUE f_301(v453, v454, v455, v456, v457, v461, 1, v460, v458, v462, v463, v464, 0, 3, 2, 4) -> f_303(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_302(v588, v589, v590, v591, v592, v593, 1, v595, 0, v597, v598, v599, v600, v601, 3, 4) -> f_304(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) :|: 0 = 0 f_303(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) -> f_305(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) :|: v619 != 0 f_303(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) -> f_306(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) :|: v619 = 0 f_304(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_307(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) :|: 0 < v597 f_304(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_308(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) :|: v597 <= 0 f_305(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) -> f_309(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_306(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) -> f_310(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) :|: 0 = 0 f_307(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_311(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) :|: 0 = 0 f_308(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_312(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) :|: 0 = 0 f_309(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) -> f_313(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_310(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) -> f_314(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) :|: TRUE f_311(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_315(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) :|: TRUE f_312(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) -> f_316(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) :|: 0 = 0 f_313(v453, v454, v455, v456, v457, v461, 1, v619, v458, v462, v463, v464, 0, 3, 2, 4) -> f_317(v453, v454, v455, v456, v457, v461, 1, v619, v462, v463, v464, 0, 3, 2, 4) :|: 0 = 0 f_314(v453, v454, v455, v456, v457, v461, 1, 0, v458, v462, v463, v464, 3, 2, 4) -> f_318(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) :|: TRUE f_315(v588, v589, v590, v591, v592, v597, 1, v595, 0, v598, v599, v600, v601, 3, 4) -> f_319(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 4) :|: 0 = 0 f_316(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) -> f_320(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) :|: TRUE f_317(v453, v454, v455, v456, v457, v461, 1, v619, v462, v463, v464, 0, 3, 2, 4) -> f_321(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) :|: 1 + v650 = v461 && 0 <= v650 f_318(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) -> f_322(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) :|: TRUE f_319(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 4) -> f_323(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: 0 < v598 && 2 <= v595 && 2 <= v592 f_319(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 4) -> f_324(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) :|: v598 <= 0 && v595 = 1 && v598 = 0 && 0 = 0 f_320(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) -> f_325(v588, v589, v590, v591, v592, v597, 0, v595, 1, v598, v599, v600, v601, 3, 4) :|: 0 = 0 f_321(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) -> f_326(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_322(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) -> f_327(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) :|: 0 = 0 f_323(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_328(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: 0 = 0 f_324(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) -> f_329(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) :|: 0 = 0 f_326(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) -> f_330(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_327(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v462, v463, v464, 3, 2, 4) -> f_331(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) :|: 1 + v661 = v457 && 0 <= v661 f_328(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_332(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: 0 = 0 f_329(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) -> f_333(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) :|: 0 = 0 f_330(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) -> f_334(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) :|: TRUE f_331(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) -> f_335(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) :|: TRUE f_332(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_336(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: TRUE f_333(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) -> f_337(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) :|: TRUE f_334(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 2, 4) -> f_271(v453, v454, v455, v456, v457, v461, 1, v619, v650, v462, v463, v464, 0, 3, 4) :|: TRUE f_335(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) -> f_338(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) :|: TRUE f_336(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_339(v588, v589, v590, v591, v592, v597, 1, v598, v770, 0, v595, v599, v600, v601, 3, 2, 4) :|: TRUE f_337(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) -> f_340(v588, v589, v590, v591, v592, v597, 1, 0, v599, v600, v601, 3, 4) :|: 0 = 0 f_338(v453, v454, v455, v456, v457, v461, 1, 0, v458, v640, v661, v462, v463, v464, 3, 2, 4) -> f_413(v453, v454, v455, v456, v457, v461, 1, v457, 0, v458, v461, v640, v661, v462, v463, v464, 3, 2, 4) :|: TRUE f_339(v588, v589, v590, v591, v592, v597, 1, v598, v770, 0, v595, v599, v600, v601, 3, 2, 4) -> f_342(v588, v589, v590, v591, v592, v597, 1, v598, v770, 0, v595, v599, v600, v601, 3, 2, 4) :|: v770 != 0 f_339(v588, v589, v590, v591, v592, v597, 1, v598, v770, 0, v595, v599, v600, v601, 3, 2, 4) -> f_343(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: v770 = 0 f_342(v588, v589, v590, v591, v592, v597, 1, v598, v770, 0, v595, v599, v600, v601, 3, 2, 4) -> f_345(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) :|: 0 = 0 f_343(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_346(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: 0 = 0 f_345(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) -> f_349(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) :|: TRUE f_346(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_350(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) :|: TRUE f_349(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) -> f_353(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) :|: 0 = 0 f_350(v588, v589, v590, v591, v592, v597, 1, v598, 0, v595, v599, v600, v601, 3, 2, 4) -> f_354(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v595, v599, v600, v601, 3, 2, 4) :|: TRUE f_353(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v599, v600, v601, 0, 3, 2, 4) -> f_357(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) :|: 1 + v864 = v597 && 0 <= v864 f_354(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v595, v599, v600, v601, 3, 2, 4) -> f_358(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v595, v599, v600, v601, 3, 2, 4) :|: TRUE f_357(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) -> f_361(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) :|: TRUE f_358(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v595, v599, v600, v601, 3, 2, 4) -> f_362(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v599, v600, v601, 3, 2, 4) :|: 0 = 0 f_361(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) -> f_366(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) :|: TRUE f_362(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v599, v600, v601, 3, 2, 4) -> f_367(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) :|: 1 + v919 = v598 && 0 <= v919 f_366(v588, v589, v590, v591, v592, v597, 1, v598, v770, v595, v864, v599, v600, v601, 0, 3, 2, 4) -> f_429(v588, v589, v590, v591, v592, v597, 1, v598, v770, v597, v595, v864, v599, v600, v601, 0, 3, 2, 4) :|: TRUE f_367(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) -> f_371(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) :|: TRUE f_371(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) -> f_375(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) :|: TRUE f_375(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 2, 4) -> f_300(v588, v589, v590, v591, v592, v597, 1, v598, 0, v796, v919, v599, v600, v601, 3, 4) :|: TRUE f_413(v1506, v1507, v1508, v1509, v1510, v1511, 1, v1513, 0, v1515, v1516, v1517, v1518, v1519, v1520, v1521, 3, 2, 4) -> f_486(v1506, v1507, v1508, v1509, v1510, v1511, 1, v1513, 0, v1515, v1516, v1517, v1518, v1519, v1520, v1521, 3, 2, 4) :|: TRUE f_429(v1619, v1620, v1621, v1622, v1623, v1624, 1, v1626, v1627, v1628, v1629, v1630, v1631, v1632, v1633, 0, 3, 2, 4) -> f_491(v1619, v1620, v1621, v1622, v1623, v1624, 1, v1626, v1627, v1628, v1629, v1630, v1631, v1632, v1633, 0, 3, 2, 4) :|: TRUE f_486(v2187, v2188, v2189, v2190, v2191, v2192, 1, v2194, 0, v2196, v2197, v2198, v2199, v2200, v2201, v2202, 3, 2, 4) -> f_559(v2187, v2188, v2189, v2190, v2191, v2192, 1, v2194, 0, v2196, v2197, v2198, v2199, v2200, v2201, v2202, 3, 2, 4) :|: TRUE f_491(v2255, v2256, v2257, v2258, v2259, v2260, 1, v2262, v2263, v2264, v2265, v2266, v2267, v2268, v2269, 0, 3, 2, 4) -> f_493(v2255, v2256, v2257, v2258, v2259, v2260, 1, v2262, v2263, v2264, v2265, v2266, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_493(v2255, v2256, v2257, v2258, v2259, v2260, 1, v2262, v2263, v2264, v2265, v2266, v2267, v2268, v2269, 0, 3, 2, 4) -> f_496(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_496(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_499(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 < v2266 && 2 <= v2260 && 2 <= v2264 f_496(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_500(v2255, v2256, v2257, v2258, v2259, 0, 1, v2262, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) :|: v2266 <= 0 && v2260 = 1 && v2266 = 0 && 0 = 0 f_499(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_503(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_500(v2255, v2256, v2257, v2258, v2259, 0, 1, v2262, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) -> f_504(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) :|: 0 = 0 f_503(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_507(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_504(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) -> f_508(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) :|: 0 = 0 f_507(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_512(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_508(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) -> f_513(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) :|: TRUE f_512(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_516(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_513(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) -> f_517(v2255, v2256, v2257, v2258, v2259, 0, v2262, 1, v2263, v2264, v2265, v2267, v2268, v2269, 3, 2, 4) :|: 0 = 0 f_516(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_520(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_520(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_523(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_523(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2263, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_526(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_526(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_529(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: v2685 != 0 f_526(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_530(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) :|: v2685 = 0 f_529(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_533(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: 0 = 0 f_530(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) -> f_534(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) :|: 0 = 0 f_533(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_537(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_534(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) -> f_538(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) :|: TRUE f_537(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2267, v2268, v2269, 0, 3, 2, 4) -> f_586(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, v2685, v2264, v2265, v2260, v2266, v2267, v2268, v2269, 0, 3, 2, 4) :|: TRUE f_538(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2267, v2268, v2269, 3, 2, 4) -> f_588(v2255, v2256, v2257, v2258, v2259, v2266, 1, v2262, 0, v2264, v2265, v2260, v2266, v2267, v2268, v2269, 3, 2, 4) :|: TRUE f_559(v2918, v2919, v2920, v2921, v2922, v2923, 1, v2925, 0, v2927, v2928, v2929, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_560(v2918, v2919, v2920, v2921, v2922, v2923, 1, v2925, 0, v2927, v2928, v2929, v2930, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_560(v2918, v2919, v2920, v2921, v2922, v2923, 1, v2925, 0, v2927, v2928, v2929, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_561(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_561(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_562(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 < v2929 f_561(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_563(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: v2929 <= 0 f_562(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_564(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_563(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_565(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_564(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_566(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_565(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_567(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_566(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2925, 0, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_568(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_567(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_569(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_568(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_570(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: 0 < v2930 && 2 <= v2925 && 2 <= v2922 f_568(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_571(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: v2930 <= 0 && v2925 = 1 && v2930 = 0 && 0 = 0 f_569(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) -> f_572(v2918, v2919, v2920, v2921, v2922, v2929, 0, v2925, 1, v2927, v2928, v2930, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_570(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_573(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_571(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) -> f_574(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_573(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_575(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_574(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) -> f_576(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_575(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_577(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_576(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) -> f_578(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_577(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_579(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_578(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) -> f_580(v2918, v2919, v2920, v2921, v2922, v2929, 1, 0, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_579(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_581(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: v3310 != 0 f_579(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_582(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: v3310 = 0 f_581(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_583(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, v2927, v2928, v2925, v2931, v2932, v2933, 0, 3, 2, 4) :|: 0 = 0 f_582(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_584(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: 0 = 0 f_583(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, v2927, v2928, v2925, v2931, v2932, v2933, 0, 3, 2, 4) -> f_585(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, v2927, v2928, v2925, v2931, v2932, v2933, 0, 3, 2, 4) :|: TRUE f_584(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_587(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_585(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, v2927, v2928, v2925, v2931, v2932, v2933, 0, 3, 2, 4) -> f_586(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, v3310, v2929, v2925, v2927, v2928, v2931, v2932, v2933, 0, 3, 2, 4) :|: TRUE f_586(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3343, v3344, v3345, v3346, v3347, 0, 3, 2, 4) -> f_589(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3344, v3345, v3346, v3347, 0, 3, 2, 4) :|: 0 = 0 f_587(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2927, v2928, v2925, v2931, v2932, v2933, 3, 2, 4) -> f_588(v2918, v2919, v2920, v2921, v2922, v2929, 1, v2930, 0, v2929, v2925, v2927, v2928, v2931, v2932, v2933, 3, 2, 4) :|: TRUE f_588(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3379, v3380, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_590(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3380, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: TRUE f_589(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3344, v3345, v3346, v3347, 0, 3, 2, 4) -> f_591(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) :|: 1 + v3387 = v3337 && 0 <= v3387 f_590(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3380, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_592(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3380, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: TRUE f_591(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) -> f_593(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) :|: TRUE f_592(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3380, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_594(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: 0 = 0 f_593(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) -> f_595(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) :|: TRUE f_594(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_596(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: 1 + v3429 = v3377 && 0 <= v3429 f_595(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) -> f_491(v3332, v3333, v3334, v3335, v3336, v3337, 1, v3339, v3340, v3341, v3342, v3387, v3345, v3346, v3347, 0, 3, 2, 4) :|: TRUE f_596(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_597(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: TRUE f_597(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_598(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) :|: TRUE f_598(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3386, v3429, v3381, v3382, v3383, v3384, v3385, 3, 2, 4) -> f_559(v3370, v3371, v3372, v3373, v3374, v3375, 1, v3377, 0, v3381, v3382, v3386, v3429, v3383, v3384, v3385, 3, 2, 4) :|: TRUE Combined rules. Obtained 23 rulesP rules: f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, 1 + v3387:0, 1, v2925:0, 0, v2927:0, v2928:0, v2930:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) -> f_496(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v3387:0, 1, v2930:0, v3310:0, 1 + v3387:0, v2925:0, 1 + v3387:0, v2931:0, v2932:0, v2933:0, 0, 3, 2, 4) :|: v3387:0 > -1 && v2925:0 > 1 && v2930:0 > 0 && v2922:0 > 1 && v3310:0 < 0 f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, 1 + v3387:0, 1, v2925:0, 0, v2927:0, v2928:0, v2930:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) -> f_496(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v3387:0, 1, v2930:0, v3310:0, 1 + v3387:0, v2925:0, 1 + v3387:0, v2931:0, v2932:0, v2933:0, 0, 3, 2, 4) :|: v3387:0 > -1 && v2925:0 > 1 && v2930:0 > 0 && v2922:0 > 1 && v3310:0 > 0 f_304(v588:0, v589:0, v590:0, v591:0, v592:0, 1 + v864:0, 1, v595:0, 0, v598:0, v599:0, v600:0, v601:0, 3, 4) -> f_496(v588:0, v589:0, v590:0, v591:0, v592:0, v864:0, 1, v598:0, v770:0, 1 + v864:0, v595:0, 1 + v864:0, v599:0, v600:0, v601:0, 0, 3, 2, 4) :|: v864:0 > -1 && v595:0 > 1 && v598:0 > 0 && v592:0 > 1 && v770:0 < 0 f_304(v588:0, v589:0, v590:0, v591:0, v592:0, 1 + v864:0, 1, v595:0, 0, v598:0, v599:0, v600:0, v601:0, 3, 4) -> f_496(v588:0, v589:0, v590:0, v591:0, v592:0, v864:0, 1, v598:0, v770:0, 1 + v864:0, v595:0, 1 + v864:0, v599:0, v600:0, v601:0, 0, 3, 2, 4) :|: v864:0 > -1 && v595:0 > 1 && v598:0 > 0 && v592:0 > 1 && v770:0 > 0 f_304(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 1, v595:0, 0, v598:0, v599:0, v600:0, v601:0, 3, 4) -> f_325(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 0, v595:0, 1, v598:0, v599:0, v600:0, v601:0, 3, 4) :|: v597:0 < 1 f_274(v453:0, v454:0, v455:0, v456:0, v457:0, 0, 1, v460:0, 1, v462:0, v463:0, v464:0, 0, 3, 4) -> f_294(v453:0, v454:0, v455:0, v456:0, v457:0, 0, 1, v460:0, v462:0, v463:0, v464:0, 3, 4) :|: TRUE f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 1, 1, 0, v2927:0, v2928:0, 0, v2931:0, v2932:0, v2933:0, 3, 2, 4) -> f_580(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 1, 0, v2927:0, v2928:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) :|: v2929:0 > 0 f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 1, v2925:0, 0, v2927:0, v2928:0, v2930:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) -> f_572(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 0, v2925:0, 1, v2927:0, v2928:0, v2930:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) :|: v2929:0 < 1 f_102 -> f_131(v1:0, v3:0, v5:0, v7:0, v9:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v9:0 < 1 && v7:0 > 0 f_102 -> f_304(v1:0, v3:0, v5:0, v7:0, 1 + v20:0, v16:0, 1, 1 + v20:0, 0, v20:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v20:0 > -1 f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, v2266:0, 1, 1 + v3429:0, v2263:0, v2264:0, v2265:0, v2260:0, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) -> f_561(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, v3386:0, 1, 1 + v3429:0, 0, v2260:0, v2266:0, v3429:0, v2267:0, v2268:0, v2269:0, 3, 2, 4) :|: v2260:0 > 1 && v2266:0 > 0 && v3429:0 > -1 && v2264:0 > 1 f_102 -> f_123(v1:0, v3:0, v5:0, v7:0, v9:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 < 1 f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, 1 + v3387:0, 1, v2262:0, v2263:0, v2264:0, v2265:0, v2260:0, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) -> f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, v3387:0, 1, v2262:0, v2685:0, v2264:0, v2265:0, 1 + v3387:0, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) :|: v2260:0 > 1 && v3387:0 > -1 && v2264:0 > 1 && v2685:0 < 0 f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, 1 + v3387:0, 1, v2262:0, v2263:0, v2264:0, v2265:0, v2260:0, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) -> f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, v3387:0, 1, v2262:0, v2685:0, v2264:0, v2265:0, 1 + v3387:0, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) :|: v2260:0 > 1 && v3387:0 > -1 && v2264:0 > 1 && v2685:0 > 0 f_274(v453:0, v454:0, v455:0, v456:0, v457:0, 1 + v650:0, 1, v460:0, v458:0, v462:0, v463:0, v464:0, 0, 3, 4) -> f_274(v453:0, v454:0, v455:0, v456:0, v457:0, v650:0, 1, v619:0, 1 + v650:0, v462:0, v463:0, v464:0, 0, 3, 4) :|: v458:0 > 1 && v650:0 > -1 && v456:0 > 1 && v619:0 < 0 f_274(v453:0, v454:0, v455:0, v456:0, v457:0, 1 + v650:0, 1, v460:0, v458:0, v462:0, v463:0, v464:0, 0, 3, 4) -> f_274(v453:0, v454:0, v455:0, v456:0, v457:0, v650:0, 1, v619:0, 1 + v650:0, v462:0, v463:0, v464:0, 0, 3, 4) :|: v458:0 > 1 && v650:0 > -1 && v456:0 > 1 && v619:0 > 0 f_304(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 1, 1, 0, 0, v599:0, v600:0, v601:0, 3, 4) -> f_340(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 1, 0, v599:0, v600:0, v601:0, 3, 4) :|: v597:0 > 0 f_274(v453:0, v454:0, v455:0, v456:0, 1 + v661:0, v461:0, 1, v460:0, v458:0, v462:0, v463:0, v464:0, 0, 3, 4) -> f_561(v453:0, v454:0, v455:0, v456:0, 1 + v661:0, v640:0, 1, 1 + v661:0, 0, v458:0, v461:0, v661:0, v462:0, v463:0, v464:0, 3, 2, 4) :|: v458:0 > 1 && v461:0 > 0 && v661:0 > -1 && v456:0 > 1 f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 1, v2925:0, 0, v2927:0, v2928:0, 1 + v3429:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) -> f_561(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v3386:0, 1, 1 + v3429:0, 0, v2927:0, v2928:0, v3429:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) :|: v2929:0 > 0 && v2925:0 > 1 && v3429:0 > -1 && v2922:0 > 1 f_304(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 1, v595:0, 0, 1 + v919:0, v599:0, v600:0, v601:0, 3, 4) -> f_304(v588:0, v589:0, v590:0, v591:0, v592:0, v796:0, 1, 1 + v919:0, 0, v919:0, v599:0, v600:0, v601:0, 3, 4) :|: v597:0 > 0 && v595:0 > 1 && v919:0 > -1 && v592:0 > 1 f_496(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, 0, 1, v2262:0, v2263:0, v2264:0, v2265:0, 1, v2267:0, v2268:0, v2269:0, 0, 3, 2, 4) -> f_517(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, 0, v2262:0, 1, v2263:0, v2264:0, v2265:0, v2267:0, v2268:0, v2269:0, 3, 2, 4) :|: TRUE f_102 -> f_274(v1:0, v3:0, v5:0, 1 + v17:0, v9:0, v17:0, 1, v15:0, 1 + v17:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v17:0 > -1 && v9:0 > 0 && v15:0 < 0 f_102 -> f_274(v1:0, v3:0, v5:0, 1 + v17:0, v9:0, v17:0, 1, v15:0, 1 + v17:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v17:0 > -1 && v9:0 > 0 && v15:0 > 0 Filtered unneeded arguments: f_561(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_561(x5, x6, x8, x12) f_304(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) -> f_304(x5, x6, x8, x10) f_274(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) -> f_274(x4, x5, x6, x9) f_496(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f_496(x5, x6, x8, x10, x12) Removed division, modulo operations, cleaned up constraints. Obtained 18 rules.P rules: f_561(v2922:0, sum~cons_1~v3387:0, v2925:0, v2930:0) -> f_496(v2922:0, v3387:0, v2930:0, 1 + v3387:0, 1 + v3387:0) :|: v2925:0 > 1 && v3387:0 > -1 && v2922:0 > 1 && v2930:0 > 0 && sum~cons_1~v3387:0 = 1 + v3387:0 f_304(v592:0, sum~cons_1~v864:0, v595:0, v598:0) -> f_496(v592:0, v864:0, v598:0, 1 + v864:0, 1 + v864:0) :|: v595:0 > 1 && v864:0 > -1 && v592:0 > 1 && v598:0 > 0 && sum~cons_1~v864:0 = 1 + v864:0 f_304(v592:0, v597:0, v595:0, v598:0) -> f_325(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 0, v595:0, 1, v598:0, v599:0, v600:0, v601:0, 3, 4) :|: v597:0 < 1 f_274(v456:0, v457:0, cons_0, cons_1) -> f_294(v453:0, v454:0, v455:0, v456:0, v457:0, 0, 1, v460:0, v462:0, v463:0, v464:0, 3, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 f_561(v2922:0, v2929:0, cons_1, cons_0) -> f_580(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 1, 0, v2927:0, v2928:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) :|: v2929:0 > 0 && cons_1 = 1 && cons_0 = 0 f_561(v2922:0, v2929:0, v2925:0, v2930:0) -> f_572(v2918:0, v2919:0, v2920:0, v2921:0, v2922:0, v2929:0, 0, v2925:0, 1, v2927:0, v2928:0, v2930:0, v2931:0, v2932:0, v2933:0, 3, 2, 4) :|: v2929:0 < 1 f_102 -> f_131(v1:0, v3:0, v5:0, v7:0, v9:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 < 1 f_102 -> f_304(1 + v20:0, v16:0, 1 + v20:0, v20:0) :|: v20:0 > -1 f_496(v2259:0, v2266:0, sum~cons_1~v3429:0, v2264:0, v2260:0) -> f_561(v2259:0, v3386:0, 1 + v3429:0, v3429:0) :|: v2266:0 > 0 && v2260:0 > 1 && v2264:0 > 1 && v3429:0 > -1 && sum~cons_1~v3429:0 = 1 + v3429:0 f_102 -> f_123(v1:0, v3:0, v5:0, v7:0, v9:0, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 1, 4) :|: v1:0 > 0 && v3:0 > 0 && v7:0 < 1 && v5:0 > 0 f_496(v2259:0, sum~cons_1~v3387:0, v2262:0, v2264:0, v2260:0) -> f_496(v2259:0, v3387:0, v2262:0, v2264:0, 1 + v3387:0) :|: v3387:0 > -1 && v2264:0 > 1 && v2260:0 > 1 && sum~cons_1~v3387:0 = 1 + v3387:0 f_274(v456:0, v457:0, sum~cons_1~v650:0, v458:0) -> f_274(v456:0, v457:0, v650:0, 1 + v650:0) :|: v650:0 > -1 && v456:0 > 1 && v458:0 > 1 && sum~cons_1~v650:0 = 1 + v650:0 f_304(v592:0, v597:0, cons_1, cons_0) -> f_340(v588:0, v589:0, v590:0, v591:0, v592:0, v597:0, 1, 0, v599:0, v600:0, v601:0, 3, 4) :|: v597:0 > 0 && cons_1 = 1 && cons_0 = 0 f_274(v456:0, sum~cons_1~v661:0, v461:0, v458:0) -> f_561(1 + v661:0, v640:0, 1 + v661:0, v661:0) :|: v461:0 > 0 && v458:0 > 1 && v456:0 > 1 && v661:0 > -1 && sum~cons_1~v661:0 = 1 + v661:0 f_561(v2922:0, v2929:0, v2925:0, sum~cons_1~v3429:0) -> f_561(v2922:0, v3386:0, 1 + v3429:0, v3429:0) :|: v2925:0 > 1 && v2929:0 > 0 && v2922:0 > 1 && v3429:0 > -1 && sum~cons_1~v3429:0 = 1 + v3429:0 f_304(v592:0, v597:0, v595:0, sum~cons_1~v919:0) -> f_304(v592:0, v796:0, 1 + v919:0, v919:0) :|: v595:0 > 1 && v597:0 > 0 && v592:0 > 1 && v919:0 > -1 && sum~cons_1~v919:0 = 1 + v919:0 f_496(v2259:0, cons_0, v2262:0, v2264:0, cons_1) -> f_517(v2255:0, v2256:0, v2257:0, v2258:0, v2259:0, 0, v2262:0, 1, v2263:0, v2264:0, v2265:0, v2267:0, v2268:0, v2269:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 f_102 -> f_274(1 + v17:0, v9:0, v17:0, 1 + v17:0) :|: v17:0 > -1 && v9:0 > 0 ---------------------------------------- (6) Obligation: Rules: f_561(v2922:0, sum~cons_1~v3387:0, v2925:0, v2930:0) -> f_496(v2922:0, v3387:0, v2930:0, 1 + v3387:0, 1 + v3387:0) :|: v2925:0 > 1 && v3387:0 > -1 && v2922:0 > 1 && v2930:0 > 0 && sum~cons_1~v3387:0 = 1 + v3387:0 f_304(v592:0, sum~cons_1~v864:0, v595:0, v598:0) -> f_496(v592:0, v864:0, v598:0, 1 + v864:0, 1 + v864:0) :|: v595:0 > 1 && v864:0 > -1 && v592:0 > 1 && v598:0 > 0 && sum~cons_1~v864:0 = 1 + v864:0 f_304(x, x1, x2, x3) -> f_325(x4, x5, x6, x7, x, x1, 0, x2, 1, x3, x8, x9, x10, 3, 4) :|: x1 < 1 f_274(v456:0, v457:0, cons_0, cons_1) -> f_294(v453:0, v454:0, v455:0, v456:0, v457:0, 0, 1, v460:0, v462:0, v463:0, v464:0, 3, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 f_561(x11, x12, x13, x14) -> f_580(x15, x16, x17, x18, x11, x12, 1, 0, x19, x20, x21, x22, x23, 3, 2, 4) :|: x12 > 0 && x13 = 1 && x14 = 0 f_561(x24, x25, x26, x27) -> f_572(x28, x29, x30, x31, x24, x25, 0, x26, 1, x32, x33, x27, x34, x35, x36, 3, 2, 4) :|: x25 < 1 f_102 -> f_131(v1:0, v3:0, v5:0, v7:0, v9:0, 1, 0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3, 4) :|: v1:0 > 0 && v3:0 > 0 && v5:0 > 0 && v7:0 > 0 && v9:0 < 1 f_102 -> f_304(1 + v20:0, v16:0, 1 + v20:0, v20:0) :|: v20:0 > -1 f_496(v2259:0, v2266:0, sum~cons_1~v3429:0, v2264:0, v2260:0) -> f_561(v2259:0, v3386:0, 1 + v3429:0, v3429:0) :|: v2266:0 > 0 && v2260:0 > 1 && v2264:0 > 1 && v3429:0 > -1 && sum~cons_1~v3429:0 = 1 + v3429:0 f_102 -> f_123(x37, x38, x39, x40, x41, 0, 3 + x37, 3 + x38, 3 + x39, 3, 1, 4) :|: x37 > 0 && x38 > 0 && x40 < 1 && x39 > 0 f_496(x42, x43, x44, x45, x46) -> f_496(x42, x47, x44, x45, 1 + x47) :|: x47 > -1 && x45 > 1 && x46 > 1 && x43 = 1 + x47 f_274(x48, x49, x50, x51) -> f_274(x48, x49, x52, 1 + x52) :|: x52 > -1 && x48 > 1 && x51 > 1 && x50 = 1 + x52 f_304(x53, x54, x55, x56) -> f_340(x57, x58, x59, x60, x53, x54, 1, 0, x61, x62, x63, 3, 4) :|: x54 > 0 && x55 = 1 && x56 = 0 f_274(x64, x65, x66, x67) -> f_561(1 + x68, x69, 1 + x68, x68) :|: x66 > 0 && x67 > 1 && x64 > 1 && x68 > -1 && x65 = 1 + x68 f_561(x70, x71, x72, x73) -> f_561(x70, x74, 1 + x75, x75) :|: x72 > 1 && x71 > 0 && x70 > 1 && x75 > -1 && x73 = 1 + x75 f_304(x76, x77, x78, x79) -> f_304(x76, x80, 1 + x81, x81) :|: x78 > 1 && x77 > 0 && x76 > 1 && x81 > -1 && x79 = 1 + x81 f_496(x82, x83, x84, x85, x86) -> f_517(x87, x88, x89, x90, x82, 0, x84, 1, x91, x85, x92, x93, x94, x95, 3, 2, 4) :|: TRUE && x83 = 0 && x86 = 1 f_102 -> f_274(1 + x96, x97, x96, 1 + x96) :|: x96 > -1 && x97 > 0 Start term: f_102 ---------------------------------------- (7) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_561_18,1) (f_496_18,2) (f_304_18,3) (f_325_18,4) (f_274_18,5) (f_294_18,6) (f_580_18,7) (f_572_18,8) (f_102_18,9) (f_131_18,10) (f_123_18,11) (f_340_18,12) (f_517_18,13) ---------------------------------------- (8) Obligation: START: 9; 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 := oldX1 - 1; oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); assume(oldX2 > 1 && oldX18 > -1 && oldX0 > 1 && oldX3 > 0 && oldX1 = 1 + oldX18); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX3; x3 := 1 + oldX18; x4 := 1 + oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; x15 := oldX29; x16 := oldX30; x17 := oldX31; 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 := oldX1 - 1; oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); assume(oldX2 > 1 && oldX18 > -1 && oldX0 > 1 && oldX3 > 0 && oldX1 = 1 + oldX18); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX3; x3 := 1 + oldX18; x4 := 1 + oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; x15 := oldX29; x16 := oldX30; x17 := oldX31; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); assume(oldX1 < 1); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX0; x5 := oldX1; x6 := 0; x7 := oldX2; x8 := 1; x9 := oldX3; x10 := oldX22; x11 := oldX23; x12 := oldX24; x13 := 3; x14 := 4; x15 := oldX25; x16 := oldX26; x17 := oldX27; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); assume(0 = 0 && oldX2 = 0 && oldX3 = 1); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX0; x4 := oldX1; x5 := 0; x6 := 1; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := 3; x12 := 4; x13 := oldX25; x14 := oldX26; x15 := oldX27; x16 := oldX28; x17 := oldX29; TO: 6; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(oldX1 > 0 && oldX2 = 1 && oldX3 = 0); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX0; x5 := oldX1; x6 := 1; x7 := 0; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := 3; x14 := 2; x15 := 4; x16 := oldX27; x17 := oldX28; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX1 < 1); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX0; x5 := oldX1; x6 := 0; x7 := oldX2; x8 := 1; x9 := oldX22; x10 := oldX23; x11 := oldX3; x12 := oldX24; x13 := oldX25; x14 := oldX26; x15 := 3; x16 := 2; x17 := 4; TO: 8; FROM: 9; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(oldX18 > 0 && oldX19 > 0 && oldX20 > 0 && oldX21 > 0 && oldX22 < 1); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX22; x5 := 1; x6 := 0; x7 := 3 + oldX18; x8 := 3 + oldX19; x9 := 3 + oldX20; x10 := 3; x11 := 4; x12 := oldX23; x13 := oldX24; x14 := oldX25; x15 := oldX26; x16 := oldX27; x17 := oldX28; TO: 10; FROM: 9; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX18 > -1); x0 := 1 + oldX18; x1 := oldX19; x2 := 1 + oldX18; x3 := oldX18; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 3; FROM: 2; 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; oldX19 := oldX2 - 1; oldX18 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX1 > 0 && oldX4 > 1 && oldX3 > 1 && oldX19 > -1 && oldX2 = 1 + oldX19); x0 := oldX0; x1 := oldX18; x2 := 1 + oldX19; x3 := oldX2 - 1; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 1; FROM: 9; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(oldX18 > 0 && oldX19 > 0 && oldX21 < 1 && oldX20 > 0); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX22; x5 := 0; x6 := 3 + oldX18; x7 := 3 + oldX19; x8 := 3 + oldX20; x9 := 3; x10 := 1; x11 := 4; x12 := oldX23; x13 := oldX24; x14 := oldX25; x15 := oldX26; x16 := oldX27; x17 := oldX28; TO: 11; FROM: 2; 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 := oldX1 - 1; oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); assume(oldX18 > -1 && oldX3 > 1 && oldX4 > 1 && oldX1 = 1 + oldX18); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX2; x3 := oldX3; x4 := 1 + oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; x15 := oldX29; x16 := oldX30; x17 := oldX31; TO: 2; 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 := oldX2 - 1; oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); assume(oldX18 > -1 && oldX0 > 1 && oldX3 > 1 && oldX2 = 1 + oldX18); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX18; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := oldX22; x8 := oldX23; x9 := oldX24; x10 := oldX25; x11 := oldX26; x12 := oldX27; x13 := oldX28; x14 := oldX29; x15 := oldX30; x16 := oldX31; x17 := oldX32; TO: 5; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); assume(oldX1 > 0 && oldX2 = 1 && oldX3 = 0); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX0; x5 := oldX1; x6 := 1; x7 := 0; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := 3; x12 := 4; x13 := oldX25; x14 := oldX26; x15 := oldX27; x16 := oldX28; x17 := oldX29; TO: 12; 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 := oldX1 - 1; oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX2 > 0 && oldX3 > 1 && oldX0 > 1 && oldX18 > -1 && oldX1 = 1 + oldX18); x0 := 1 + oldX18; x1 := oldX19; x2 := 1 + oldX18; x3 := oldX1 - 1; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 1; 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; oldX19 := oldX3 - 1; oldX18 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX2 > 1 && oldX1 > 0 && oldX0 > 1 && oldX19 > -1 && oldX3 = 1 + oldX19); x0 := oldX0; x1 := oldX18; x2 := 1 + oldX19; x3 := oldX3 - 1; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 1; 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; oldX19 := oldX3 - 1; oldX18 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX2 > 1 && oldX1 > 0 && oldX0 > 1 && oldX19 > -1 && oldX3 = 1 + oldX19); x0 := oldX0; x1 := oldX18; x2 := 1 + oldX19; x3 := oldX3 - 1; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 3; FROM: 2; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); assume(0 = 0 && oldX1 = 0 && oldX4 = 1); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX0; x5 := 0; x6 := oldX2; x7 := 1; x8 := oldX22; x9 := oldX3; x10 := oldX23; x11 := oldX24; x12 := oldX25; x13 := oldX26; x14 := 3; x15 := 2; x16 := 4; x17 := oldX27; TO: 13; FROM: 9; 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); oldX33 := nondet(); assume(oldX18 > -1 && oldX19 > 0); x0 := 1 + oldX18; x1 := oldX19; x2 := oldX18; x3 := 1 + oldX18; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; x16 := oldX32; x17 := oldX33; TO: 5; ---------------------------------------- (9) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 22, 27, 28, 50, 54, 55 using the following rank functions: - Rank function 1: RF for loc. 16: 3+4*x3 RF for loc. 17: 4*x2 RF for loc. 20: 2+4*x3 RF for loc. 32: 4*x2 Bound for (chained) transitions 27: 6 Bound for (chained) transitions 28: 6 Bound for (chained) transitions 54: 4 - Rank function 2: RF for loc. 16: 0 RF for loc. 17: 2*x1 RF for loc. 20: -1 RF for loc. 32: -1+2*x1 Bound for (chained) transitions 22: 0 Bound for (chained) transitions 55: 1 - Rank function 3: RF for loc. 17: 0 RF for loc. 32: -1 Bound for (chained) transitions 50: 0 * Removed transitions 43, 46, 47 using the following rank functions: - Rank function 1: RF for loc. 19: 1+2*x2 RF for loc. 28: 2*x2 Bound for (chained) transitions 46: 2 Bound for (chained) transitions 47: 2 - Rank function 2: RF for loc. 19: 1 RF for loc. 28: 0 Bound for (chained) transitions 43: 1 * Removed transitions 36, 38, 39 using the following rank functions: - Rank function 1: RF for loc. 18: 1+2*x3 RF for loc. 24: 2*x3 Bound for (chained) transitions 38: 2 Bound for (chained) transitions 39: 2 - Rank function 2: RF for loc. 18: 0 RF for loc. 24: -1 Bound for (chained) transitions 36: 0 ---------------------------------------- (10) YES