/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/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, 174 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 2347 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] (6) LLVM Symbolic Execution Lasso (7) Lasso2IRS [SOUND, 123 ms] (8) IntTRS (9) IRS2T2 [EQUIVALENT, 0 ms] (10) T2IntSys (11) T2 [COMPLETE, 4163 ms] (12) NO (13) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 133 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [COMPLETE, 2894 ms] (20) NO (21) SCC2IRS [SOUND, 0 ms] (22) IntTRS (23) IRS2T2 [EQUIVALENT, 0 ms] (24) T2IntSys (25) T2 [COMPLETE, 7922 ms] (26) NO (27) SEGraph to IRS [SOUND, 212 ms] (28) IntTRS (29) IRS2T2 [EQUIVALENT, 0 ms] (30) T2IntSys (31) T2 [COMPLETE, 1566 ms] (32) NO ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/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 0, %1 br %11 6: %7 = load %2 %8 = sub %7 1 %9 = call i32 @g(i32 %8) %10 = call i32 @g(i32 %9) store %10, %1 br %11 11: %12 = load %1 ret %12 *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 = call i32 @g(i32 %3) %5 = load %1 ret %5 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 47 rulesP rules: f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) -> f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 1 <= v312 && v313 = 3 + v312 && 4 <= v313 f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: TRUE f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 0 = 0 f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: v303 != 0 f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 1 + v315 = v303 f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: 0 = 0 f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_218(v315, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_218(v303, v304, v305, v306, v307, 0, v309, 3, 1, 4) -> f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) :|: 1 <= v310 && v311 = 3 + v310 && 4 <= v311 f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: 0 = 0 f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_79 -> f_80(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_80(v1, v2, 3, 1, 4) -> f_81(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_81(v1, v3, v2, v4, 3, 1, 4) -> f_82(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_82(v1, v3, v2, v4, 0, 3, 1, 4) -> f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_84(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_84(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_85(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_85(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_87(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_87(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_107(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_107(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) -> f_128(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) :|: TRUE f_128(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) -> f_218(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) :|: TRUE Combined rules. Obtained 5 rulesP rules: f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v310:1 > 0 f_79 -> f_219(v5:0, v310:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v310:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v310:0 > 0 Filtered unneeded arguments: f_219(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_219(x1) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(v315:0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(v315:0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_79 -> f_219(v5:0) :|: TRUE ---------------------------------------- (8) Obligation: Rules: f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(x) -> f_219(0) :|: x1 > -1 && x = 1 + x1 f_219(x2) -> f_219(x3) :|: x3 < -1 && x2 = 1 + x3 f_219(x4) -> f_219(x5) :|: x5 > -1 && x4 = 1 + x5 f_79 -> f_219(v5:0) :|: TRUE Start term: f_79 ---------------------------------------- (9) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_219_1,1) (f_79_1,2) ---------------------------------------- (10) Obligation: START: 2; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 < -1 && oldX0 = 1 + oldX1); x0 := 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := 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; FROM: 2; oldX0 := x0; oldX1 := nondet(); assume(0 = 0); x0 := oldX1; TO: 1; ---------------------------------------- (11) T2 (COMPLETE) Found this recurrent set for cutpoint 5: oldX1 <= -3 and x0 <= -3 and x0-oldX1 <= 0 and oldX1+x0 <= -6 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 36 rulesP rules: f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) -> f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 1 <= v312 && v313 = 3 + v312 && 4 <= v313 f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: TRUE f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 0 = 0 f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: v303 != 0 f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 1 + v315 = v303 f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: 0 = 0 f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_218(v315, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_218(v303, v304, v305, v306, v307, 0, v309, 3, 1, 4) -> f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) :|: 1 <= v310 && v311 = 3 + v310 && 4 <= v311 f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: 0 = 0 f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE Combined rules. Obtained 4 rulesP rules: f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v310:1 > 0 Filtered unneeded arguments: f_219(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_219(x1) Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(v315:0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0) -> f_219(v315:0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 ---------------------------------------- (16) Obligation: Rules: f_219(sum~cons_1~v315:0) -> f_219(0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_219(x) -> f_219(0) :|: x1 > -1 && x = 1 + x1 f_219(x2) -> f_219(x3) :|: x3 < -1 && x2 = 1 + x3 f_219(x4) -> f_219(x5) :|: x5 > -1 && x4 = 1 + x5 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_219_1,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 < -1 && oldX0 = 1 + oldX1); x0 := 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := 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: x0 <= -2 and x0+1 <= 0 ---------------------------------------- (20) NO ---------------------------------------- (21) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 36 rulesP rules: f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) -> f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 1 <= v312 && v313 = 3 + v312 && 4 <= v313 f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: TRUE f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 0 = 0 f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: v303 != 0 f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 1 + v315 = v303 f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: 0 = 0 f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_218(v315, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && v304 <= v305 && v306 <= v307 f_218(v303, v304, v305, v306, v307, 0, v309, 3, 1, 4) -> f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) :|: 1 <= v310 && v311 = 3 + v310 && 4 <= v311 f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: 0 = 0 f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && v304 <= v305 && v306 <= v307 f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && v304 <= v305 && v306 <= v307 f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && v304 <= v305 && v306 <= v307 f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && v304 <= v305 && v306 <= v307 f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && 1 <= v310 && 4 <= v311 && 1 <= v312 && 4 <= v313 && v304 <= v305 && v306 <= v307 && v310 <= v311 && v312 <= v313 f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: 1 <= v304 && 4 <= v305 && 1 <= v306 && 4 <= v307 && 1 <= v310 && 4 <= v311 && 1 <= v312 && 4 <= v313 && v304 <= v305 && v306 <= v307 && v310 <= v311 && v312 <= v313 Combined rules. Obtained 8 rulesP rules: f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v305:0 >= v304:0 && v310:1 > 0 && v307:0 >= v306:0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v305:0 >= v304:0 && v310:1 > 0 && v307:0 >= v306:0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v312:0 > 0 && v310:0 > 0 && v311:0 > 3 && v315:0 < -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v311:0 >= v310:0 && v312:0 <= 3 + v312:0 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v312:0 > 0 && v310:0 > 0 && v311:0 > 3 && v315:0 > -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v311:0 >= v310:0 && v312:0 <= 3 + v312:0 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v312:0 > 0 && v307:0 > 3 && v310:0 > 0 && v311:0 > 3 && v315:0 < -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v311:0 >= v310:0 && v312:0 <= 3 + v312:0 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v312:0 > 0 && v307:0 > 3 && v310:0 > 0 && v311:0 > 3 && v315:0 > -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v311:0 >= v310:0 && v312:0 <= 3 + v312:0 && v310:1 > 0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 < -1 && v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v310:1 > 0 && v305:0 >= v304:0 && v307:0 >= v306:0 f_219(1 + v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0, 0, v309:0, 3, 1, 4) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 0, v309:0, 3, 1, 4) :|: v312:0 > 0 && v315:0 > -1 && v305:0 > 3 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v310:1 > 0 && v305:0 >= v304:0 && v307:0 >= v306:0 Filtered unneeded arguments: f_219(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_219(x1, x2, x3, x4, x5, x6, x7) Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v305:0 > 3 && v315:0 < -1 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v305:0 >= v304:0 && v307:0 >= v306:0 && v310:1 > 0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v305:0 > 3 && v315:0 > -1 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v305:0 >= v304:0 && v307:0 >= v306:0 && v310:1 > 0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v304:0 > 0 && v305:0 > 3 && v306:0 > 0 && v307:0 > 3 && v310:0 > 0 && v311:0 > 3 && v315:0 < -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v310:1 > 0 && v311:0 >= v310:0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v304:0 > 0 && v305:0 > 3 && v306:0 > 0 && v307:0 > 3 && v310:0 > 0 && v311:0 > 3 && v315:0 > -1 && v305:0 >= v304:0 && v307:0 >= v306:0 && v310:1 > 0 && v311:0 >= v310:0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v305:0 > 3 && v315:0 < -1 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v310:1 > 0 && v307:0 >= v306:0 && v305:0 >= v304:0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v305:0 > 3 && v315:0 > -1 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v310:1 > 0 && v307:0 >= v306:0 && v305:0 >= v304:0 && sum~cons_1~v315:0 = 1 + v315:0 ---------------------------------------- (22) Obligation: Rules: f_219(sum~cons_1~v315:0, v310:0, v304:0, v305:0, v306:0, v307:0, v311:0) -> f_219(v315:0, v310:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1) :|: v305:0 > 3 && v315:0 < -1 && v304:0 > 0 && v306:0 > 0 && v307:0 > 3 && v305:0 >= v304:0 && v307:0 >= v306:0 && v310:1 > 0 && sum~cons_1~v315:0 = 1 + v315:0 f_219(x, x1, x2, x3, x4, x5, x6) -> f_219(x7, x8, x2, x3, x4, x5, 3 + x8) :|: x3 > 3 && x7 > -1 && x2 > 0 && x4 > 0 && x5 > 3 && x3 >= x2 && x5 >= x4 && x8 > 0 && x = 1 + x7 f_219(x9, x10, x11, x12, x13, x14, x15) -> f_219(0, x16, x11, x12, x13, x14, 3 + x16) :|: x11 > 0 && x12 > 3 && x13 > 0 && x14 > 3 && x10 > 0 && x15 > 3 && x17 < -1 && x12 >= x11 && x14 >= x13 && x16 > 0 && x15 >= x10 && x9 = 1 + x17 f_219(x18, x19, x20, x21, x22, x23, x24) -> f_219(0, x25, x20, x21, x22, x23, 3 + x25) :|: x20 > 0 && x21 > 3 && x22 > 0 && x23 > 3 && x19 > 0 && x24 > 3 && x26 > -1 && x21 >= x20 && x23 >= x22 && x25 > 0 && x24 >= x19 && x18 = 1 + x26 f_219(x27, x28, x29, x30, x31, x32, x33) -> f_219(0, x34, x29, x30, x31, x32, 3 + x34) :|: x30 > 3 && x35 < -1 && x29 > 0 && x31 > 0 && x32 > 3 && x34 > 0 && x32 >= x31 && x30 >= x29 && x27 = 1 + x35 f_219(x36, x37, x38, x39, x40, x41, x42) -> f_219(0, x43, x38, x39, x40, x41, 3 + x43) :|: x39 > 3 && x44 > -1 && x38 > 0 && x40 > 0 && x41 > 3 && x43 > 0 && x41 >= x40 && x39 >= x38 && x36 = 1 + x44 ---------------------------------------- (23) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_219_7,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 := oldX0 - 1; oldX8 := nondet(); assume(oldX3 > 3 && oldX7 < -1 && oldX2 > 0 && oldX4 > 0 && oldX5 > 3 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX8 > 0 && oldX0 = 1 + oldX7); x0 := oldX0 - 1; x1 := oldX8; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX8; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := oldX0 - 1; oldX8 := nondet(); assume(oldX3 > 3 && oldX7 > -1 && oldX2 > 0 && oldX4 > 0 && oldX5 > 3 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX8 > 0 && oldX0 = 1 + oldX7); x0 := oldX0 - 1; x1 := oldX8; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX8; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX8 := oldX0 - 1; oldX7 := nondet(); assume(oldX2 > 0 && oldX3 > 3 && oldX4 > 0 && oldX5 > 3 && oldX1 > 0 && oldX6 > 3 && oldX8 < -1 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX7 > 0 && oldX6 >= oldX1 && oldX0 = 1 + oldX8); x0 := 0; x1 := oldX7; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX7; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX8 := oldX0 - 1; oldX7 := nondet(); assume(oldX2 > 0 && oldX3 > 3 && oldX4 > 0 && oldX5 > 3 && oldX1 > 0 && oldX6 > 3 && oldX8 > -1 && oldX3 >= oldX2 && oldX5 >= oldX4 && oldX7 > 0 && oldX6 >= oldX1 && oldX0 = 1 + oldX8); x0 := 0; x1 := oldX7; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX7; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX8 := oldX0 - 1; oldX7 := nondet(); assume(oldX3 > 3 && oldX8 < -1 && oldX2 > 0 && oldX4 > 0 && oldX5 > 3 && oldX7 > 0 && oldX5 >= oldX4 && oldX3 >= oldX2 && oldX0 = 1 + oldX8); x0 := 0; x1 := oldX7; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX7; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX8 := oldX0 - 1; oldX7 := nondet(); assume(oldX3 > 3 && oldX8 > -1 && oldX2 > 0 && oldX4 > 0 && oldX5 > 3 && oldX7 > 0 && oldX5 >= oldX4 && oldX3 >= oldX2 && oldX0 = 1 + oldX8); x0 := 0; x1 := oldX7; x2 := oldX2; x3 := oldX3; x4 := oldX4; x5 := oldX5; x6 := 3 + oldX7; TO: 1; ---------------------------------------- (25) T2 (COMPLETE) Found this recurrent set for cutpoint 5: 1 <= oldX8 and x0 <= -2 and 1 <= x2 and 4 <= x3 and 1 <= x4 and 4 <= x5 and x0-oldX8 <= -3 and 2 <= oldX8+x2 and 5 <= oldX8+x3 and 2 <= oldX8+x4 and 5 <= oldX8+x5 and x0-x2 <= -3 and x0-x4 <= -3 and x0-x5 <= -6 and 2 <= x2+x4 and 5 <= x2+x5 and x0-x3 <= -6 and x2-x3 <= 0 and 5 <= x3+x2 and 5 <= x3+x4 and 8 <= x3+x5 and x4-x5 <= 0 and 5 <= x4+x5 and x0+1 <= 0 and -x2+1 <= 0 and -x4+1 <= 0 and -x3+4 <= 0 and -x5+4 <= 0 and -x3+x2 <= 0 and -x5+x4 <= 0 ---------------------------------------- (26) NO ---------------------------------------- (27) SEGraph to IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 141 rulesP rules: f_79 -> f_80(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_80(v1, v2, 3, 1, 4) -> f_81(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_81(v1, v3, v2, v4, 3, 1, 4) -> f_82(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_82(v1, v3, v2, v4, 0, 3, 1, 4) -> f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_83(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_84(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_84(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_85(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_85(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_87(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_235(0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_296(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_319(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_334(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_357(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_86(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_370(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_87(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_107(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_107(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) -> f_128(v21, v22, v23, v24, v25, 0, v27, 3, 1, 4) :|: TRUE f_128(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) -> f_218(v43, v44, v45, v46, v47, 0, v49, 3, 1, 4) :|: TRUE f_218(v303, v304, v305, v306, v307, 0, v309, 3, 1, 4) -> f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) :|: 1 <= v310 && v311 = 3 + v310 && 4 <= v311 f_219(v303, v310, v304, v305, v306, v307, v311, 0, v309, 3, 1, 4) -> f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 1 <= v312 && v313 = 3 + v312 && 4 <= v313 f_220(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: TRUE f_221(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: 0 = 0 f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_223(0, v310, v312, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: v303 = 0 f_222(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) :|: v303 != 0 f_223(0, v310, v312, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_225(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_224(v303, v310, v312, v304, v305, v306, v307, v311, v313, 0, v309, 3, 1, 4) -> f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_225(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_227(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_226(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_227(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_229(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_228(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_229(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_231(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_230(v303, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 1 + v315 = v303 f_231(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_233(0, v310, v312, 1, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_232(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: 0 = 0 f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_234(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_235(0, v1, v2, v3, v4, 3, 1, 4) -> f_237(v1, v3, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_236(v315, v304, v305, v306, v307, v310, v311, v312, v313, 0, v309, v303, 3, 1, 4) -> f_218(v315, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_237(v1, v3, 0, v2, v4, 3, 1, 4) -> f_238(v1, v3, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_239(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_240(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: 0 = 0 f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_243(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_298(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_321(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_336(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_359(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_241(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_372(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_242(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_243(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_244(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_244(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_245(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_245(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_246(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_246(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_247(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_247(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_271(1, v310, v312, 0, 0, v311, v313, v304, v305, v306, v307, v309, 3, 1, 4) :|: TRUE f_271(v432, v433, v434, 0, v436, v437, v438, v439, v440, v441, v442, v443, 3, 1, 4) -> f_295(v432, v433, v434, 0, v436, v437, v438, 3, 1, 4) :|: TRUE f_296(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_299(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_297(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_298(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_301(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_299(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_302(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_300(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_301(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_304(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_310(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_322(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_337(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_360(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_303(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_373(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_304(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_306(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_305(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_306(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_246(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_310(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_312(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_312(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_314(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_314(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_318(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_318(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_295(v303, v310, v312, 0, v315, v311, v313, 3, 1, 4) :|: TRUE f_319(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_323(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_320(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_321(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_325(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_322(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_326(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_323(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_327(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_324(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_325(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_329(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_326(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_330(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_338(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_339(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_361(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_328(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_374(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_329(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_332(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_330(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_333(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_331(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_332(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_246(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_333(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_334(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_340(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_336(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_342(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: 0 = 0 f_337(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_343(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_338(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_344(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_339(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_345(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_340(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_346(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_341(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: 0 = 0 f_342(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_348(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_343(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_349(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_344(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_350(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_345(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_351(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_362(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_363(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_347(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_375(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_348(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_353(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_349(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_354(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_350(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_355(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_351(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_356(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_352(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_218(0, v304, v305, v306, v307, 0, v309, 3, 1, 4) :|: TRUE f_353(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) -> f_246(1, v310, v312, 0, v304, v305, v306, v307, v311, v313, v309, 3, 4) :|: TRUE f_354(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_355(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_356(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_357(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_334(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_335(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_359(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_336(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_360(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_337(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_361(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_339(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_362(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_364(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_363(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_365(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: 0 = 0 f_364(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_366(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_365(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_367(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_366(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_368(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_367(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_369(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_368(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_369(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) -> f_316(v303, v310, v312, 0, v315, v304, v305, v306, v307, v311, v313, v309, 3, 1, 4) :|: TRUE f_370(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_357(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_371(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) -> f_358(v315, 0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, 3, 1, 4) :|: TRUE f_372(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) -> f_359(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, 1, 3, 4) :|: TRUE f_373(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_360(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_374(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_361(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE f_375(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) -> f_363(0, v304, v305, v306, v307, v310, v311, v312, v313, v309, v303, v315, 3, 1, 4) :|: TRUE Combined rules. Obtained 18 rulesP rules: f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_295(1, v310:0, v312:0, 0, 0, v311:0, v313:0, 3, 1, 4) :|: v315:0 < -1 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_295(1, v310:0, v312:0, 0, 0, v311:0, v313:0, 3, 1, 4) :|: v315:0 > -1 f_79 -> f_346(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, 1 + v315:0, v315:0, 3, 1, 4) :|: v315:0 < -1 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, 1 + v315:0, v315:0, 3, 1, 4) :|: v315:0 > -1 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_295(1 + v315:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: v315:0 < -1 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_295(1 + v315:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: v315:0 > -1 f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, v303:0, v315:0, 3, 1, 4) -> f_295(v303:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: TRUE f_79 -> f_222(v5:0, v310:0, v312:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v310:0, 3 + v312:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v310:0 > 0 && v312:0 > 0 f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, v303:0, v315:0, 3, 1, 4) -> f_222(0, v310:1, v312:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 3 + v312:1, 0, v309:0, 3, 1, 4) :|: v310:1 > 0 && v312:1 > 0 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_222(v315:0, v310:1, v312:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 3 + v312:1, 0, v309:0, 3, 1, 4) :|: v310:1 > 0 && v315:0 < -1 && v312:1 > 0 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_222(v315:0, v310:1, v312:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 3 + v312:1, 0, v309:0, 3, 1, 4) :|: v310:1 > 0 && v315:0 > -1 && v312:1 > 0 f_222(0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_233(0, v310:0, v312:0, 1, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, v309:0, 3, 4) :|: TRUE f_79 -> f_327(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_222(0, v310:1, v312:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 3 + v312:1, 0, v309:0, 3, 1, 4) :|: v315:0 < -1 && v310:1 > 0 && v312:1 > 0 f_222(1 + v315:0, v310:0, v312:0, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, 0, v309:0, 3, 1, 4) -> f_222(0, v310:1, v312:1, v304:0, v305:0, v306:0, v307:0, 3 + v310:1, 3 + v312:1, 0, v309:0, 3, 1, 4) :|: v315:0 > -1 && v310:1 > 0 && v312:1 > 0 f_79 -> f_302(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_79 -> f_238(v1:0, v3:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 Filtered unneeded arguments: f_222(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_222(x1) Removed division, modulo operations, cleaned up constraints. Obtained 18 rules.P rules: f_222(sum~cons_1~v315:0) -> f_295(1, v310:0, v312:0, 0, 0, v311:0, v313:0, 3, 1, 4) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_295(1, v310:0, v312:0, 0, 0, v311:0, v313:0, 3, 1, 4) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_79 -> f_346(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_222(sum~cons_1~v315:0) -> f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, 1 + v315:0, v315:0, 3, 1, 4) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_347(0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, 1 + v315:0, v315:0, 3, 1, 4) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_295(1 + v315:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_295(1 + v315:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_347(cons_0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, v303:0, v315:0, cons_3, cons_1, cons_4) -> f_295(v303:0, v310:0, v312:0, 0, v315:0, v311:0, v313:0, 3, 1, 4) :|: TRUE && cons_0 = 0 && cons_3 = 3 && cons_1 = 1 && cons_4 = 4 f_79 -> f_222(v5:0) :|: TRUE f_347(cons_0, v304:0, v305:0, v306:0, v307:0, v310:0, v311:0, v312:0, v313:0, v309:0, v303:0, v315:0, cons_3, cons_1, cons_4) -> f_222(0) :|: TRUE && cons_0 = 0 && cons_3 = 3 && cons_1 = 1 && cons_4 = 4 f_222(sum~cons_1~v315:0) -> f_222(v315:0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_222(v315:0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(cons_0) -> f_233(0, v310:0, v312:0, 1, v304:0, v305:0, v306:0, v307:0, v311:0, v313:0, v309:0, 3, 4) :|: TRUE && cons_0 = 0 f_79 -> f_327(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_222(sum~cons_1~v315:0) -> f_222(0) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(sum~cons_1~v315:0) -> f_222(0) :|: v315:0 > -1 && sum~cons_1~v315:0 = 1 + v315:0 f_79 -> f_302(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_79 -> f_238(v1:0, v3:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 ---------------------------------------- (28) Obligation: Rules: f_222(sum~cons_1~v315:0) -> f_295(1, v310:0, v312:0, 0, 0, v311:0, v313:0, 3, 1, 4) :|: v315:0 < -1 && sum~cons_1~v315:0 = 1 + v315:0 f_222(x) -> f_295(1, x1, x2, 0, 0, x3, x4, 3, 1, 4) :|: x5 > -1 && x = 1 + x5 f_79 -> f_346(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_222(x6) -> f_347(0, x7, x8, x9, x10, x11, x12, x13, x14, x15, 1 + x16, x16, 3, 1, 4) :|: x16 < -1 && x6 = 1 + x16 f_222(x17) -> f_347(0, x18, x19, x20, x21, x22, x23, x24, x25, x26, 1 + x27, x27, 3, 1, 4) :|: x27 > -1 && x17 = 1 + x27 f_222(x28) -> f_295(1 + x29, x30, x31, 0, x29, x32, x33, 3, 1, 4) :|: x29 < -1 && x28 = 1 + x29 f_222(x34) -> f_295(1 + x35, x36, x37, 0, x35, x38, x39, 3, 1, 4) :|: x35 > -1 && x34 = 1 + x35 f_347(x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54) -> f_295(x50, x45, x47, 0, x51, x46, x48, 3, 1, 4) :|: TRUE && x40 = 0 && x52 = 3 && x53 = 1 && x54 = 4 f_79 -> f_222(x55) :|: TRUE f_347(x56, x57, x58, x59, x60, x61, x62, x63, x64, x65, x66, x67, x68, x69, x70) -> f_222(0) :|: TRUE && x56 = 0 && x68 = 3 && x69 = 1 && x70 = 4 f_222(x71) -> f_222(x72) :|: x72 < -1 && x71 = 1 + x72 f_222(x73) -> f_222(x74) :|: x74 > -1 && x73 = 1 + x74 f_222(x75) -> f_233(0, x76, x77, 1, x78, x79, x80, x81, x82, x83, x84, 3, 4) :|: TRUE && x75 = 0 f_79 -> f_327(x85, x86, x87, 0, 3 + x85, 3 + x86, 3, 1, 4) :|: x86 > 0 && x85 > 0 f_222(x88) -> f_222(0) :|: x89 < -1 && x88 = 1 + x89 f_222(x90) -> f_222(0) :|: x91 > -1 && x90 = 1 + x91 f_79 -> f_302(x92, x93, x94, 0, 3 + x92, 3 + x93, 3, 1, 4) :|: x93 > 0 && x92 > 0 f_79 -> f_238(x95, x96, 0, 3 + x95, 3 + x96, 3, 1, 4) :|: x96 > 0 && x95 > 0 Start term: f_79 ---------------------------------------- (29) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_222_15,1) (f_295_15,2) (f_79_15,3) (f_346_15,4) (f_347_15,5) (f_233_15,6) (f_327_15,7) (f_302_15,8) (f_238_15,9) ---------------------------------------- (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 := x13; oldX14 := x14; oldX24 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX24 < -1 && oldX0 = 1 + oldX24); x0 := 1; x1 := oldX15; x2 := oldX16; x3 := 0; x4 := 0; x5 := oldX17; x6 := oldX18; x7 := 3; x8 := 1; x9 := 4; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; TO: 2; 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; oldX24 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX24 > -1 && oldX0 = 1 + oldX24); x0 := 1; x1 := oldX15; x2 := oldX16; x3 := 0; x4 := 0; x5 := oldX17; x6 := oldX18; x7 := 3; x8 := 1; x9 := 4; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; 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 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX16 > 0 && oldX15 > 0); x0 := oldX15; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := 3 + oldX15; x5 := 3 + oldX16; x6 := 3; x7 := 1; x8 := 4; x9 := oldX18; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; 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; oldX24 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX24 < -1 && oldX0 = 1 + oldX24); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := oldX17; x4 := oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := 1 + oldX24; x11 := oldX0 - 1; x12 := 3; x13 := 1; x14 := 4; 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; oldX24 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX24 > -1 && oldX0 = 1 + oldX24); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := oldX17; x4 := oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := 1 + oldX24; x11 := oldX0 - 1; x12 := 3; x13 := 1; x14 := 4; 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 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); assume(oldX15 < -1 && oldX0 = 1 + oldX15); x0 := 1 + oldX15; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := oldX0 - 1; x5 := oldX18; x6 := oldX19; x7 := 3; x8 := 1; x9 := 4; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; TO: 2; 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 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); assume(oldX15 > -1 && oldX0 = 1 + oldX15); x0 := 1 + oldX15; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := oldX0 - 1; x5 := oldX18; x6 := oldX19; x7 := 3; x8 := 1; x9 := 4; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; TO: 2; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX12 = 3 && oldX13 = 1 && oldX14 = 4); x0 := oldX10; x1 := oldX5; x2 := oldX7; x3 := 0; x4 := oldX11; x5 := oldX6; x6 := oldX8; x7 := 3; x8 := 1; x9 := 4; x10 := oldX15; x11 := oldX16; x12 := oldX17; x13 := oldX18; x14 := oldX19; 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 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); oldX29 := nondet(); assume(0 = 0); x0 := oldX15; x1 := oldX16; x2 := oldX17; x3 := oldX18; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := oldX22; x8 := oldX23; x9 := oldX24; x10 := oldX25; x11 := oldX26; x12 := oldX27; x13 := oldX28; x14 := oldX29; TO: 1; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX12 = 3 && oldX13 = 1 && oldX14 = 4); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := oldX17; x4 := oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); 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(oldX15 < -1 && oldX0 = 1 + oldX15); x0 := oldX0 - 1; x1 := oldX16; x2 := oldX17; x3 := oldX18; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := oldX22; x8 := oldX23; x9 := oldX24; x10 := oldX25; x11 := oldX26; x12 := oldX27; x13 := oldX28; x14 := oldX29; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); 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(oldX15 > -1 && oldX0 = 1 + oldX15); x0 := oldX0 - 1; x1 := oldX16; x2 := oldX17; x3 := oldX18; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := oldX22; x8 := oldX23; x9 := oldX24; x10 := oldX25; x11 := oldX26; x12 := oldX27; x13 := oldX28; x14 := oldX29; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(0 = 0 && oldX0 = 0); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := 1; x4 := oldX17; x5 := oldX18; x6 := oldX19; x7 := oldX20; x8 := oldX21; x9 := oldX22; x10 := oldX23; x11 := 3; x12 := 4; x13 := oldX24; x14 := oldX25; TO: 6; 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 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX16 > 0 && oldX15 > 0); x0 := oldX15; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := 3 + oldX15; x5 := 3 + oldX16; x6 := 3; x7 := 1; x8 := 4; x9 := oldX18; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; 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; oldX29 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(oldX29 < -1 && oldX0 = 1 + oldX29); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := oldX17; x4 := oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX29 := oldX0 - 1; oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); oldX27 := nondet(); oldX28 := nondet(); assume(oldX29 > -1 && oldX0 = 1 + oldX29); x0 := 0; x1 := oldX15; x2 := oldX16; x3 := oldX17; x4 := oldX18; x5 := oldX19; x6 := oldX20; x7 := oldX21; x8 := oldX22; x9 := oldX23; x10 := oldX24; x11 := oldX25; x12 := oldX26; x13 := oldX27; x14 := oldX28; 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 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX16 > 0 && oldX15 > 0); x0 := oldX15; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := 3 + oldX15; x5 := 3 + oldX16; x6 := 3; x7 := 1; x8 := 4; x9 := oldX18; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; 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 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX16 > 0 && oldX15 > 0); x0 := oldX15; x1 := oldX16; x2 := 0; x3 := 3 + oldX15; x4 := 3 + oldX16; x5 := 3; x6 := 1; x7 := 4; x8 := oldX17; x9 := oldX18; x10 := oldX19; x11 := oldX20; x12 := oldX21; x13 := oldX22; x14 := oldX23; TO: 9; ---------------------------------------- (31) T2 (COMPLETE) Found this recurrent set for cutpoint 12: x0-oldX15 <= 0 and x0+1 <= 0 ---------------------------------------- (32) NO