/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- NO proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be disproven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 180 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 593 ms] (4) LLVM Symbolic Execution Graph (5) SEGraph to IRS [EQUIVALENT, 136 ms] (6) IntTRS (7) IRS2T2 [EQUIVALENT, 0 ms] (8) T2IntSys (9) T2 [COMPLETE, 1325 ms] (10) 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_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %y = alloca i32, align 4 store 0, %1 %2 = call i32 (...)* @__VERIFIER_nondet_int() store %2, %y br %3 3: %4 = load %y %5 = icmp sge %4 0 br %5, %6, %9 6: %7 = load %y %8 = icmp sle %7 10 br %9 9: %10 = phi [0, %3], [%8, %6] br %10, %11, %16 11: %12 = load %y %13 = mul 2 %12 %14 = add %13 1 %15 = sdiv %14 2 store %15, %y br %3 16: ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SEGraph to IRS (EQUIVALENT) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 54 rulesP rules: f_66 -> f_67(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_67(v1, v2, 3, 1, 4) -> f_68(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_68(v1, v3, v2, v4, 3, 1, 4) -> f_69(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_69(v1, v3, v2, v4, 0, 3, 1, 4) -> f_70(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_70(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_71(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_71(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_72(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_72(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_73(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_73(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_74(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 <= v5 f_73(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_75(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: v5 < 0 f_74(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_76(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: 0 = 0 f_75(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_77(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_76(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_78(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: TRUE f_77(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_79(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_78(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_80(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: 0 = 0 f_79(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_81(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: TRUE f_80(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_82(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) :|: v5 <= 10 f_80(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_83(v1, v3, v5, 1, v2, v4, 0, 3, 4, 11) :|: 10 < v5 f_82(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) -> f_84(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 f_83(v1, v3, v5, 1, v2, v4, 0, 3, 4, 11) -> f_85(v1, v3, v5, 1, 0, v2, v4, 3, 4, 11) :|: 0 = 0 f_84(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) -> f_86(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 f_85(v1, v3, v5, 1, 0, v2, v4, 3, 4, 11) -> f_87(v1, v3, v5, 1, 0, v2, v4, 3, 4, 11) :|: 0 = 0 f_86(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) -> f_88(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) :|: TRUE f_87(v1, v3, v5, 1, 0, v2, v4, 3, 4, 11) -> f_89(v1, v3, v5, 1, 0, v2, v4, 3, 4, 11) :|: TRUE f_88(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) -> f_90(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) :|: 0 = 0 f_90(v1, v3, v5, 1, v2, v4, 0, 3, 4, 10) -> f_91(v1, v3, v5, 1, v9, v2, v4, 0, 3, 2, 4, 10, 20) :|: v9 = 2 * v5 && 0 <= v9 && v9 <= 20 f_91(v1, v3, v5, 1, v9, v2, v4, 0, 3, 2, 4, 10, 20) -> f_92(v1, v3, v5, 1, v9, v10, v2, v4, 0, 3, 2, 4, 10, 20, 21) :|: v10 = 1 + v9 && 1 <= v10 && v10 <= 21 f_92(v1, v3, v5, 1, v9, v10, v2, v4, 0, 3, 2, 4, 10, 20, 21) -> f_93(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) :|: v11 = v10 / 2 f_93(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) -> f_94(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) :|: TRUE f_94(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) -> f_95(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) :|: TRUE f_95(v1, v3, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 4, 10, 20, 21) -> f_119(v1, v3, v5, v5, 1, v9, v10, v11, v2, v4, 0, 3, 2, 10, 20, 21, 4) :|: TRUE f_119(v66, v67, v68, v69, 1, v71, v72, v73, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_120(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_120(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_121(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 <= v73 f_120(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_122(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: v73 < 0 f_121(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_123(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_122(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_124(v66, v67, v68, v73, 0, v69, 1, v71, v72, v74, v75, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_123(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_125(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: TRUE f_124(v66, v67, v68, v73, 0, v69, 1, v71, v72, v74, v75, 3, 2, 10, 20, 21, 4) -> f_126(v66, v67, v68, v73, 0, v69, 1, v71, v72, v74, v75, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_125(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_127(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_126(v66, v67, v68, v73, 0, v69, 1, v71, v72, v74, v75, 3, 2, 10, 20, 21, 4) -> f_128(v66, v67, v68, v73, 0, v69, 1, v71, v72, v74, v75, 3, 2, 10, 20, 21, 4) :|: TRUE f_127(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_129(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: v73 <= 10 f_127(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_130(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 11, 4) :|: 10 < v73 f_129(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_131(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_130(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 11, 4) -> f_132(v66, v67, v68, v73, 1, 0, v69, v71, v72, v74, v75, 3, 2, 10, 20, 21, 11, 4) :|: 0 = 0 f_131(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_133(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_132(v66, v67, v68, v73, 1, 0, v69, v71, v72, v74, v75, 3, 2, 10, 20, 21, 11, 4) -> f_134(v66, v67, v68, v73, 1, 0, v69, v71, v72, v74, v75, 3, 2, 10, 20, 21, 11, 4) :|: 0 = 0 f_133(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_135(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: TRUE f_134(v66, v67, v68, v73, 1, 0, v69, v71, v72, v74, v75, 3, 2, 10, 20, 21, 11, 4) -> f_136(v66, v67, v68, v73, 1, 0, v69, v71, v72, v74, v75, 3, 2, 10, 20, 21, 11, 4) :|: TRUE f_135(v66, v67, v68, v73, 1, v69, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_137(v66, v67, v68, v73, 1, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: 0 = 0 f_137(v66, v67, v68, v73, 1, v71, v72, v74, v75, 0, 3, 2, 10, 20, 21, 4) -> f_138(v66, v67, v68, v73, 1, v109, v72, v74, v75, 0, 3, 2, 10, 21, 4, 20) :|: v109 = 2 * v73 && 0 <= v109 && v109 <= 20 f_138(v66, v67, v68, v73, 1, v109, v72, v74, v75, 0, 3, 2, 10, 21, 4, 20) -> f_139(v66, v67, v68, v73, 1, v109, v110, v74, v75, 0, 3, 2, 10, 4, 20, 21) :|: v110 = 1 + v109 && 1 <= v110 && v110 <= 21 f_139(v66, v67, v68, v73, 1, v109, v110, v74, v75, 0, 3, 2, 10, 4, 20, 21) -> f_140(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) :|: v111 = v110 / 2 f_140(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) -> f_141(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) :|: TRUE f_141(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) -> f_142(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) :|: TRUE f_142(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 4, 20, 21) -> f_119(v66, v67, v68, v73, 1, v109, v110, v111, v74, v75, 0, 3, 2, 10, 20, 21, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_120(v66:0, v67:0, v68:0, v73:0, 1, v69:0, v71:0, v72:0, v74:0, v75:0, 0, 3, 2, 10, 20, 21, 4) -> f_136(v66:0, v67:0, v68:0, v73:0, 1, 0, v69:0, v71:0, v72:0, v74:0, v75:0, 3, 2, 10, 20, 21, 11, 4) :|: v73:0 > 10 f_66 -> f_89(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4, 11) :|: v5:0 > 10 && v3:0 > 0 && v1:0 > 0 f_66 -> f_120(v1:0, v3:0, v5:0, v11:0, 1, v5:0, 2 * v5:0, 1 + 2 * v5:0, 3 + v1:0, 3 + v3:0, 0, 3, 2, 10, 20, 21, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > -1 && v5:0 < 11 && 2 * v5:0 > -1 && 21 > 2 * v5:0 && v11:0 = (1 + 2 * v5:0) / 2 f_66 -> f_81(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 < 0 f_120(v66:0, v67:0, v68:0, v73:0, 1, v69:0, v71:0, v72:0, v74:0, v75:0, 0, 3, 2, 10, 20, 21, 4) -> f_128(v66:0, v67:0, v68:0, v73:0, 0, v69:0, 1, v71:0, v72:0, v74:0, v75:0, 3, 2, 10, 20, 21, 4) :|: v73:0 < 0 f_120(v66:0, v67:0, v68:0, v73:0, 1, v69:0, v71:0, v72:0, v74:0, v75:0, 0, 3, 2, 10, 20, 21, 4) -> f_120(v66:0, v67:0, v68:0, v111:0, 1, v73:0, 2 * v73:0, 1 + 2 * v73:0, v74:0, v75:0, 0, 3, 2, 10, 20, 21, 4) :|: v73:0 > -1 && v73:0 < 11 && 2 * v73:0 > -1 && 21 > 2 * v73:0 && v111:0 = (1 + 2 * v73:0) / 2 Filtered unneeded arguments: f_120(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17) -> f_120(x3, x4, x6, x7, x8) Removed division, modulo operations, cleaned up constraints. Obtained 8 rules.P rules: f_120(v68:0, v73:0, v69:0, v71:0, v72:0) -> f_136(v66:0, v67:0, v68:0, v73:0, 1, 0, v69:0, v71:0, v72:0, v74:0, v75:0, 3, 2, 10, 20, 21, 11, 4) :|: v73:0 > 10 f_66 -> f_89(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4, 11) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 10 f_66 -> f_66' :|: TRUE f_66' -> f_120(v5:0, div, v5:0, 2 * v5:0, 1 + 2 * v5:0) :|: 2 * v5:0 > -1 && v5:0 < 11 && v5:0 > -1 && 21 > 2 * v5:0 && 2 > 1 + 2 * v5:0 - 2 * div && 1 + 2 * v5:0 - 2 * div >= 0 f_66 -> f_81(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v1:0 > 0 && v5:0 < 0 && v3:0 > 0 f_120(v68:0, v73:0, v69:0, v71:0, v72:0) -> f_128(v66:0, v67:0, v68:0, v73:0, 0, v69:0, 1, v71:0, v72:0, v74:0, v75:0, 3, 2, 10, 20, 21, 4) :|: v73:0 < 0 f_120(v68:0, v73:0, v69:0, v71:0, v72:0) -> f_120'(v68:0, v73:0, v69:0, v71:0, v72:0) :|: v73:0 < 11 && v73:0 > -1 && 21 > 2 * v73:0 && 2 * v73:0 > -1 f_120'(v68:0, v73:0, v69:0, v71:0, v72:0) -> f_120(v68:0, div, v73:0, 2 * v73:0, 1 + 2 * v73:0) :|: 2 * v73:0 > -1 && v73:0 < 11 && v73:0 > -1 && 21 > 2 * v73:0 && 2 > 1 + 2 * v73:0 - 2 * div && 1 + 2 * v73:0 - 2 * div >= 0 ---------------------------------------- (6) Obligation: Rules: f_120(v68:0, v73:0, v69:0, v71:0, v72:0) -> f_136(v66:0, v67:0, v68:0, v73:0, 1, 0, v69:0, v71:0, v72:0, v74:0, v75:0, 3, 2, 10, 20, 21, 11, 4) :|: v73:0 > 10 f_66 -> f_89(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4, 11) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > 10 f_66 -> f_66' :|: TRUE f_66' -> f_120(x, x1, x, 2 * x, 1 + 2 * x) :|: 2 * x > -1 && x < 11 && x > -1 && 21 > 2 * x && 2 > 1 + 2 * x - 2 * x1 && 1 + 2 * x - 2 * x1 >= 0 f_66 -> f_81(x2, x3, x4, 0, 3 + x2, 3 + x3, 3, 1, 4) :|: x2 > 0 && x4 < 0 && x3 > 0 f_120(x5, x6, x7, x8, x9) -> f_128(x10, x11, x5, x6, 0, x7, 1, x8, x9, x12, x13, 3, 2, 10, 20, 21, 4) :|: x6 < 0 f_120(x14, x15, x16, x17, x18) -> f_120'(x14, x15, x16, x17, x18) :|: x15 < 11 && x15 > -1 && 21 > 2 * x15 && 2 * x15 > -1 f_120'(x19, x20, x21, x22, x23) -> f_120(x19, x24, x20, 2 * x20, 1 + 2 * x20) :|: 2 * x20 > -1 && x20 < 11 && x20 > -1 && 21 > 2 * x20 && 2 > 1 + 2 * x20 - 2 * x24 && 1 + 2 * x20 - 2 * x24 >= 0 Start term: f_66 ---------------------------------------- (7) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_120_18,1) (f_136_18,2) (f_66_18,3) (f_89_18,4) (f_66'_18,5) (f_81_18,6) (f_128_18,7) (f_120'_18,8) ---------------------------------------- (8) Obligation: START: 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 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX1 > 10); x0 := oldX18; x1 := oldX19; x2 := oldX0; x3 := oldX1; x4 := 1; x5 := 0; x6 := oldX2; x7 := oldX3; x8 := oldX4; x9 := oldX20; x10 := oldX21; x11 := 3; x12 := 2; x13 := 10; x14 := 20; x15 := 21; x16 := 11; x17 := 4; 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(); oldX28 := nondet(); assume(oldX19 > 0 && oldX18 > 0 && oldX20 > 10); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := 1; x4 := 0; x5 := 3 + oldX18; x6 := 3 + oldX19; x7 := 3; x8 := 4; x9 := 11; x10 := oldX21; x11 := oldX22; x12 := oldX23; x13 := oldX24; x14 := oldX25; x15 := oldX26; x16 := oldX27; x17 := oldX28; TO: 4; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := x16; oldX17 := x17; oldX18 := 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(); oldX34 := nondet(); oldX35 := nondet(); assume(0 = 0); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := oldX21; x4 := oldX22; x5 := oldX23; x6 := oldX24; x7 := oldX25; x8 := oldX26; x9 := oldX27; x10 := oldX28; x11 := oldX29; x12 := oldX30; x13 := oldX31; x14 := oldX32; x15 := oldX33; x16 := oldX34; x17 := oldX35; TO: 5; 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(); oldX30 := nondet(); oldX31 := nondet(); oldX32 := nondet(); assume(2 * oldX18 > -1 && oldX18 < 11 && oldX18 > -1 && 21 > 2 * oldX18 && 2 > 1 + 2 * oldX18 - 2 * oldX19 && 1 + 2 * oldX18 - 2 * oldX19 >= 0); x0 := oldX18; x1 := oldX19; x2 := oldX18; x3 := 2 * oldX18; x4 := 1 + 2 * oldX18; 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: 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; 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(oldX18 > 0 && oldX20 < 0 && oldX19 > 0); x0 := oldX18; x1 := oldX19; x2 := oldX20; x3 := 0; x4 := 3 + oldX18; x5 := 3 + oldX19; x6 := 3; x7 := 1; x8 := 4; x9 := oldX21; x10 := oldX22; x11 := oldX23; x12 := oldX24; 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(); assume(oldX1 < 0); x0 := oldX18; x1 := oldX19; x2 := oldX0; x3 := oldX1; x4 := 0; x5 := oldX2; x6 := 1; x7 := oldX3; x8 := oldX4; x9 := oldX20; x10 := oldX21; x11 := 3; x12 := 2; x13 := 10; x14 := 20; x15 := 21; x16 := 4; x17 := oldX22; 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(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); oldX30 := nondet(); assume(oldX1 < 11 && oldX1 > -1 && 21 > 2 * oldX1 && 2 * oldX1 > -1); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX18; x6 := oldX19; x7 := oldX20; x8 := oldX21; x9 := oldX22; x10 := oldX23; x11 := oldX24; x12 := oldX25; x13 := oldX26; x14 := oldX27; x15 := oldX28; x16 := oldX29; x17 := oldX30; TO: 8; FROM: 8; 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(); assume(2 * oldX1 > -1 && oldX1 < 11 && oldX1 > -1 && 21 > 2 * oldX1 && 2 > 1 + 2 * oldX1 - 2 * oldX18 && 1 + 2 * oldX1 - 2 * oldX18 >= 0); x0 := oldX0; x1 := oldX18; x2 := oldX1; x3 := 2 * oldX1; x4 := 1 + 2 * oldX1; 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: 1; ---------------------------------------- (9) T2 (COMPLETE) Found this recurrent set for cutpoint 9: oldX18 == 0 and oldX19 == 0 and x1 == 0 ---------------------------------------- (10) NO