/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could not be shown: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 180 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 2175 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] (6) LLVM Symbolic Execution Lasso (7) Lasso2IRS [SOUND, 111 ms] (8) IntTRS (9) IRS2T2 [EQUIVALENT, 0 ms] (10) T2IntSys (11) T2 [COMPLETE, 1212 ms] (12) NO (13) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 46 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [COMPLETE, 1216 ms] (20) NO (21) SCC2IRS [SOUND, 0 ms] (22) IntTRS (23) IRS2T2 [EQUIVALENT, 0 ms] (24) T2IntSys (25) T2 [COMPLETE, 1333 ms] (26) NO (27) SEGraph to IRS [SOUND, 238 ms] (28) IntTRS (29) IRS2T2 [EQUIVALENT, 0 ms] (30) T2IntSys (31) T2 [COMPLETE, 1326 ms] (32) NO ---------------------------------------- (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_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "sum" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (n i32, m i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 %3 = alloca i32, align 4 store %n, %2 store %m, %3 %4 = load %2 %5 = icmp eq %4 0 br %5, %6, %8 6: %7 = load %3 store %7, %1 br %14 8: %9 = load %2 %10 = sub %9 1 %11 = load %3 %12 = add %11 1 %13 = call i32 @sum(i32 %10, i32 %12) store %13, %1 br %14 14: %15 = load %1 ret %15 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %a = alloca i32, align 4 %b = alloca i32, align 4 %result = alloca i32, align 4 store 0, %1 %2 = load %a %3 = load %b %4 = call i32 @sum(i32 %2, i32 %3) store %4, %result %5 = load %result %6 = load %a %7 = load %b %8 = add %6 %7 %9 = icmp eq %5 %8 br %9, %10, %12 10: br %11 11: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() br %12 12: %13 = load %1 ret %13 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) SymbolicExecutionGraphToLassoProof (EQUIVALENT) Converted SEGraph to 1 independent lasso. ---------------------------------------- (6) Obligation: Lasso ---------------------------------------- (7) Lasso2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 27 rulesP rules: f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) -> f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) :|: 1 <= v97 && v98 = 3 + v97 && 4 <= v98 f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) -> f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 1 <= v99 && v100 = 3 + v99 && 4 <= v100 f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 0 = 0 f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: v82 != 0 f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 1 + v104 = v82 f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: v105 = 1 + v83 f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: 0 = 0 f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_187(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) :|: TRUE f_187(v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) -> f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) :|: 1 <= v95 && v96 = 3 + v95 && 4 <= v96 f_124 -> f_125(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_125(v1, v2, 3, 1, 4) -> f_126(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_126(v1, v3, v2, v4, 3, 1, 4) -> f_127(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 f_127(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_128(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 f_128(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_129(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_129(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_130(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_130(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) -> f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: 0 = 0 f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_133(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_133(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_159(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, v9, v11, 3, 1, 4) :|: TRUE f_159(v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, 0, v51, v52, 3, 1, 4) -> f_187(v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, 0, v51, v52, 3, 1, 4) :|: TRUE Combined rules. Obtained 3 rulesP rules: f_124 -> f_189(v9:0, v11:0, v95:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, v5:0, 3 + v5:0, v7:0, 3 + v7:0, 3 + v95:0, 0, v9:0, v11:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v95:0 > 0 f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v104:0 < -1 && v95:1 > 0 f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v104:0 > -1 && v95:1 > 0 Filtered unneeded arguments: f_189(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_189(x1) Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: f_124 -> f_189(v9:0) :|: TRUE f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 > -1 && sum~cons_1~v104:0 = 1 + v104:0 ---------------------------------------- (8) Obligation: Rules: f_124 -> f_189(v9:0) :|: TRUE f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_189(x) -> f_189(x1) :|: x1 > -1 && x = 1 + x1 Start term: f_124 ---------------------------------------- (9) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_124_1,1) (f_189_1,2) ---------------------------------------- (10) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := nondet(); assume(0 = 0); x0 := oldX1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 < -1 && oldX0 = 1 + oldX1); x0 := oldX0 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := oldX0 - 1; TO: 2; ---------------------------------------- (11) T2 (COMPLETE) Found this recurrent set for cutpoint 5: x0-oldX1 <= 0 and x0+1 <= 0 ---------------------------------------- (12) NO ---------------------------------------- (13) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 1 SCC. ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 16 rulesP rules: f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) -> f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) :|: 1 <= v97 && v98 = 3 + v97 && 4 <= v98 f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) -> f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 1 <= v99 && v100 = 3 + v99 && 4 <= v100 f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 0 = 0 f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: v82 != 0 f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 1 + v104 = v82 f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: v105 = 1 + v83 f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: 0 = 0 f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_187(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) :|: TRUE f_187(v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) -> f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) :|: 1 <= v95 && v96 = 3 + v95 && 4 <= v96 Combined rules. Obtained 2 rulesP rules: f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v104:0 < -1 && v95:1 > 0 f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v104:0 > -1 && v95:1 > 0 Filtered unneeded arguments: f_189(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_189(x1) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 > -1 && sum~cons_1~v104:0 = 1 + v104:0 ---------------------------------------- (16) Obligation: Rules: f_189(sum~cons_1~v104:0) -> f_189(v104:0) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_189(x) -> f_189(x1) :|: x1 > -1 && x = 1 + x1 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_189_1,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 < -1 && oldX0 = 1 + oldX1); x0 := oldX0 - 1; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := oldX0 - 1; TO: 1; ---------------------------------------- (19) T2 (COMPLETE) Found this recurrent set for cutpoint 5: 0 <= 0 and x0+1 <= 0 ---------------------------------------- (20) NO ---------------------------------------- (21) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 16 rulesP rules: f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) -> f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) :|: 1 <= v97 && v98 = 3 + v97 && 4 <= v98 f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) -> f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 1 <= v99 && v100 = 3 + v99 && 4 <= v100 f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 0 = 0 f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: v82 != 0 f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 1 + v104 = v82 f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: v105 = 1 + v83 f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: 0 = 0 f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_187(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) :|: v104 <= v93 && v94 <= v105 && 1 <= v84 && 4 <= v85 && 1 <= v86 && 4 <= v87 && 1 <= v88 && 4 <= v89 && 1 <= v90 && 4 <= v91 && v84 <= v85 && v86 <= v87 && v88 <= v89 && v90 <= v91 f_187(v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) -> f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) :|: 1 <= v95 && v96 = 3 + v95 && 4 <= v96 Combined rules. Obtained 2 rulesP rules: f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v94:0 <= 1 + v83:0 && v93:0 >= v104:0 && v84:0 > 0 && v85:0 > 3 && v86:0 > 0 && v87:0 > 3 && v104:0 < -1 && v88:0 > 0 && v89:0 > 3 && v90:0 > 0 && v91:0 > 3 && v85:0 >= v84:0 && v87:0 >= v86:0 && v89:0 >= v88:0 && v95:1 > 0 && v91:0 >= v90:0 f_189(1 + v104:0, v83:0, v95:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, 0, v93:0, v94:0, 3, 1, 4) -> f_189(v104:0, 1 + v83:0, v95:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 0, v93:0, v94:0, 3, 1, 4) :|: v99:0 > 0 && v97:0 > 0 && v94:0 <= 1 + v83:0 && v93:0 >= v104:0 && v84:0 > 0 && v85:0 > 3 && v86:0 > 0 && v87:0 > 3 && v104:0 > -1 && v88:0 > 0 && v89:0 > 3 && v90:0 > 0 && v91:0 > 3 && v85:0 >= v84:0 && v87:0 >= v86:0 && v89:0 >= v88:0 && v95:1 > 0 && v91:0 >= v90:0 Filtered unneeded arguments: f_189(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f_189(x1, x2, x4, x5, x6, x7, x8, x9, x10, x11, x14, x15) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_189(sum~cons_1~v104:0, v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) -> f_189(v104:0, 1 + v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) :|: v93:0 >= v104:0 && v94:0 <= 1 + v83:0 && v84:0 > 0 && v85:0 > 3 && v86:0 > 0 && v87:0 > 3 && v104:0 < -1 && v88:0 > 0 && v89:0 > 3 && v90:0 > 0 && v91:0 > 3 && v85:0 >= v84:0 && v87:0 >= v86:0 && v91:0 >= v90:0 && v89:0 >= v88:0 && sum~cons_1~v104:0 = 1 + v104:0 f_189(sum~cons_1~v104:0, v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) -> f_189(v104:0, 1 + v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) :|: v93:0 >= v104:0 && v94:0 <= 1 + v83:0 && v84:0 > 0 && v85:0 > 3 && v86:0 > 0 && v87:0 > 3 && v104:0 > -1 && v88:0 > 0 && v89:0 > 3 && v90:0 > 0 && v91:0 > 3 && v85:0 >= v84:0 && v87:0 >= v86:0 && v91:0 >= v90:0 && v89:0 >= v88:0 && sum~cons_1~v104:0 = 1 + v104:0 ---------------------------------------- (22) Obligation: Rules: f_189(sum~cons_1~v104:0, v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) -> f_189(v104:0, 1 + v83:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v93:0, v94:0) :|: v93:0 >= v104:0 && v94:0 <= 1 + v83:0 && v84:0 > 0 && v85:0 > 3 && v86:0 > 0 && v87:0 > 3 && v104:0 < -1 && v88:0 > 0 && v89:0 > 3 && v90:0 > 0 && v91:0 > 3 && v85:0 >= v84:0 && v87:0 >= v86:0 && v91:0 >= v90:0 && v89:0 >= v88:0 && sum~cons_1~v104:0 = 1 + v104:0 f_189(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f_189(x12, 1 + x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) :|: x10 >= x12 && x11 <= 1 + x1 && x2 > 0 && x3 > 3 && x4 > 0 && x5 > 3 && x12 > -1 && x6 > 0 && x7 > 3 && x8 > 0 && x9 > 3 && x3 >= x2 && x5 >= x4 && x9 >= x8 && x7 >= x6 && x = 1 + x12 ---------------------------------------- (23) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_189_12,1) ---------------------------------------- (24) Obligation: START: 0; FROM: 0; 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 := oldX0 - 1; assume(oldX10 >= oldX12 && oldX11 <= 1 + oldX1 && oldX2 > 0 && oldX3 > 3 && oldX4 > 0 && oldX5 > 3 && oldX12 < -1 && oldX6 > 0 && oldX7 > 3 && oldX8 > 0 && oldX9 > 3 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX9 >= oldX8 && oldX7 >= oldX6 && oldX0 = 1 + oldX12); x0 := oldX0 - 1; x1 := 1 + oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := oldX6; x7 := oldX7; x8 := oldX8; x9 := oldX9; x10 := oldX10; x11 := oldX11; 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 := oldX0 - 1; assume(oldX10 >= oldX12 && oldX11 <= 1 + oldX1 && oldX2 > 0 && oldX3 > 3 && oldX4 > 0 && oldX5 > 3 && oldX12 > -1 && oldX6 > 0 && oldX7 > 3 && oldX8 > 0 && oldX9 > 3 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX9 >= oldX8 && oldX7 >= oldX6 && oldX0 = 1 + oldX12); x0 := oldX0 - 1; x1 := 1 + oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := oldX6; x7 := oldX7; x8 := oldX8; x9 := oldX9; x10 := oldX10; x11 := oldX11; TO: 1; ---------------------------------------- (25) T2 (COMPLETE) Found this recurrent set for cutpoint 5: 0 <= 0 and -x10+x0+-1 <= 0 and -x1+x11+-1 <= 0 and x0+1 <= 0 and -x2+1 <= 0 and -x4+1 <= 0 and -x6+1 <= 0 and -x8+1 <= 0 and -x3+4 <= 0 and -x5+4 <= 0 and -x7+4 <= 0 and -x9+4 <= 0 and -x3+x2 <= 0 and -x5+x4 <= 0 and -x7+x6 <= 0 and -x9+x8 <= 0 ---------------------------------------- (26) NO ---------------------------------------- (27) SEGraph to IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 98 rulesP rules: f_124 -> f_125(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_125(v1, v2, 3, 1, 4) -> f_126(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_126(v1, v3, v2, v4, 3, 1, 4) -> f_127(v1, v3, v5, v2, v4, v6, 3, 1, 4) :|: 1 <= v5 && v6 = 3 + v5 && 4 <= v6 f_127(v1, v3, v5, v2, v4, v6, 3, 1, 4) -> f_128(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) :|: 1 <= v7 && v8 = 3 + v7 && 4 <= v8 f_128(v1, v3, v5, v7, v2, v4, v6, v8, 3, 1, 4) -> f_129(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_129(v1, v3, v5, v7, v2, v4, v6, v8, 0, 3, 1, 4) -> f_130(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_130(v1, v3, v5, v7, v9, v2, v4, v6, v8, 0, 3, 1, 4) -> f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_131(v1, v3, v5, v7, v9, v11, v2, v4, v6, v8, 0, 3, 1, 4) -> f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: 0 = 0 f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_133(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_210(0, v11, v1, v2, v3, v4, v5, v6, v7, v8, 3, 1, 4) :|: TRUE f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_266(v9, v11, v317, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_280(v9, v11, v354, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_132(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_297(v9, v11, v354, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_133(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_159(v9, v11, v1, v2, v3, v4, v5, v6, v7, v8, 0, v9, v11, 3, 1, 4) :|: TRUE f_159(v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, 0, v51, v52, 3, 1, 4) -> f_187(v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, 0, v51, v52, 3, 1, 4) :|: TRUE f_187(v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) -> f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) :|: 1 <= v95 && v96 = 3 + v95 && 4 <= v96 f_189(v82, v83, v95, v84, v85, v86, v87, v88, v89, v90, v91, v96, 0, v93, v94, 3, 1, 4) -> f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) :|: 1 <= v97 && v98 = 3 + v97 && 4 <= v98 f_191(v82, v83, v95, v97, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, 0, v93, v94, 3, 1, 4) -> f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 1 <= v99 && v100 = 3 + v99 && 4 <= v100 f_192(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_193(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: TRUE f_194(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: 0 = 0 f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_196(0, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: v82 = 0 f_195(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) :|: v82 != 0 f_196(0, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_198(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: 0 = 0 f_197(v82, v83, v95, v97, v99, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, 0, v93, v94, 3, 1, 4) -> f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_198(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_200(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: TRUE f_199(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_200(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_202(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: 0 = 0 f_201(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_202(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_204(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: TRUE f_203(v82, v83, v95, v97, v99, 0, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 1 + v104 = v82 f_204(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_206(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: TRUE f_205(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_206(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_208(0, v83, v95, v97, v99, 1, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: 0 = 0 f_207(v82, v83, v95, v97, v99, 0, v104, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: v105 = 1 + v83 f_209(v82, v83, v95, v97, v99, 0, v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: 0 = 0 f_210(0, v11, v1, v2, v3, v4, v5, v6, v7, v8, 3, 1, 4) -> f_212(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_216(0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, v93, v94, 1, v83, 3, 4) :|: TRUE f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_267(v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_281(v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_211(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_298(v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_212(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_214(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: TRUE f_213(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_187(v104, v105, v84, v85, v86, v87, v88, v89, v90, v91, 0, v93, v94, 3, 1, 4) :|: TRUE f_214(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_215(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_215(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_217(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_216(0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, v93, v94, 1, v83, 3, 4) -> f_218(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: 0 = 0 f_217(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_219(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_218(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_220(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: TRUE f_219(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_221(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_220(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_222(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: TRUE f_221(v1, v3, v5, v7, 0, v11, v2, v4, v6, v8, 3, 1, 4) -> f_223(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) :|: 0 = 0 f_222(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_224(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) :|: 0 = 0 f_223(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) -> f_225(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) :|: TRUE f_224(1, v83, v95, v97, v99, 0, v105, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 4) -> f_239(1, v83, v95, v97, v99, 0, 0, v105, v105, v96, v98, v100, v84, v85, v86, v87, v88, v89, v90, v91, v93, v94, 3, 1, 4) :|: TRUE f_225(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) -> f_228(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) :|: TRUE f_228(v1, v3, v5, v7, 0, v11, 1, v2, v4, v6, v8, 3, 4) -> f_231 :|: TRUE f_239(v193, v194, v195, v196, v197, 0, v199, v200, v201, v202, v203, v204, v205, v206, v207, v208, v209, v210, v211, v212, v213, v214, 3, 1, 4) -> f_252(v193, v194, v195, v196, v197, 0, v199, v200, v201, v202, v203, v204, 3, 1, 4) :|: TRUE f_266(v9, v11, v317, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_270(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_267(v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_271(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_270(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) -> f_272(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_271(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_273(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_272(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) -> f_274(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_273(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_275(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_274(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) -> f_276(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_275(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_277(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_276(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) -> f_278(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_277(v82, v83, v95, v97, v99, 0, v104, v105, v328, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_252(v82, v83, v95, v97, v99, 0, v104, v105, v328, v96, v98, v100, 3, 1, 4) :|: TRUE f_278(v1, v3, v5, v7, v9, v11, v317, v2, v4, v6, v8, 0, 3, 1, 4) -> f_279(v1, v3, v5, v7, v9, v11, v317, v346, v2, v4, v6, v8, 0, 3, 1, 4) :|: v346 = v9 + v11 f_279(v1, v3, v5, v7, v9, v11, v317, v346, v2, v4, v6, v8, 0, 3, 1, 4) -> f_282(v1, v3, v5, v7, v9, v11, v346, v2, v4, v6, v8, 0, 3, 1, 4) :|: v317 = v346 && 1 <= v9 f_279(v1, v3, v5, v7, v9, v11, v317, v346, v2, v4, v6, v8, 0, 3, 1, 4) -> f_283(v1, v3, v5, v7, v9, v11, v317, v346, v2, v4, v6, v8, 0, 3, 1, 4) :|: v317 != v346 f_280(v9, v11, v354, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_284(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_281(v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_285(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: 0 = 0 f_282(v1, v3, v5, v7, v9, v11, v346, v2, v4, v6, v8, 0, 3, 1, 4) -> f_286(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_283(v1, v3, v5, v7, v9, v11, v317, v346, v2, v4, v6, v8, 0, 3, 1, 4) -> f_287(v1, v3, v5, v7, v9, v11, v317, v346, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_284(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) -> f_288(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) :|: TRUE f_285(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_289(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_286(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) -> f_290(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_287(v1, v3, v5, v7, v9, v11, v317, v346, 0, v2, v4, v6, v8, 3, 1, 4) -> f_291(v1, v3, v5, v7, v9, v11, v317, v346, 0, v2, v4, v6, v8, 3, 1, 4) :|: TRUE f_288(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) -> f_292(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_289(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_293(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_290(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) -> f_294(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_291(v1, v3, v5, v7, v9, v11, v317, v346, 0, v2, v4, v6, v8, 3, 1, 4) -> f_295(v1, v3, v5, v7, v9, v11, v317, v346, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_292(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) -> f_296(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_293(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) -> f_275(v82, v83, v95, v97, v99, 0, v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v96, v98, v100, v93, v94, 3, 1, 4) :|: TRUE f_294(v1, v3, v5, v7, v9, v11, v346, 1, v2, v4, v6, v8, 0, 3, 4) -> f_299 :|: TRUE f_296(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) -> f_300(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) :|: 0 = 0 f_297(v9, v11, v354, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) -> f_280(v9, v11, v354, v1, v2, v3, v4, v5, v6, v7, v8, 0, 3, 1, 4) :|: TRUE f_298(v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) -> f_281(v104, v105, v365, v84, v85, v86, v87, v88, v89, v90, v91, v95, v96, v97, v98, v99, v100, 0, v93, v94, v82, v83, 3, 1, 4) :|: TRUE f_300(v1, v3, v5, v7, v9, v11, v354, v2, v4, v6, v8, 0, 3, 1, 4) -> f_301(v1, v3, v5, v7, v9, v11, v354, v393, v2, v4, v6, v8, 0, 3, 1, 4) :|: v393 = v9 + v11 f_301(v1, v3, v5, v7, v9, v11, v354, v393, v2, v4, v6, v8, 0, 3, 1, 4) -> f_302(v1, v3, v5, v7, v9, v11, v393, v2, v4, v6, v8, 0, 3, 1, 4) :|: v354 = v393 && 1 <= v9 f_301(v1, v3, v5, v7, v9, v11, v354, v393, v2, v4, v6, v8, 0, 3, 1, 4) -> f_303(v1, v3, v5, v7, v9, v11, v354, v393, v2, v4, v6, v8, 0, 3, 1, 4) :|: v354 != v393 f_302(v1, v3, v5, v7, v9, v11, v393, v2, v4, v6, v8, 0, 3, 1, 4) -> f_304(v1, v3, v5, v7, v9, v11, v393, 1, v2, v4, v6, v8, 0, 3, 4) :|: 0 = 0 f_303(v1, v3, v5, v7, v9, v11, v354, v393, v2, v4, v6, v8, 0, 3, 1, 4) -> f_305(v1, v3, v5, v7, v9, v11, v354, v393, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 f_304(v1, v3, v5, v7, v9, v11, v393, 1, v2, v4, v6, v8, 0, 3, 4) -> f_306(v1, v3, v5, v7, v9, v11, v393, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_305(v1, v3, v5, v7, v9, v11, v354, v393, 0, v2, v4, v6, v8, 3, 1, 4) -> f_307(v1, v3, v5, v7, v9, v11, v354, v393, 0, v2, v4, v6, v8, 3, 1, 4) :|: TRUE f_306(v1, v3, v5, v7, v9, v11, v393, 1, v2, v4, v6, v8, 0, 3, 4) -> f_290(v1, v3, v5, v7, v9, v11, v393, 1, v2, v4, v6, v8, 0, 3, 4) :|: TRUE f_307(v1, v3, v5, v7, v9, v11, v354, v393, 0, v2, v4, v6, v8, 3, 1, 4) -> f_308(v1, v3, v5, v7, v9, v11, v354, v393, 0, v2, v4, v6, v8, 3, 1, 4) :|: 0 = 0 Combined rules. Obtained 16 rulesP rules: f_124 -> f_231 :|: TRUE f_301(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v354:0, v2:0, v4:0, v6:0, v8:0, 0, 3, 1, 4) -> f_299 :|: v9:0 > 0 f_124 -> f_295(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v317:0, v9:0 + v11: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 && v9:0 + v11:0 > v317:0 f_124 -> f_295(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v317:0, v9:0 + v11: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 && v9:0 + v11:0 < v317:0 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_252(1, v83:0, v95:0, v97:0, v99:0, 0, 0, 1 + v83:0, 1 + v83:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 < -1 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_252(1, v83:0, v95:0, v97:0, v99:0, 0, 0, 1 + v83:0, 1 + v83:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 > -1 f_301(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, v2:0, v4:0, v6:0, v8:0, 0, 3, 1, 4) -> f_308(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, 0, v2:0, v4:0, v6:0, v8:0, 3, 1, 4) :|: v393:0 > v354:0 f_301(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, v2:0, v4:0, v6:0, v8:0, 0, 3, 1, 4) -> f_308(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, 0, v2:0, v4:0, v6:0, v8:0, 3, 1, 4) :|: v393:0 < v354:0 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_252(1 + v104:0, v83:0, v95:0, v97:0, v99:0, 0, v104:0, 1 + v83:0, v365:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 < -1 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_252(1 + v104:0, v83:0, v95:0, v97:0, v99:0, 0, v104:0, 1 + v83:0, v365:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 > -1 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_195(v104:0, 1 + v83:0, v95:1, v97:1, v99:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 3 + v97:1, 3 + v99:1, 0, v93:0, v94:0, 3, 1, 4) :|: v95:1 > 0 && v104:0 < -1 && v97:1 > 0 && v99:1 > 0 f_195(1 + v104:0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_195(v104:0, 1 + v83:0, v95:1, v97:1, v99:1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, 3 + v95:1, 3 + v97:1, 3 + v99:1, 0, v93:0, v94:0, 3, 1, 4) :|: v95:1 > 0 && v104:0 > -1 && v97:1 > 0 && v99:1 > 0 f_124 -> f_301(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v9:0 + v11:0, 3 + v1:0, 3 + v3:0, 3 + v5:0, 3 + v7:0, 0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 f_124 -> f_195(v9:0, v11:0, v95:0, v97:0, v99:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, v5:0, 3 + v5:0, v7:0, 3 + v7:0, 3 + v95:0, 3 + v97:0, 3 + v99:0, 0, v9:0, v11:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 0 && v7:0 > 0 && v95:0 > 0 && v97:0 > 0 && v99:0 > 0 f_195(0, v83:0, v95:0, v97:0, v99:0, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, 0, v93:0, v94:0, 3, 1, 4) -> f_208(0, v83:0, v95:0, v97:0, v99:0, 1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, v93:0, v94:0, 3, 4) :|: TRUE f_124 -> f_299 :|: TRUE Filtered unneeded arguments: f_301(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) -> f_301(x5, x7, x8) f_195(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_195(x1) Removed division, modulo operations, cleaned up constraints. Obtained 16 rules.P rules: f_124 -> f_231 :|: TRUE f_301(v9:0, v354:0, v354:01) -> f_299 :|: v9:0 > 0 && v354:0 = v354:01 f_124 -> f_295(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v317:0, v9:0 + v11: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 && v9:0 + v11:0 > v317:0 && v7:0 > 0 f_124 -> f_295(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v317:0, v9:0 + v11: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 && v9:0 + v11:0 < v317:0 && v7:0 > 0 f_195(sum~cons_1~v104:0) -> f_252(1, v83:0, v95:0, v97:0, v99:0, 0, 0, 1 + v83:0, 1 + v83:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_195(sum~cons_1~v104:0) -> f_252(1, v83:0, v95:0, v97:0, v99:0, 0, 0, 1 + v83:0, 1 + v83:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 > -1 && sum~cons_1~v104:0 = 1 + v104:0 f_301(v9:0, v354:0, v393:0) -> f_308(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, 0, v2:0, v4:0, v6:0, v8:0, 3, 1, 4) :|: v393:0 > v354:0 f_301(v9:0, v354:0, v393:0) -> f_308(v1:0, v3:0, v5:0, v7:0, v9:0, v11:0, v354:0, v393:0, 0, v2:0, v4:0, v6:0, v8:0, 3, 1, 4) :|: v393:0 < v354:0 f_195(sum~cons_1~v104:0) -> f_252(1 + v104:0, v83:0, v95:0, v97:0, v99:0, 0, v104:0, 1 + v83:0, v365:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_195(sum~cons_1~v104:0) -> f_252(1 + v104:0, v83:0, v95:0, v97:0, v99:0, 0, v104:0, 1 + v83:0, v365:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 > -1 && sum~cons_1~v104:0 = 1 + v104:0 f_195(sum~cons_1~v104:0) -> f_195(v104:0) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_195(sum~cons_1~v104:0) -> f_195(v104:0) :|: v104:0 > -1 && sum~cons_1~v104:0 = 1 + v104:0 f_124 -> f_301(v9:0, v354:0, v9:0 + v11:0) :|: TRUE f_124 -> f_195(v9:0) :|: TRUE f_195(cons_0) -> f_208(0, v83:0, v95:0, v97:0, v99:0, 1, v84:0, v85:0, v86:0, v87:0, v88:0, v89:0, v90:0, v91:0, v96:0, v98:0, v100:0, v93:0, v94:0, 3, 4) :|: TRUE && cons_0 = 0 f_124 -> f_299 :|: TRUE ---------------------------------------- (28) Obligation: Rules: f_124 -> f_231 :|: TRUE f_301(v9:0, v354:0, v354:01) -> f_299 :|: v9:0 > 0 && v354:0 = v354:01 f_124 -> f_295(x, x1, x2, x3, x4, x5, x6, x4 + x5, 0, 3 + x, 3 + x1, 3 + x2, 3 + x3, 3, 1, 4) :|: x > 0 && x1 > 0 && x2 > 0 && x4 + x5 > x6 && x3 > 0 f_124 -> f_295(x7, x8, x9, x10, x11, x12, x13, x11 + x12, 0, 3 + x7, 3 + x8, 3 + x9, 3 + x10, 3, 1, 4) :|: x7 > 0 && x8 > 0 && x9 > 0 && x11 + x12 < x13 && x10 > 0 f_195(sum~cons_1~v104:0) -> f_252(1, v83:0, v95:0, v97:0, v99:0, 0, 0, 1 + v83:0, 1 + v83:0, v96:0, v98:0, v100:0, 3, 1, 4) :|: v104:0 < -1 && sum~cons_1~v104:0 = 1 + v104:0 f_195(x14) -> f_252(1, x15, x16, x17, x18, 0, 0, 1 + x15, 1 + x15, x19, x20, x21, 3, 1, 4) :|: x22 > -1 && x14 = 1 + x22 f_301(x23, x24, x25) -> f_308(x26, x27, x28, x29, x23, x30, x24, x25, 0, x31, x32, x33, x34, 3, 1, 4) :|: x25 > x24 f_301(x35, x36, x37) -> f_308(x38, x39, x40, x41, x35, x42, x36, x37, 0, x43, x44, x45, x46, 3, 1, 4) :|: x37 < x36 f_195(x47) -> f_252(1 + x48, x49, x50, x51, x52, 0, x48, 1 + x49, x53, x54, x55, x56, 3, 1, 4) :|: x48 < -1 && x47 = 1 + x48 f_195(x57) -> f_252(1 + x58, x59, x60, x61, x62, 0, x58, 1 + x59, x63, x64, x65, x66, 3, 1, 4) :|: x58 > -1 && x57 = 1 + x58 f_195(x67) -> f_195(x68) :|: x68 < -1 && x67 = 1 + x68 f_195(x69) -> f_195(x70) :|: x70 > -1 && x69 = 1 + x70 f_124 -> f_301(x71, x72, x71 + x73) :|: TRUE f_124 -> f_195(x74) :|: TRUE f_195(x75) -> f_208(0, x76, x77, x78, x79, 1, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x90, x91, x92, 3, 4) :|: TRUE && x75 = 0 f_124 -> f_299 :|: TRUE Start term: f_124 ---------------------------------------- (29) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_124_21,1) (f_231_21,2) (f_301_21,3) (f_299_21,4) (f_295_21,5) (f_195_21,6) (f_252_21,7) (f_308_21,8) (f_208_21,9) ---------------------------------------- (30) Obligation: START: 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; oldX18 := x18; oldX19 := x19; oldX20 := x20; 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(0 = 0); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; 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 := 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(oldX0 > 0 && oldX1 = oldX2); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; TO: 4; 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 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); assume(oldX21 > 0 && oldX22 > 0 && oldX23 > 0 && oldX25 + oldX26 > oldX27 && oldX24 > 0); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX25 + oldX26; x8 := 0; x9 := 3 + oldX21; x10 := 3 + oldX22; x11 := 3 + oldX23; x12 := 3 + oldX24; x13 := 3; x14 := 1; x15 := 4; x16 := oldX28; x17 := oldX29; x18 := oldX30; x19 := oldX31; x20 := oldX32; TO: 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 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); assume(oldX21 > 0 && oldX22 > 0 && oldX23 > 0 && oldX25 + oldX26 < oldX27 && oldX24 > 0); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX25 + oldX26; x8 := 0; x9 := 3 + oldX21; x10 := 3 + oldX22; x11 := 3 + oldX23; x12 := 3 + oldX24; x13 := 3; x14 := 1; x15 := 4; x16 := oldX28; x17 := oldX29; x18 := oldX30; x19 := oldX31; x20 := oldX32; TO: 5; 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; oldX34 := oldX0 - 1; 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(oldX34 < -1 && oldX0 = 1 + oldX34); x0 := 1; x1 := oldX21; x2 := oldX22; x3 := oldX23; x4 := oldX24; x5 := 0; x6 := 0; x7 := 1 + oldX21; x8 := 1 + oldX21; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := 3; x13 := 1; x14 := 4; x15 := oldX28; x16 := oldX29; x17 := oldX30; x18 := oldX31; x19 := oldX32; x20 := oldX33; TO: 7; 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; oldX34 := oldX0 - 1; 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(oldX34 > -1 && oldX0 = 1 + oldX34); x0 := 1; x1 := oldX21; x2 := oldX22; x3 := oldX23; x4 := oldX24; x5 := 0; x6 := 0; x7 := 1 + oldX21; x8 := 1 + oldX21; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := 3; x13 := 1; x14 := 4; x15 := oldX28; x16 := oldX29; x17 := oldX30; x18 := oldX31; x19 := oldX32; x20 := oldX33; TO: 7; 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 := 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(); oldX34 := nondet(); assume(oldX2 > oldX1); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX0; x5 := oldX25; x6 := oldX1; x7 := oldX2; x8 := 0; x9 := oldX26; x10 := oldX27; x11 := oldX28; x12 := oldX29; x13 := 3; x14 := 1; x15 := 4; x16 := oldX30; x17 := oldX31; x18 := oldX32; x19 := oldX33; x20 := oldX34; TO: 8; 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 := 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(); oldX34 := nondet(); assume(oldX2 < oldX1); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX0; x5 := oldX25; x6 := oldX1; x7 := oldX2; x8 := 0; x9 := oldX26; x10 := oldX27; x11 := oldX28; x12 := oldX29; x13 := 3; x14 := 1; x15 := 4; x16 := oldX30; x17 := oldX31; x18 := oldX32; x19 := oldX33; x20 := oldX34; TO: 8; 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 := oldX0 - 1; 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(oldX21 < -1 && oldX0 = 1 + oldX21); x0 := 1 + oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := 0; x6 := oldX0 - 1; x7 := 1 + oldX22; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := 3; x13 := 1; x14 := 4; x15 := oldX30; x16 := oldX31; x17 := oldX32; x18 := oldX33; x19 := oldX34; x20 := oldX35; TO: 7; 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 := oldX0 - 1; 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(oldX21 > -1 && oldX0 = 1 + oldX21); x0 := 1 + oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := 0; x6 := oldX0 - 1; x7 := 1 + oldX22; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := 3; x13 := 1; x14 := 4; x15 := oldX30; x16 := oldX31; x17 := oldX32; x18 := oldX33; x19 := oldX34; x20 := oldX35; TO: 7; 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 := oldX0 - 1; 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(); assume(oldX21 < -1 && oldX0 = 1 + oldX21); x0 := oldX0 - 1; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; 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 := oldX0 - 1; 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(); assume(oldX21 > -1 && oldX0 = 1 + oldX21); x0 := oldX0 - 1; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; 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 := x18; oldX19 := x19; oldX20 := x20; 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(0 = 0); x0 := oldX21; x1 := oldX22; x2 := oldX21 + oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; 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 := 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(0 = 0); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; 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 := 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); assume(0 = 0 && oldX0 = 0); x0 := 0; x1 := oldX21; x2 := oldX22; x3 := oldX23; x4 := oldX24; x5 := 1; 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 := 3; x20 := 4; TO: 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 := x18; oldX19 := x19; oldX20 := x20; 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(); oldX34 := nondet(); oldX35 := nondet(); oldX36 := nondet(); oldX37 := nondet(); oldX38 := nondet(); oldX39 := nondet(); oldX40 := nondet(); oldX41 := nondet(); assume(0 = 0); x0 := oldX21; x1 := oldX22; x2 := oldX23; x3 := oldX24; x4 := oldX25; x5 := oldX26; x6 := oldX27; x7 := oldX28; x8 := oldX29; x9 := oldX30; x10 := oldX31; x11 := oldX32; x12 := oldX33; x13 := oldX34; x14 := oldX35; x15 := oldX36; x16 := oldX37; x17 := oldX38; x18 := oldX39; x19 := oldX40; x20 := oldX41; TO: 4; ---------------------------------------- (31) T2 (COMPLETE) Found this recurrent set for cutpoint 12: x0-oldX21 <= 0 and x0+1 <= 0 ---------------------------------------- (32) NO