/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, 175 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 845 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] (6) LLVM Symbolic Execution Lasso (7) Lasso2IRS [SOUND, 21 ms] (8) IntTRS (9) IRS2T2 [EQUIVALENT, 0 ms] (10) T2IntSys (11) T2 [COMPLETE, 1153 ms] (12) NO (13) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 36 ms] (16) IntTRS (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] (18) IntTRS (19) IntTRSPeriodicNontermProof [COMPLETE, 10 ms] (20) NO (21) SCC2IRS [SOUND, 0 ms] (22) IntTRS (23) IntTRSCompressionProof [EQUIVALENT, 0 ms] (24) IntTRS (25) IntTRSPeriodicNontermProof [COMPLETE, 15 ms] (26) NO (27) SEGraph to IRS [SOUND, 43 ms] (28) IntTRS (29) IRS2T2 [EQUIVALENT, 0 ms] (30) T2IntSys (31) T2 [COMPLETE, 1414 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_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "g" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (x i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 store %x, %2 %3 = load %2 %4 = icmp eq %3 0 br %4, %5, %6 5: store 1, %1 br %12 6: %7 = load %2 %8 = sub %7 1 %9 = call i32 @g(i32 %8) %10 = add %9 1 %11 = call i32 @g(i32 %10) store %11, %1 br %12 12: %13 = load %1 ret %13 *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 store 0, %1 %2 = call i32 (...)* @__VERIFIER_nondet_int() store %2, %x %3 = load %x %4 = icmp slt %3 0 br %4, %5, %6 5: store 0, %1 br %9 6: %7 = load %x %8 = call i32 @g(i32 %7) br %9 9: %10 = load %1 ret %10 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 33 rulesP rules: f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) -> f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 1 <= v90 && v91 = 3 + v90 && 4 <= v91 f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: TRUE f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 0 = 0 f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: v81 != 0 f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: TRUE f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 1 + v93 = v81 && 0 <= v93 f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: 0 = 0 f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: TRUE f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) :|: TRUE f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_189(v93, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE f_189(v81, v82, v83, v84, v85, 0, v87, 3, 1, 4) -> f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) :|: 1 <= v88 && v89 = 3 + v88 && 4 <= v89 f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) -> f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: 0 = 0 f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: TRUE f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_189(2, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE f_100 -> f_101(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_101(v1, v2, 3, 1, 4) -> f_102(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_102(v1, v3, v2, v4, 3, 1, 4) -> f_103(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_103(v1, v3, v2, v4, 0, 3, 1, 4) -> f_104(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_104(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_105(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_105(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_106(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_106(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_108(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 <= v5 f_108(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_110(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_110(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_112(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: TRUE f_112(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_114(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_114(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_116(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_116(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_118(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_118(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_138(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_138(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) -> f_160(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) :|: TRUE f_160(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) -> f_189(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) :|: TRUE Combined rules. Obtained 3 rulesP rules: f_100 -> f_190(v5:0, v88:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v88:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > -1 && v88:0 > 0 f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(v93:0, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v93:0 > -1 && v88:1 > 0 f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(2, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v93:0 > -1 && v88:1 > 0 Filtered unneeded arguments: f_190(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_190(x1) Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: f_100 -> f_190(v5:0) :|: v5:0 > -1 f_190(sum~cons_1~v93:0) -> f_190(v93:0) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_190(sum~cons_1~v93:0) -> f_190(2) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 ---------------------------------------- (8) Obligation: Rules: f_100 -> f_190(v5:0) :|: v5:0 > -1 f_190(sum~cons_1~v93:0) -> f_190(v93:0) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_190(x) -> f_190(2) :|: x1 > -1 && x = 1 + x1 Start term: f_100 ---------------------------------------- (9) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_100_1,1) (f_190_1,2) ---------------------------------------- (10) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := nondet(); assume(oldX1 > -1); 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 := 2; TO: 2; ---------------------------------------- (11) T2 (COMPLETE) Found this recurrent set for cutpoint 5: 0 <= oldX1 and 0 <= x0 and 0 <= oldX1+x0 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 18 rulesP rules: f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) -> f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 1 <= v90 && v91 = 3 + v90 && 4 <= v91 f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: TRUE f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 0 = 0 f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: v81 != 0 f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: TRUE f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 1 + v93 = v81 && 0 <= v93 f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: 0 = 0 f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: TRUE f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) :|: TRUE f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_189(v93, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE f_189(v81, v82, v83, v84, v85, 0, v87, 3, 1, 4) -> f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) :|: 1 <= v88 && v89 = 3 + v88 && 4 <= v89 f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) -> f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: 0 = 0 f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: TRUE f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_189(2, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(v93:0, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v93:0 > -1 && v88:1 > 0 f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(2, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v93:0 > -1 && v88:1 > 0 Filtered unneeded arguments: f_190(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_190(x1) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_190(sum~cons_1~v93:0) -> f_190(v93:0) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_190(sum~cons_1~v93:0) -> f_190(2) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 ---------------------------------------- (16) Obligation: Rules: f_190(sum~cons_1~v93:0) -> f_190(v93:0) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_190(x) -> f_190(2) :|: x1 > -1 && x = 1 + x1 ---------------------------------------- (17) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (18) Obligation: Rules: f_190(sum~cons_1~v93:0:0) -> f_190(v93:0:0) :|: v93:0:0 > -1 && sum~cons_1~v93:0:0 = 1 + v93:0:0 f_190(sum~cons_1~x1:0) -> f_190(2) :|: x1:0 > -1 && sum~cons_1~x1:0 = 1 + x1:0 ---------------------------------------- (19) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, sum~cons_1~v93:0:0) -> f(1, v93:0:0) :|: pc = 1 && (v93:0:0 > -1 && sum~cons_1~v93:0:0 = 1 + v93:0:0) f(pc, sum~cons_1~x1:0) -> f(1, 2) :|: pc = 1 && (x1:0 > -1 && sum~cons_1~x1:0 = 1 + x1:0) Witness term starting non-terminating reduction: f(1, 1) ---------------------------------------- (20) NO ---------------------------------------- (21) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 18 rulesP rules: f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) -> f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 1 <= v90 && v91 = 3 + v90 && 4 <= v91 f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: TRUE f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 0 = 0 f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: v81 != 0 f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: TRUE f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 1 + v93 = v81 && 0 <= v93 f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: 0 = 0 f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: TRUE f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) :|: TRUE f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_189(v93, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: 0 <= v93 && 1 <= v82 && 4 <= v83 && 1 <= v84 && 4 <= v85 && 0 <= v87 && v82 <= v83 && v84 <= v85 f_189(v81, v82, v83, v84, v85, 0, v87, 3, 1, 4) -> f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) :|: 1 <= v88 && v89 = 3 + v88 && 4 <= v89 f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) -> f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: 0 = 0 f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: TRUE f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_189(2, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: 0 <= 2 && 1 <= v82 && 4 <= v83 && 1 <= v84 && 4 <= v85 && 0 <= v87 && v82 <= v83 && v84 <= v85 Combined rules. Obtained 2 rulesP rules: f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(2, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v93:0 > -1 && v82:0 > 0 && v83:0 > 3 && v84:0 > 0 && v85:0 > 3 && v87:0 > -1 && v88:1 > 0 && v83:0 >= v82:0 && v85:0 >= v84:0 f_190(1 + v93:0, v88:0, v82:0, v83:0, v84:0, v85:0, v89:0, 0, v87:0, 3, 1, 4) -> f_190(v93:0, v88:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 0, v87:0, 3, 1, 4) :|: v90:0 > 0 && v82:0 > 0 && v93:0 > -1 && v83:0 > 3 && v84:0 > 0 && v85:0 > 3 && v87:0 > -1 && v83:0 >= v82:0 && v88:1 > 0 && v85:0 >= v84:0 Filtered unneeded arguments: f_190(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_190(x1, x3, x4, x5, x6, x9) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_190(sum~cons_1~v93:0, v82:0, v83:0, v84:0, v85:0, v87:0) -> f_190(2, v82:0, v83:0, v84:0, v85:0, v87:0) :|: v82:0 > 0 && v93:0 > -1 && v83:0 > 3 && v84:0 > 0 && v85:0 > 3 && v87:0 > -1 && v85:0 >= v84:0 && v83:0 >= v82:0 && sum~cons_1~v93:0 = 1 + v93:0 f_190(sum~cons_1~v93:0, v82:0, v83:0, v84:0, v85:0, v87:0) -> f_190(v93:0, v82:0, v83:0, v84:0, v85:0, v87:0) :|: v93:0 > -1 && v82:0 > 0 && v83:0 > 3 && v84:0 > 0 && v85:0 > 3 && v87:0 > -1 && v85:0 >= v84:0 && v83:0 >= v82:0 && sum~cons_1~v93:0 = 1 + v93:0 ---------------------------------------- (22) Obligation: Rules: f_190(sum~cons_1~v93:0, v82:0, v83:0, v84:0, v85:0, v87:0) -> f_190(2, v82:0, v83:0, v84:0, v85:0, v87:0) :|: v82:0 > 0 && v93:0 > -1 && v83:0 > 3 && v84:0 > 0 && v85:0 > 3 && v87:0 > -1 && v85:0 >= v84:0 && v83:0 >= v82:0 && sum~cons_1~v93:0 = 1 + v93:0 f_190(x, x1, x2, x3, x4, x5) -> f_190(x6, x1, x2, x3, x4, x5) :|: x6 > -1 && x1 > 0 && x2 > 3 && x3 > 0 && x4 > 3 && x5 > -1 && x4 >= x3 && x2 >= x1 && x = 1 + x6 ---------------------------------------- (23) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (24) Obligation: Rules: f_190(sum~cons_1~v93:0:0, v82:0:0, v83:0:0, v84:0:0, v85:0:0, v87:0:0) -> f_190(2, v82:0:0, v83:0:0, v84:0:0, v85:0:0, v87:0:0) :|: v85:0:0 >= v84:0:0 && v83:0:0 >= v82:0:0 && v87:0:0 > -1 && v85:0:0 > 3 && v84:0:0 > 0 && v83:0:0 > 3 && v93:0:0 > -1 && v82:0:0 > 0 && sum~cons_1~v93:0:0 = 1 + v93:0:0 f_190(sum~cons_1~x6:0, x1:0, x2:0, x3:0, x4:0, x5:0) -> f_190(x6:0, x1:0, x2:0, x3:0, x4:0, x5:0) :|: x4:0 >= x3:0 && x2:0 >= x1:0 && x5:0 > -1 && x4:0 > 3 && x3:0 > 0 && x2:0 > 3 && x1:0 > 0 && x6:0 > -1 && sum~cons_1~x6:0 = 1 + x6:0 ---------------------------------------- (25) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, sum~cons_1~v93:0:0, v82:0:0, v83:0:0, v84:0:0, v85:0:0, v87:0:0) -> f(1, 2, v82:0:0, v83:0:0, v84:0:0, v85:0:0, v87:0:0) :|: pc = 1 && (v85:0:0 >= v84:0:0 && v83:0:0 >= v82:0:0 && v87:0:0 > -1 && v85:0:0 > 3 && v84:0:0 > 0 && v83:0:0 > 3 && v93:0:0 > -1 && v82:0:0 > 0 && sum~cons_1~v93:0:0 = 1 + v93:0:0) f(pc, sum~cons_1~x6:0, x1:0, x2:0, x3:0, x4:0, x5:0) -> f(1, x6:0, x1:0, x2:0, x3:0, x4:0, x5:0) :|: pc = 1 && (x4:0 >= x3:0 && x2:0 >= x1:0 && x5:0 > -1 && x4:0 > 3 && x3:0 > 0 && x2:0 > 3 && x1:0 > 0 && x6:0 > -1 && sum~cons_1~x6:0 = 1 + x6:0) Witness term starting non-terminating reduction: f(1, 2, 4, 6, 1, 5, 3) ---------------------------------------- (26) NO ---------------------------------------- (27) SEGraph to IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 50 rulesP rules: f_100 -> f_101(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_101(v1, v2, 3, 1, 4) -> f_102(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_102(v1, v3, v2, v4, 3, 1, 4) -> f_103(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_103(v1, v3, v2, v4, 0, 3, 1, 4) -> f_104(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_104(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_105(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_105(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_106(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_106(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_107(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: v5 < 0 f_106(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_108(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 <= v5 f_107(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_109(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: 0 = 0 f_108(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_110(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_109(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_111(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: TRUE f_110(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_112(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: TRUE f_111(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_113(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: TRUE f_112(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_114(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_113(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_115(v1, v3, v5, 1, v2, v4, 0, 3, 4) :|: TRUE f_114(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_116(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_115(v1, v3, v5, 1, v2, v4, 0, 3, 4) -> f_117(v1, v3, v5, 1, 0, v2, v4, 3, 4) :|: 0 = 0 f_116(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_118(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_116(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_206(0, 1, v1, v2, v3, v4, 3, 4) :|: TRUE f_118(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_138(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_138(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) -> f_160(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) :|: TRUE f_160(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) -> f_189(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) :|: TRUE f_189(v81, v82, v83, v84, v85, 0, v87, 3, 1, 4) -> f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) :|: 1 <= v88 && v89 = 3 + v88 && 4 <= v89 f_190(v81, v88, v82, v83, v84, v85, v89, 0, v87, 3, 1, 4) -> f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 1 <= v90 && v91 = 3 + v90 && 4 <= v91 f_191(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: TRUE f_192(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: 0 = 0 f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_194(0, v88, v90, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: v81 = 0 f_193(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) :|: v81 != 0 f_194(0, v88, v90, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_196(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_195(v81, v88, v90, v82, v83, v84, v85, v89, v91, 0, v87, 3, 1, 4) -> f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_196(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_198(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: TRUE f_197(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: TRUE f_198(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_200(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: TRUE f_199(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 0 = 0 f_200(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_202(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: TRUE f_201(v81, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) :|: 1 + v93 = v81 && 0 <= v93 f_202(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_204(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_203(v81, v88, v90, 0, v93, v82, v83, v84, v85, v89, v91, v87, 3, 1, 4) -> f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: 0 = 0 f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) :|: TRUE f_205(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) :|: TRUE f_206(0, 1, v1, v2, v3, v4, 3, 4) -> f_208(v1, v3, 0, 1, v2, v4, 3, 4) :|: 0 = 0 f_207(v93, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, v81, 3, 1, 4) -> f_189(v93, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE f_208(v1, v3, 0, 1, v2, v4, 3, 4) -> f_209(v1, v3, 0, 1, v2, v4, 3, 4) :|: TRUE f_209(v1, v3, 0, 1, v2, v4, 3, 4) -> f_211(v1, v3, 0, 1, v2, v4, 3, 4) :|: 0 = 0 f_210(0, 1, v82, v83, v84, v85, v88, v89, v90, v91, v87, 3, 4) -> f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_212(1, v88, v90, 0, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: 0 = 0 f_213(1, v88, v90, 0, 2, v82, v83, v84, v85, v89, v91, v87, 3, 4) -> f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: 0 = 0 f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) :|: TRUE f_214(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_216(0, v88, v90, 1, v82, v83, v84, v85, v89, v91, v87, 3, 4) :|: TRUE f_215(2, v82, v83, v84, v85, v88, v89, v90, v91, 0, v87, 1, 3, 4) -> f_189(2, v82, v83, v84, v85, 0, v87, 3, 1, 4) :|: TRUE Combined rules. Obtained 7 rulesP rules: f_193(0, v88:0, v90:0, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, 0, v87:0, 3, 1, 4) -> f_204(0, v88:0, v90:0, 1, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, v87:0, 3, 4) :|: TRUE f_100 -> f_117(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 < 0 f_100 -> f_211(v1:0, v3:0, 0, 1, 3 + v1:0, 3 + v3:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > -1 f_193(1 + v93:0, v88:0, v90:0, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, 0, v87:0, 3, 1, 4) -> f_216(0, v88:0, v90:0, 1, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, v87:0, 3, 4) :|: v93:0 > -1 f_193(1 + v93:0, v88:0, v90:0, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, 0, v87:0, 3, 1, 4) -> f_193(2, v88:1, v90:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 3 + v90:1, 0, v87:0, 3, 1, 4) :|: v93:0 > -1 && v88:1 > 0 && v90:1 > 0 f_100 -> f_193(v5:0, v88:0, v90:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v88:0, 3 + v90:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v5:0 > -1 && v88:0 > 0 && v90:0 > 0 f_193(1 + v93:0, v88:0, v90:0, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, 0, v87:0, 3, 1, 4) -> f_193(v93:0, v88:1, v90:1, v82:0, v83:0, v84:0, v85:0, 3 + v88:1, 3 + v90:1, 0, v87:0, 3, 1, 4) :|: v88:1 > 0 && v93:0 > -1 && v90:1 > 0 Filtered unneeded arguments: f_193(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_193(x1) Removed division, modulo operations, cleaned up constraints. Obtained 7 rules.P rules: f_193(cons_0) -> f_204(0, v88:0, v90:0, 1, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, v87:0, 3, 4) :|: TRUE && cons_0 = 0 f_100 -> f_117(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4) :|: v1:0 > 0 && v5:0 < 0 && v3:0 > 0 f_100 -> f_211(v1:0, v3:0, 0, 1, 3 + v1:0, 3 + v3:0, 3, 4) :|: v3:0 > 0 && v1:0 > 0 f_193(sum~cons_1~v93:0) -> f_216(0, v88:0, v90:0, 1, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, v87:0, 3, 4) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_193(sum~cons_1~v93:0) -> f_193(2) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_100 -> f_193(v5:0) :|: v5:0 > -1 f_193(sum~cons_1~v93:0) -> f_193(v93:0) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 ---------------------------------------- (28) Obligation: Rules: f_193(cons_0) -> f_204(0, v88:0, v90:0, 1, v82:0, v83:0, v84:0, v85:0, v89:0, v91:0, v87:0, 3, 4) :|: TRUE && cons_0 = 0 f_100 -> f_117(v1:0, v3:0, v5:0, 1, 0, 3 + v1:0, 3 + v3:0, 3, 4) :|: v1:0 > 0 && v5:0 < 0 && v3:0 > 0 f_100 -> f_211(x, x1, 0, 1, 3 + x, 3 + x1, 3, 4) :|: x1 > 0 && x > 0 f_193(x2) -> f_216(0, x3, x4, 1, x5, x6, x7, x8, x9, x10, x11, 3, 4) :|: x12 > -1 && x2 = 1 + x12 f_193(sum~cons_1~v93:0) -> f_193(2) :|: v93:0 > -1 && sum~cons_1~v93:0 = 1 + v93:0 f_100 -> f_193(x13) :|: x13 > -1 f_193(x14) -> f_193(x15) :|: x15 > -1 && x14 = 1 + x15 Start term: f_100 ---------------------------------------- (29) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_193_13,1) (f_204_13,2) (f_100_13,3) (f_117_13,4) (f_211_13,5) (f_216_13,6) ---------------------------------------- (30) 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 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(0 = 0 && oldX0 = 0); x0 := 0; x1 := oldX13; x2 := oldX14; x3 := 1; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; x11 := 3; x12 := 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 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); assume(oldX13 > 0 && oldX15 < 0 && oldX14 > 0); x0 := oldX13; x1 := oldX14; x2 := oldX15; x3 := 1; x4 := 0; x5 := 3 + oldX13; x6 := 3 + oldX14; x7 := 3; x8 := 4; x9 := oldX16; x10 := oldX17; x11 := oldX18; x12 := oldX19; 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 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); assume(oldX14 > 0 && oldX13 > 0); x0 := oldX13; x1 := oldX14; x2 := 0; x3 := 1; x4 := 3 + oldX13; x5 := 3 + oldX14; x6 := 3; x7 := 4; x8 := oldX15; x9 := oldX16; x10 := oldX17; x11 := oldX18; x12 := oldX19; 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; oldX22 := oldX0 - 1; oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX22 > -1 && oldX0 = 1 + oldX22); x0 := 0; x1 := oldX13; x2 := oldX14; x3 := 1; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; x11 := 3; x12 := 4; 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; oldX25 := oldX0 - 1; oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); assume(oldX25 > -1 && oldX0 = 1 + oldX25); x0 := 2; x1 := oldX13; x2 := oldX14; x3 := oldX15; x4 := oldX16; x5 := oldX17; x6 := oldX18; x7 := oldX19; x8 := oldX20; x9 := oldX21; x10 := oldX22; x11 := oldX23; x12 := oldX24; 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 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX13 > -1); x0 := oldX13; x1 := oldX14; x2 := oldX15; x3 := oldX16; x4 := oldX17; x5 := oldX18; x6 := oldX19; x7 := oldX20; x8 := oldX21; x9 := oldX22; x10 := oldX23; x11 := oldX24; x12 := oldX25; 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 := oldX0 - 1; oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX13 > -1 && oldX0 = 1 + oldX13); x0 := oldX0 - 1; x1 := oldX14; x2 := oldX15; x3 := oldX16; x4 := oldX17; x5 := oldX18; x6 := oldX19; x7 := oldX20; x8 := oldX21; x9 := oldX22; x10 := oldX23; x11 := oldX24; x12 := oldX25; TO: 1; ---------------------------------------- (31) T2 (COMPLETE) Found this recurrent set for cutpoint 9: oldX13 == 2 and x0 == 2 ---------------------------------------- (32) NO