/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, 172 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 2934 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 102 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 1103 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 130 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [COMPLETE, 915 ms] (20) NO (21) SCC2IRS [SOUND, 0 ms] (22) IntTRS (23) TerminationGraphProcessor [EQUIVALENT, 24 ms] (24) IntTRS (25) IntTRSCompressionProof [EQUIVALENT, 0 ms] (26) IntTRS (27) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (28) IntTRS (29) IntTRSPeriodicNontermProof [COMPLETE, 10 ms] (30) NO (31) SymbolicExecutionGraphToLassoProof [COMPLETE, 0 ms] (32) AND (33) LLVM Symbolic Execution Lasso (34) Lasso2IRS [SOUND, 77 ms] (35) IntTRS (36) IRS2T2 [EQUIVALENT, 0 ms] (37) T2IntSys (38) T2 [EQUIVALENT, 624 ms] (39) YES (40) LLVM Symbolic Execution Lasso (41) Lasso2IRS [SOUND, 102 ms] (42) IntTRS (43) IRS2T2 [EQUIVALENT, 0 ms] (44) T2IntSys (45) T2 [EQUIVALENT, 685 ms] (46) YES (47) LLVM Symbolic Execution Lasso (48) Lasso2IRS [SOUND, 70 ms] (49) IntTRS (50) IRS2T2 [EQUIVALENT, 0 ms] (51) T2IntSys (52) T2 [COMPLETE, 1013 ms] (53) NO (54) SEGraph to IRS [SOUND, 292 ms] (55) IntTRS (56) IRS2T2 [EQUIVALENT, 0 ms] (57) T2IntSys (58) T2 [COMPLETE, 1536 ms] (59) 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: "rec1" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (i i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 store %i, %2 %3 = load %2 %4 = icmp sle %3 0 br %4, %5, %6 5: store 0, %1 br %14 6: %7 = load %2 %8 = sub %7 2 %9 = call i32 @rec1(i32 %8) %10 = sub %9 1 %11 = call i32 @rec1(i32 %10) %12 = call i32 @rec1(i32 %11) %13 = add %12 1 store %13, %1 br %14 14: %15 = load %1 ret %15 *BasicFunctionTypename: "rec2" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (j i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 store %j, %2 %3 = load %2 %4 = icmp sle %3 0 br %4, %5, %6 5: store 0, %1 br %12 6: %7 = load %2 %8 = sub %7 1 %9 = call i32 @rec1(i32 %8) %10 = call i32 @rec2(i32 %9) %11 = sub %10 1 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 = call i32 @rec2(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) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 2 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 36 rulesP rules: f_247(v169, v170, v171, 3, 0, 1, 4) -> f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 1 <= v172 && v173 = 3 + v172 && 4 <= v173 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 2 + v175 = v169 && 0 <= 1 + v175 f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) :|: 0 = 0 f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) -> f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) :|: 0 = 0 f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) :|: TRUE f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) -> f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) :|: 0 = 0 f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: TRUE f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE Combined rules. Obtained 5 rulesP rules: f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(v175:0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(-1, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 Filtered unneeded arguments: f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_247(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_247(sum~cons_2~v175:0) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 ---------------------------------------- (9) Obligation: Rules: f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f_247(0) :|: TRUE && x = 0 && x7 = 1 && x8 = 3 && x9 = 2 && x10 = 4 f_247(x11) -> f_504(0, x12, x13, x14, 3 + x14, 2 + x15, x15, 1, 3, 2, 4) :|: x14 > 0 && x15 > -2 && x11 = 2 + x15 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_247_11,1) (f_504_11,2) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; 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 := oldX0 - 2; oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX11 > -2 && oldX0 = 2 + oldX11); x0 := oldX0 - 2; x1 := oldX12; x2 := oldX13; x3 := oldX14; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; 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; oldX14 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := 3 + oldX13; x5 := 2 + oldX14; x6 := oldX0 - 2; x7 := 1; x8 := 3; x9 := 2; x10 := 4; 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; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := -1; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; 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; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 7, 8, 20, 22, 23 using the following rank functions: - Rank function 1: RF for loc. 6: 6*x0 RF for loc. 8: -1+6*x0 RF for loc. 12: x10 Bound for (chained) transitions 5: 5 Bound for (chained) transitions 6, 20: 5 Bound for (chained) transitions 7: 5 Bound for (chained) transitions 8: 5 Bound for (chained) transitions 22: 4 Bound for (chained) transitions 23: 4 - Rank function 2: RF for loc. 6: 0 RF for loc. 8: -1 Bound for (chained) transitions 2: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 22 rulesP rules: f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: 0 = 0 f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_214(0, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: 0 = 0 f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_214(1, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(0, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v103:1 > 0 f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v103:1 > 0 Filtered unneeded arguments: f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_216(sum~cons_1~v144:0) -> f_216(1) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 ---------------------------------------- (16) Obligation: Rules: f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_216(x) -> f_216(1) :|: x1 > -1 && x = 1 + x1 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_216_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 := 1; TO: 1; ---------------------------------------- (19) T2 (COMPLETE) Found this recurrent set for cutpoint 5: x0 == 1 ---------------------------------------- (20) NO ---------------------------------------- (21) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 22 rulesP rules: f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: 0 = 0 f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_214(0, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: 1 <= v97 && 4 <= v98 && 1 <= v99 && 4 <= v100 && v97 <= v98 && v99 <= v100 f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: 0 = 0 f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_214(1, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: 1 <= v97 && 4 <= v98 && 1 <= v99 && 4 <= v100 && v97 <= v98 && v99 <= v100 f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: 2 <= v96 && 1 <= v97 && 4 <= v98 && 1 <= v99 && 4 <= v100 && 1 <= v103 && 4 <= v104 && 1 <= v105 && 4 <= v106 && 1 <= v144 && v97 <= v98 && v99 <= v100 && v103 <= v104 && v105 <= v106 Combined rules. Obtained 3 rulesP rules: f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v144:0 > 0 && v97:0 > 0 && v98:0 > 3 && v99:0 > 0 && v100:0 > 3 && v105:0 > 0 && v103:0 > 0 && v104:0 > 3 && v98:0 >= v97:0 && v99:0 <= v100:0 && v104:0 >= v103:0 && v105:0 <= 3 + v105:0 && v103:1 > 0 f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v98:0 > 3 && v97:0 > 0 && v99:0 > 0 && v100:0 > 3 && v103:1 > 0 && v98:0 >= v97:0 && v99:0 <= v100:0 f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(0, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v98:0 > 3 && v97:0 > 0 && v99:0 > 0 && v100:0 > 3 && v98:0 >= v97:0 && v103:1 > 0 && v99:0 <= v100:0 Filtered unneeded arguments: f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1, x2, x3, x4, x5, x6, x7) Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: f_216(sum~cons_1~v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1) :|: v97:0 > 0 && v144:0 > 0 && v98:0 > 3 && v99:0 > 0 && v100:0 > 3 && v103:0 > 0 && v104:0 > 3 && v98:0 >= v97:0 && v99:0 <= v100:0 && v103:1 > 0 && v104:0 >= v103:0 && sum~cons_1~v144:0 = 1 + v144:0 f_216(sum~cons_1~v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1) :|: v98:0 > 3 && v144:0 > -1 && v97:0 > 0 && v99:0 > 0 && v100:0 > 3 && v103:1 > 0 && v99:0 <= v100:0 && v98:0 >= v97:0 && sum~cons_1~v144:0 = 1 + v144:0 f_216(sum~cons_1~v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0) -> f_216(0, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1) :|: v98:0 > 3 && v144:0 > -1 && v97:0 > 0 && v99:0 > 0 && v100:0 > 3 && v98:0 >= v97:0 && v99:0 <= v100:0 && v103:1 > 0 && sum~cons_1~v144:0 = 1 + v144:0 ---------------------------------------- (22) Obligation: Rules: f_216(sum~cons_1~v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1) :|: v97:0 > 0 && v144:0 > 0 && v98:0 > 3 && v99:0 > 0 && v100:0 > 3 && v103:0 > 0 && v104:0 > 3 && v98:0 >= v97:0 && v99:0 <= v100:0 && v103:1 > 0 && v104:0 >= v103:0 && sum~cons_1~v144:0 = 1 + v144:0 f_216(x, x1, x2, x3, x4, x5, x6) -> f_216(1, x7, x2, x3, x4, x5, 3 + x7) :|: x3 > 3 && x8 > -1 && x2 > 0 && x4 > 0 && x5 > 3 && x7 > 0 && x4 <= x5 && x3 >= x2 && x = 1 + x8 f_216(x9, x10, x11, x12, x13, x14, x15) -> f_216(0, x16, x11, x12, x13, x14, 3 + x16) :|: x12 > 3 && x17 > -1 && x11 > 0 && x13 > 0 && x14 > 3 && x12 >= x11 && x13 <= x14 && x16 > 0 && x9 = 1 + x17 ---------------------------------------- (23) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (24) Obligation: Rules: f_216(x, x1, x2, x3, x4, x5, x6) -> f_216(1, x7, x2, x3, x4, x5, 3 + x7) :|: x3 > 3 && x8 > -1 && x2 > 0 && x4 > 0 && x5 > 3 && x7 > 0 && x4 <= x5 && x3 >= x2 && x = 1 + x8 ---------------------------------------- (25) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (26) Obligation: Rules: f_216(sum~cons_1~x8:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0) -> f_216(1, x7:0, x2:0, x3:0, x4:0, x5:0, 3 + x7:0) :|: x5:0 >= x4:0 && x3:0 >= x2:0 && x7:0 > 0 && x5:0 > 3 && x4:0 > 0 && x2:0 > 0 && x8:0 > -1 && x3:0 > 3 && sum~cons_1~x8:0 = 1 + x8:0 ---------------------------------------- (27) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f_216(x1, x2, x3, x4, x5, x6, x7) -> f_216(x1, x3, x4, x5, x6) ---------------------------------------- (28) Obligation: Rules: f_216(sum~cons_1~x8:0, x2:0, x3:0, x4:0, x5:0) -> f_216(1, x2:0, x3:0, x4:0, x5:0) :|: x5:0 >= x4:0 && x3:0 >= x2:0 && x7:0 > 0 && x5:0 > 3 && x4:0 > 0 && x2:0 > 0 && x8:0 > -1 && x3:0 > 3 && sum~cons_1~x8:0 = 1 + x8:0 ---------------------------------------- (29) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, sum~cons_1~x8:0, x2:0, x3:0, x4:0, x5:0) -> f(1, 1, x2:0, x3:0, x4:0, x5:0) :|: pc = 1 && (x5:0 >= x4:0 && x3:0 >= x2:0 && x7:0 > 0 && x5:0 > 3 && x4:0 > 0 && x2:0 > 0 && x8:0 > -1 && x3:0 > 3 && sum~cons_1~x8:0 = 1 + x8:0) Witness term starting non-terminating reduction: f(1, 1, 1, 5, 1, 5) ---------------------------------------- (30) NO ---------------------------------------- (31) SymbolicExecutionGraphToLassoProof (COMPLETE) Converted SEGraph to 3 dependent lassos. ---------------------------------------- (32) Complex Obligation (AND) ---------------------------------------- (33) Obligation: Lasso ---------------------------------------- (34) Lasso2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 57 rulesP rules: f_247(v169, v170, v171, 3, 0, 1, 4) -> f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 1 <= v172 && v173 = 3 + v172 && 4 <= v173 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 2 + v175 = v169 && 0 <= 1 + v175 f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) :|: 0 = 0 f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) -> f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) :|: 0 = 0 f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) :|: TRUE f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) -> f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) :|: 0 = 0 f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: TRUE f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: TRUE f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_140 -> f_247(v144:0, v170:0, 3 + v170:0, 3, 0, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v103:0 > 0 && v105:0 > 0 && v144:0 > -1 && v170:0 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(v175:0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(-1, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 Filtered unneeded arguments: f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: f_140 -> f_247(v144:0) :|: v144:0 > -1 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_247(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_247(sum~cons_2~v175:0) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 ---------------------------------------- (35) Obligation: Rules: f_140 -> f_247(v144:0) :|: v144:0 > -1 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f_247(0) :|: TRUE && x = 0 && x7 = 1 && x8 = 3 && x9 = 2 && x10 = 4 f_247(x11) -> f_504(0, x12, x13, x14, 3 + x14, 2 + x15, x15, 1, 3, 2, 4) :|: x14 > 0 && x15 > -2 && x11 = 2 + x15 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 Start term: f_140 ---------------------------------------- (36) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_140_11,1) (f_247_11,2) (f_504_11,3) ---------------------------------------- (37) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX11 > -1); x0 := oldX11; x1 := oldX12; x2 := oldX13; x3 := oldX14; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := oldX0 - 2; oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX11 > -2 && oldX0 = 2 + oldX11); x0 := oldX0 - 2; x1 := oldX12; x2 := oldX13; x3 := oldX14; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; 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 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX14 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := 3 + oldX13; x5 := 2 + oldX14; x6 := oldX0 - 2; x7 := 1; x8 := 3; x9 := 2; x10 := 4; TO: 3; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := -1; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; ---------------------------------------- (38) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0 RF for loc. 6: 2*x0 Bound for (chained) transitions 4: 2 Bound for (chained) transitions 5: 2 Bound for (chained) transitions 6: 2 Bound for (chained) transitions 7: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Lasso ---------------------------------------- (41) Lasso2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 57 rulesP rules: f_247(v169, v170, v171, 3, 0, 1, 4) -> f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 1 <= v172 && v173 = 3 + v172 && 4 <= v173 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 2 + v175 = v169 && 0 <= 1 + v175 f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) :|: 0 = 0 f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) -> f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) :|: 0 = 0 f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) :|: TRUE f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) -> f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) :|: 0 = 0 f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: TRUE f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: TRUE f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_140 -> f_247(v144:0, v170:0, 3 + v170:0, 3, 0, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v103:0 > 0 && v105:0 > 0 && v144:0 > -1 && v170:0 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(v175:0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(-1, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 f_247(2 + v175:0, v170:0, v171:0, 3, 0, 1, 4) -> f_247(0, v170:1, 3 + v170:1, 3, 0, 1, 4) :|: v172:0 > 0 && v175:0 > -2 && v170:1 > 0 Filtered unneeded arguments: f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: f_140 -> f_247(v144:0) :|: v144:0 > -1 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_247(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_247(sum~cons_2~v175:0) -> f_504(0, v170:0, v171:0, v172:0, 3 + v172:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v172:0 > 0 && v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 ---------------------------------------- (42) Obligation: Rules: f_140 -> f_247(v144:0) :|: v144:0 > -1 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f_247(0) :|: TRUE && x = 0 && x7 = 1 && x8 = 3 && x9 = 2 && x10 = 4 f_247(x11) -> f_504(0, x12, x13, x14, 3 + x14, 2 + x15, x15, 1, 3, 2, 4) :|: x14 > 0 && x15 > -2 && x11 = 2 + x15 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 Start term: f_140 ---------------------------------------- (43) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_140_11,1) (f_247_11,2) (f_504_11,3) ---------------------------------------- (44) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX11 > -1); x0 := oldX11; x1 := oldX12; x2 := oldX13; x3 := oldX14; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := oldX0 - 2; oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); assume(oldX11 > -2 && oldX0 = 2 + oldX11); x0 := oldX0 - 2; x1 := oldX12; x2 := oldX13; x3 := oldX14; x4 := oldX15; x5 := oldX16; x6 := oldX17; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := oldX21; 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 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX14 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := 3 + oldX13; x5 := 2 + oldX14; x6 := oldX0 - 2; x7 := 1; x8 := 3; x9 := 2; x10 := 4; TO: 3; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := -1; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX21 := oldX0 - 2; oldX11 := nondet(); oldX12 := nondet(); oldX13 := nondet(); oldX14 := nondet(); oldX15 := nondet(); oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); assume(oldX21 > -2 && oldX0 = 2 + oldX21); x0 := 0; x1 := oldX11; x2 := oldX12; x3 := oldX13; x4 := oldX14; x5 := oldX15; x6 := oldX16; x7 := oldX17; x8 := oldX18; x9 := oldX19; x10 := oldX20; TO: 2; ---------------------------------------- (45) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0 RF for loc. 6: 2*x0 Bound for (chained) transitions 4: 2 Bound for (chained) transitions 5: 2 Bound for (chained) transitions 6: 2 Bound for (chained) transitions 7: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Lasso ---------------------------------------- (48) Lasso2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 31 rulesP rules: f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: 0 = 0 f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_214(0, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: 0 = 0 f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_214(1, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE Combined rules. Obtained 3 rulesP rules: f_140 -> f_216(v5:0, v103:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v103:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v103:0 > 0 f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(0, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v103:1 > 0 f_216(1 + v144:0, v103:0, v97:0, v98:0, v99:0, v100:0, v104:0, 0, v102:0, 3, 1, 4) -> f_216(1, v103:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 0, v102:0, 3, 1, 4) :|: v105:0 > 0 && v144:0 > -1 && v103:1 > 0 Filtered unneeded arguments: f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1) Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: f_140 -> f_216(v5:0) :|: TRUE f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_216(sum~cons_1~v144:0) -> f_216(1) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 ---------------------------------------- (49) Obligation: Rules: f_140 -> f_216(v5:0) :|: TRUE f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_216(x) -> f_216(1) :|: x1 > -1 && x = 1 + x1 Start term: f_140 ---------------------------------------- (50) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_140_1,1) (f_216_1,2) ---------------------------------------- (51) Obligation: START: 1; FROM: 1; oldX0 := x0; oldX1 := nondet(); assume(0 = 0); x0 := oldX1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := 0; TO: 2; FROM: 2; oldX0 := x0; oldX1 := oldX0 - 1; assume(oldX1 > -1 && oldX0 = 1 + oldX1); x0 := 1; TO: 2; ---------------------------------------- (52) T2 (COMPLETE) Found this recurrent set for cutpoint 5: oldX1 == 1 and x0 == 1 ---------------------------------------- (53) NO ---------------------------------------- (54) SEGraph to IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 176 rulesP rules: f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_240(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_493(v5, v894, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_516(v5, v968, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_541(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_562(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE f_188(v40, v41, v42, v43, v44, v45, v46, v47, v48, 0, v50, 3, 1, 4) -> f_244(v40, 0, 1) :|: TRUE f_214(v96, v97, v98, v99, v100, 0, v102, 3, 1, 4) -> f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) :|: 1 <= v103 && v104 = 3 + v103 && 4 <= v104 f_216(v96, v103, v97, v98, v99, v100, v104, 0, v102, 3, 1, 4) -> f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 1 <= v105 && v106 = 3 + v105 && 4 <= v106 f_218(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: TRUE f_220(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 = 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_223(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: v96 <= 0 f_221(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) :|: 0 < v96 f_223(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_226(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) :|: 0 = 0 f_224(v96, v103, v105, v97, v98, v99, v100, v104, v106, 0, v102, 3, 1, 4) -> f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_226(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) -> f_229(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) :|: TRUE f_227(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: TRUE f_229(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) -> f_232(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) :|: TRUE f_230(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 0 = 0 f_232(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) -> f_234(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) :|: TRUE f_233(v96, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) :|: 1 + v144 = v96 && 0 <= v144 f_234(v96, v103, v105, 1, v97, v98, v99, v100, v104, v106, 0, v102, 3, 4) -> f_237(v96, v103, v105, 1, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_235(v96, v103, v105, 0, v144, v97, v98, v99, v100, v104, v106, v102, 3, 1, 4) -> f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: 0 = 0 f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_238(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_240(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_243(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE f_243(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_246(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 f_247(v169, v170, v171, 3, 0, 1, 4) -> f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 1 <= v172 && v173 = 3 + v172 && 4 <= v173 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_251(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: v169 <= 0 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 f_251(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_253(v169, v170, v172, 1, v171, v173, 3, 0, 4) :|: 0 = 0 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_253(v169, v170, v172, 1, v171, v173, 3, 0, 4) -> f_255(v169, v170, v172, 1, v171, v173, 3, 0, 4) :|: TRUE f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE f_255(v169, v170, v172, 1, v171, v173, 3, 0, 4) -> f_257(v169, v170, v172, 1, v171, v173, 0, 3, 4) :|: TRUE f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 f_257(v169, v170, v172, 1, v171, v173, 0, 3, 4) -> f_259(v169, v170, v172, 1, v171, v173, 0, 3, 4) :|: TRUE f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 2 + v175 = v169 && 0 <= 1 + v175 f_259(v169, v170, v172, 1, v171, v173, 0, 3, 4) -> f_261(v169, v170, v172, 1, 0, v171, v173, 3, 4) :|: 0 = 0 f_260(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) :|: 0 = 0 f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_262(v175, v170, v171, v172, v173, v169, 0, 3, 2, 1, 4) -> f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_263(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE f_265(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: 0 = 0 f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_271(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_494(0, v903, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_517(0, v977, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_542(0, v1049, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_266(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_563(0, v1049, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_267(v175, 0, v170, v171, v172, v173, v169, 3, 2, 1, 4) -> f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_268(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_214(0, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_269(v169, v170, v172, 0, v175, v171, v173, 3, 2, 1, 4) -> f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_270(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) :|: 0 = 0 f_271(0, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_273(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_305(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_367(v421, v422, v423, 0, v425, v426, v427, 1, v429, v430, 3, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_431(v639, v640, v641, 0, v643, v644, v645, 1, v647, v648, 3, 2, 6, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_491(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_272(-1, v170, v171, v172, v173, v169, 0, v175, 3, 2, 1, 4) -> f_556(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_273(1, v103, v105, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_275(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE f_275(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_276(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: TRUE f_276(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_278(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: TRUE f_277(-1, 0, v170, v171, v172, v173, v169, v175, 3, 2, 1, 4) -> f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_278(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_280(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_279(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) :|: 0 = 0 f_280(1, v103, v105, 0, -1, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_296(1, v103, v105, 0, 0, -1, v104, v106, v97, v98, v99, v100, v102, 3, 2, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_289(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_306(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_368(v421, v422, v423, 0, v425, v426, v427, 1, v429, v430, 3, 2, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_432(v639, v640, v641, 0, v643, v644, v645, 1, v647, v648, 3, 2, 6, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_492(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_281(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_557(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE f_289(0, v170, v171, v172, v173, v169, v175, -1, 3, 2, 1, 4) -> f_291(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) :|: 0 = 0 f_291(v169, v170, v172, 0, v175, -1, v171, v173, 3, 2, 1, 4) -> f_293(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_293(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) -> f_295(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: TRUE f_295(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) -> f_297(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: TRUE f_296(1, v239, v240, 0, v242, v243, v244, v245, v246, v247, v248, v249, v250, 3, 2, 4) -> f_319(1, v239, v240, 0, v242, v243, v244, v245, 3, 2, 4) :|: TRUE f_297(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) -> f_300(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_300(v169, v170, v172, 0, v175, -1, 1, v171, v173, 3, 2, 4) -> f_362(v169, v170, v172, 0, v175, 0, -1, 1, v171, v173, 3, 2, 4) :|: TRUE f_319(1, v309, v310, 0, v312, v313, v314, v315, 3, 2, 4) -> f_343(1, v309, v310, 0, 0, 0, v312, v313, v314, v315, 3, 1, 2, 4) :|: TRUE f_343(v380, v381, v382, 0, v384, v385, v386, v387, v388, v389, 3, 1, 2, 4) -> f_392(v380, v381, v382, 0, v384, v385, v386, v387, v388, v389, 3, 1, 2, 4) :|: TRUE f_362(v421, v422, v423, 0, v425, v426, v427, 1, v429, v430, 3, 2, 4) -> f_425(v421, v422, v423, 0, v425, v426, v427, 1, v429, v430, 3, 2, 6, 4) :|: TRUE f_392(v537, v538, v539, 0, v541, v542, v543, v544, v545, v546, 3, 1, 2, 4) -> f_416(v537, v538, v539, 0, v541, v542, v543, v544, v545, v546, 3, 1, 5, 4, 2) :|: TRUE f_416(v602, v603, v604, 0, v606, v607, v608, v609, v610, v611, 3, 1, 5, 4, 2) -> f_464(v602, v603, v604, 0, v606, v607, v608, v609, v610, v611, 3, 1, 5, 4) :|: TRUE f_425(v639, v640, v641, 0, v643, v644, v645, 1, v647, v648, 3, 2, 6, 4) -> f_488(v639, v640, v641, 0, v643, v644, v645, 1, v647, v648, 3, 2, 4) :|: TRUE f_464(v762, v763, v764, 0, v766, v767, v768, v769, v770, v771, 3, 1, 5, 4) -> f_465(v762, v763, v764, 0, v766, v767, v768, v769, v770, v771, 3, 1, 4) :|: TRUE f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_493(v5, v894, v1, v2, v3, v4, 0, 3, 1, 4) -> f_497(v1, v3, v5, v894, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_494(0, v903, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_498(1, v103, v105, 0, v903, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_495(v96, v103, v105, 0, v144, 1, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: 0 = 0 f_496(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_497(v1, v3, v5, v894, v2, v4, 0, 3, 1, 4) -> f_501(v1, v3, v5, v894, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_498(1, v103, v105, 0, v903, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_502(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: 1 + v906 = v903 && 2 + v906 <= 0 f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_508(v96, v103, v105, 1, 0, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: TRUE f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_518(1, v986, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: TRUE f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_543(1, v1058, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: TRUE f_499(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_564(1, v1058, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: TRUE f_500(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_502(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_505(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_503(1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_214(1, v97, v98, v99, v100, 0, v102, 3, 1, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_513(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_504(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_558(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_505(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_507(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_507(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_510(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: 0 = 0 f_510(1, v103, v105, 0, v903, v906, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_465(1, v103, v105, 0, 0, 0, v903, v906, v104, v106, 3, 1, 4) :|: TRUE f_512(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_515(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: 0 = 0 f_516(v5, v968, v1, v2, v3, v4, 0, 3, 1, 4) -> f_521(v1, v3, v5, v968, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_517(0, v977, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_522(1, v103, v105, 0, v977, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_518(1, v986, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_523(v96, v103, v105, 0, v144, 1, v986, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) :|: TRUE f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_530(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) :|: TRUE f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_531(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_520(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_559(v826, v827, v828, 0, v830, v831, v832, 1, v834, v835, 3, 2, 4) :|: TRUE f_521(v1, v3, v5, v968, v2, v4, 0, 3, 1, 4) -> f_525(v1, v3, v5, v968, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_522(1, v103, v105, 0, v977, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_526(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: 1 + v989 = v977 && 2 + v989 <= 0 f_523(v96, v103, v105, 0, v144, 1, v986, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_527(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 1 + v990 = v986 && 2 + v990 <= 0 f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE f_526(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_528(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_527(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_529(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: TRUE f_528(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_532(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_529(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_533(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: TRUE f_530(0, v170, v171, v172, v173, v169, v175, 1, 3, 2, 4) -> f_534(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_532(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_507(1, v103, v105, 0, v977, v989, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_533(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_538(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_534(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_539(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_538(v96, v103, v105, 0, v144, 1, v986, v990, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_465(v96, v103, v105, 0, v144, 1, v986, v990, v104, v106, 3, 1, 4) :|: TRUE f_539(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_540(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: TRUE f_540(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_544(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: TRUE f_541(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) -> f_545(v1, v3, v5, v1040, v2, v4, 0, 3, 1, 4) :|: 0 = 0 f_542(0, v1049, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_546(1, v103, v105, 0, v1049, v97, v98, v99, v100, v104, v106, v102, 3, 4) :|: 0 = 0 f_543(1, v1058, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_547(v96, v103, v105, 0, v144, 1, v1058, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 0 = 0 f_544(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_548(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) :|: 0 = 0 f_545(v1, v3, v5, v1040, v2, v4, 0, 3, 1, 4) -> f_549(v1, v3, v5, v1040, 0, v2, v4, 3, 1, 4) :|: 0 = 0 f_546(1, v103, v105, 0, v1049, v97, v98, v99, v100, v104, v106, v102, 3, 4) -> f_550(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: 1 + v1061 = v1049 && 2 + v1061 <= 0 f_547(v96, v103, v105, 0, v144, 1, v1058, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_551(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: 1 + v1062 = v1058 && 2 + v1062 <= 0 f_548(v169, v170, v172, 0, v175, 1, v171, v173, 3, 2, 4) -> f_488(v169, v170, v172, 0, v175, 1, 0, 1, v171, v173, 3, 2, 4) :|: TRUE f_550(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_552(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_551(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_553(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: TRUE f_552(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_560(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_553(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_561(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: TRUE f_554(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) -> f_489(v144, 1, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 2, 4) :|: TRUE f_555(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) -> f_490(v175, 1, v170, v171, v172, v173, v169, 0, 3, 2, 4) :|: TRUE f_560(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) -> f_507(1, v103, v105, 0, v1049, v1061, v97, v98, v99, v100, v104, v106, v102, 3, 4, 2) :|: TRUE f_561(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) -> f_533(v96, v103, v105, 0, v144, 1, v1058, v1062, v97, v98, v99, v100, v104, v106, v102, 3, 2, 4) :|: TRUE f_562(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) -> f_541(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE f_563(0, v1049, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) -> f_542(0, v1049, v97, v98, v99, v100, v103, v104, v105, v106, v102, 1, 3, 4) :|: TRUE f_564(1, v1058, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) -> f_543(1, v1058, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, v144, 3, 2, 4) :|: TRUE Combined rules. Obtained 37 rulesP rules: f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_491(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 f_221(1 + v144:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_465(1, v103:0, v105:0, 0, 0, 0, 1 + v989:0, v989:0, v104:0, v106:0, 3, 1, 4) :|: v144:0 > -1 && v989:0 < -1 f_221(1 + v144:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_499(1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, 0, v102:0, 1 + v144:0, v144:0, 3, 2, 4) :|: v144:0 > -1 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_306(2 + v175:0, v170:0, v172:0, 0, v175:0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_557(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 f_140 -> f_549(v1:0, v3:0, v5:0, v1040:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_431(v639:0, v640:0, v641:0, 0, v643:0, v644:0, v645:0, 1, v647:0, v648:0, 3, 2, 6, 4) :|: v175:0 > -2 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_513(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE f_140 -> f_221(v5:0, v103:0, v105:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v103:0, 3 + v105:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v103:0 > 0 && v105:0 > 0 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_250(0, v170:1, v172:1, 3 + v170:1, 3 + v172:1, 3, 0, 1, 4) :|: v170:1 > 0 && v172:1 > 0 f_221(1 + v144:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_250(v144:0, v170:0, v172:0, 3 + v170:0, 3 + v172:0, 3, 0, 1, 4) :|: v144:0 > -1 && v170:0 > 0 && v172:0 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_367(v421:0, v422:0, v423:0, 0, v425:0, v426:0, v427:0, 1, v429:0, v430:0, 3, 2, 4) :|: v175:0 > -2 f_250(v169:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_261(v169:0, v170:0, v172:0, 1, 0, v171:0, v173:0, 3, 4) :|: v169:0 < 1 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_250(0, v170:1, v172:1, 3 + v170:1, 3 + v172:1, 3, 0, 1, 4) :|: v175:0 > -2 && v170:1 > 0 && v172:1 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_250(v175:0, v170:1, v172:1, 3 + v170:1, 3 + v172:1, 3, 0, 1, 4) :|: v170:1 > 0 && v175:0 > -2 && v172:1 > 0 f_221(1 + v144:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_465(1, v103:0, v105:0, 0, 0, 0, 0, -1, v104:0, v106:0, 3, 1, 4) :|: v144:0 > -1 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_488(2 + v175:0, v170:0, v172:0, 0, v175:0, 0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_558(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_531(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE f_221(v96:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_237(v96:0, v103:0, v105:0, 1, 0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, v102:0, 3, 4) :|: v96:0 < 1 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_305(2 + v175:0, v170:0, v172:0, 0, v175:0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 f_499(1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, 0, v102:0, v96:0, v144:0, 3, 2, 4) -> f_465(v96:0, v103:0, v105:0, 0, v144:0, 1, 1 + v1062:0, v1062:0, v104:0, v106:0, 3, 1, 4) :|: v1062:0 < -1 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_250(-1, v170:1, v172:1, 3 + v170:1, 3 + v172:1, 3, 0, 1, 4) :|: v175:0 > -2 && v170:1 > 0 && v172:1 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_368(v421:0, v422:0, v423:0, 0, v425:0, v426:0, v427:0, 1, v429:0, v430:0, 3, 2, 4) :|: v175:0 > -2 f_221(1 + v144:0, v103:0, v105:0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, 0, v102:0, 3, 1, 4) -> f_221(0, v103:1, v105:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 3 + v105:1, 0, v102:0, 3, 1, 4) :|: v144:0 > -1 && v103:1 > 0 && v105:1 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_432(v639:0, v640:0, v641:0, 0, v643:0, v644:0, v645:0, 1, v647:0, v648:0, 3, 2, 6, 4) :|: v175:0 > -2 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_559(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE f_499(1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, 0, v102:0, v96:0, v144:0, 3, 2, 4) -> f_508(v96:0, v103:0, v105:0, 1, 0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, v102:0, 3, 4) :|: TRUE f_499(1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, 0, v102:0, v96:0, v144:0, 3, 2, 4) -> f_221(1, v103:1, v105:1, v97:0, v98:0, v99:0, v100:0, 3 + v103:1, 3 + v105:1, 0, v102:0, 3, 1, 4) :|: v103:1 > 0 && v105:1 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_492(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 f_140 -> f_525(v1:0, v3:0, v5:0, v968:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_140 -> f_501(v1:0, v3:0, v5:0, v894:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_188(v40:0, v41:0, v42:0, v43:0, v44:0, v45:0, v46:0, v47:0, v48:0, 0, v50:0, 3, 1, 4) -> f_250(v40:0, v170:0, v172:0, 3 + v170:0, 3 + v172:0, 3, 0, 1, 4) :|: v170:0 > 0 && v172:0 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_504(0, v170:0, v171:0, v172:0, v173:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v175:0 > -2 f_504(0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, 1, 3, 2, 4) -> f_488(v169:0, v170:0, v172:0, 0, v175:0, 1, 0, 1, v171:0, v173:0, 3, 2, 4) :|: TRUE f_140 -> f_246(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_250(2 + v175:0, v170:0, v172:0, v171:0, v173:0, 3, 0, 1, 4) -> f_556(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 Filtered unneeded arguments: f_250(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f_250(x1) f_221(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_221(x1) f_188(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_188(x1) Removed division, modulo operations, cleaned up constraints. Obtained 37 rules.P rules: f_250(sum~cons_2~v175:0) -> f_491(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_221(sum~cons_1~v144:0) -> f_465(1, v103:0, v105:0, 0, 0, 0, 1 + v989:0, v989:0, v104:0, v106:0, 3, 1, 4) :|: v144:0 > -1 && v989:0 < -1 && sum~cons_1~v144:0 = 1 + v144:0 f_221(sum~cons_1~v144:0) -> f_499(1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, 0, v102:0, 1 + v144:0, v144:0, 3, 2, 4) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_250(sum~cons_2~v175:0) -> f_306(2 + v175:0, v170:0, v172:0, 0, v175:0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_250(sum~cons_2~v175:0) -> f_557(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_140 -> f_549(v1:0, v3:0, v5:0, v1040:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_250(sum~cons_2~v175:0) -> f_431(v639:0, v640:0, v641:0, 0, v643:0, v644:0, v645:0, 1, v647:0, v648:0, 3, 2, 6, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_513(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_140 -> f_221(v5:0) :|: TRUE f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_250(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_221(sum~cons_1~v144:0) -> f_250(v144:0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_250(sum~cons_2~v175:0) -> f_367(v421:0, v422:0, v423:0, 0, v425:0, v426:0, v427:0, 1, v429:0, v430:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_250(v169:0) -> f_261(v169:0, v170:0, v172:0, 1, 0, v171:0, v173:0, 3, 4) :|: v169:0 < 1 f_250(sum~cons_2~v175:0) -> f_250(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_250(sum~cons_2~v175:0) -> f_250(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_221(sum~cons_1~v144:0) -> f_465(1, v103:0, v105:0, 0, 0, 0, 0, -1, v104:0, v106:0, 3, 1, 4) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_250(sum~cons_2~v175:0) -> f_488(2 + v175:0, v170:0, v172:0, 0, v175:0, 0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_558(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_531(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_221(v96:0) -> f_237(v96:0, v103:0, v105:0, 1, 0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, v102:0, 3, 4) :|: v96:0 < 1 f_250(sum~cons_2~v175:0) -> f_305(2 + v175:0, v170:0, v172:0, 0, v175:0, -1, 1, v171:0, v173:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_499(cons_1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, cons_0, v102:0, v96:0, v144:0, cons_3, cons_2, cons_4) -> f_465(v96:0, v103:0, v105:0, 0, v144:0, 1, 1 + v1062:0, v1062:0, v104:0, v106:0, 3, 1, 4) :|: v1062:0 < -1 && cons_1 = 1 && cons_0 = 0 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_250(sum~cons_2~v175:0) -> f_250(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_250(sum~cons_2~v175:0) -> f_368(v421:0, v422:0, v423:0, 0, v425:0, v426:0, v427:0, 1, v429:0, v430:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_221(sum~cons_1~v144:0) -> f_221(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 f_250(sum~cons_2~v175:0) -> f_432(v639:0, v640:0, v641:0, 0, v643:0, v644:0, v645:0, 1, v647:0, v648:0, 3, 2, 6, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_559(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_499(cons_1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, cons_0, v102:0, v96:0, v144:0, cons_3, cons_2, cons_4) -> f_508(v96:0, v103:0, v105:0, 1, 0, v97:0, v98:0, v99:0, v100:0, v104:0, v106:0, v102:0, 3, 4) :|: TRUE && cons_1 = 1 && cons_0 = 0 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_499(cons_1, v97:0, v98:0, v99:0, v100:0, v103:0, v104:0, v105:0, v106:0, cons_0, v102:0, v96:0, v144:0, cons_3, cons_2, cons_4) -> f_221(1) :|: TRUE && cons_1 = 1 && cons_0 = 0 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_250(sum~cons_2~v175:0) -> f_492(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_140 -> f_525(v1:0, v3:0, v5:0, v968:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_140 -> f_501(v1:0, v3:0, v5:0, v894:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_188(v40:0) -> f_250(v40:0) :|: TRUE f_250(sum~cons_2~v175:0) -> f_504(0, v170:0, v171:0, v172:0, v173:0, 2 + v175:0, v175:0, 1, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_504(cons_0, v170:0, v171:0, v172:0, v173:0, v169:0, v175:0, cons_1, cons_3, cons_2, cons_4) -> f_488(v169:0, v170:0, v172:0, 0, v175:0, 1, 0, 1, v171:0, v173:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 f_140 -> f_246(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_250(sum~cons_2~v175:0) -> f_556(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 ---------------------------------------- (55) Obligation: Rules: f_250(sum~cons_2~v175:0) -> f_491(v826:0, v827:0, v828:0, 0, v830:0, v831:0, v832:0, 1, v834:0, v835:0, 3, 2, 4) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 f_221(sum~cons_1~v144:0) -> f_465(1, v103:0, v105:0, 0, 0, 0, 1 + v989:0, v989:0, v104:0, v106:0, 3, 1, 4) :|: v144:0 > -1 && v989:0 < -1 && sum~cons_1~v144:0 = 1 + v144:0 f_221(x) -> f_499(1, x1, x2, x3, x4, x5, x6, x7, x8, 0, x9, 1 + x10, x10, 3, 2, 4) :|: x10 > -1 && x = 1 + x10 f_250(x11) -> f_306(2 + x12, x13, x14, 0, x12, -1, 1, x15, x16, 3, 2, 4) :|: x12 > -2 && x11 = 2 + x12 f_250(x17) -> f_557(x18, x19, x20, 0, x21, x22, x23, 1, x24, x25, 3, 2, 4) :|: x26 > -2 && x17 = 2 + x26 f_140 -> f_549(v1:0, v3:0, v5:0, v1040:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 f_250(x27) -> f_431(x28, x29, x30, 0, x31, x32, x33, 1, x34, x35, 3, 2, 6, 4) :|: x36 > -2 && x27 = 2 + x36 f_504(x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47) -> f_513(x48, x49, x50, 0, x51, x52, x53, 1, x54, x55, 3, 2, 4) :|: TRUE && x37 = 0 && x44 = 1 && x45 = 3 && x46 = 2 && x47 = 4 f_140 -> f_221(x56) :|: TRUE f_504(x57, x58, x59, x60, x61, x62, x63, x64, x65, x66, x67) -> f_250(0) :|: TRUE && x57 = 0 && x64 = 1 && x65 = 3 && x66 = 2 && x67 = 4 f_221(x68) -> f_250(x69) :|: x69 > -1 && x68 = 1 + x69 f_250(x70) -> f_367(x71, x72, x73, 0, x74, x75, x76, 1, x77, x78, 3, 2, 4) :|: x79 > -2 && x70 = 2 + x79 f_250(v169:0) -> f_261(v169:0, v170:0, v172:0, 1, 0, v171:0, v173:0, 3, 4) :|: v169:0 < 1 f_250(x80) -> f_250(0) :|: x81 > -2 && x80 = 2 + x81 f_250(x82) -> f_250(x83) :|: x83 > -2 && x82 = 2 + x83 f_221(x84) -> f_465(1, x85, x86, 0, 0, 0, 0, -1, x87, x88, 3, 1, 4) :|: x89 > -1 && x84 = 1 + x89 f_250(x90) -> f_488(2 + x91, x92, x93, 0, x91, 0, -1, 1, x94, x95, 3, 2, 4) :|: x91 > -2 && x90 = 2 + x91 f_504(x96, x97, x98, x99, x100, x101, x102, x103, x104, x105, x106) -> f_558(x107, x108, x109, 0, x110, x111, x112, 1, x113, x114, 3, 2, 4) :|: TRUE && x96 = 0 && x103 = 1 && x104 = 3 && x105 = 2 && x106 = 4 f_504(x115, x116, x117, x118, x119, x120, x121, x122, x123, x124, x125) -> f_531(x126, x127, x128, 0, x129, x130, x131, 1, x132, x133, 3, 2, 4) :|: TRUE && x115 = 0 && x122 = 1 && x123 = 3 && x124 = 2 && x125 = 4 f_221(x134) -> f_237(x134, x135, x136, 1, 0, x137, x138, x139, x140, x141, x142, x143, 3, 4) :|: x134 < 1 f_250(x144) -> f_305(2 + x145, x146, x147, 0, x145, -1, 1, x148, x149, 3, 2, 4) :|: x145 > -2 && x144 = 2 + x145 f_499(x150, x151, x152, x153, x154, x155, x156, x157, x158, x159, x160, x161, x162, x163, x164, x165) -> f_465(x161, x155, x157, 0, x162, 1, 1 + x166, x166, x156, x158, 3, 1, 4) :|: x166 < -1 && x150 = 1 && x159 = 0 && x163 = 3 && x164 = 2 && x165 = 4 f_250(x167) -> f_250(-1) :|: x168 > -2 && x167 = 2 + x168 f_250(x169) -> f_368(x170, x171, x172, 0, x173, x174, x175, 1, x176, x177, 3, 2, 4) :|: x178 > -2 && x169 = 2 + x178 f_221(x179) -> f_221(0) :|: x180 > -1 && x179 = 1 + x180 f_250(x181) -> f_432(x182, x183, x184, 0, x185, x186, x187, 1, x188, x189, 3, 2, 6, 4) :|: x190 > -2 && x181 = 2 + x190 f_504(x191, x192, x193, x194, x195, x196, x197, x198, x199, x200, x201) -> f_559(x202, x203, x204, 0, x205, x206, x207, 1, x208, x209, 3, 2, 4) :|: TRUE && x191 = 0 && x198 = 1 && x199 = 3 && x200 = 2 && x201 = 4 f_499(x210, x211, x212, x213, x214, x215, x216, x217, x218, x219, x220, x221, x222, x223, x224, x225) -> f_508(x221, x215, x217, 1, 0, x211, x212, x213, x214, x216, x218, x220, 3, 4) :|: TRUE && x210 = 1 && x219 = 0 && x223 = 3 && x224 = 2 && x225 = 4 f_499(x226, x227, x228, x229, x230, x231, x232, x233, x234, x235, x236, x237, x238, x239, x240, x241) -> f_221(1) :|: TRUE && x226 = 1 && x235 = 0 && x239 = 3 && x240 = 2 && x241 = 4 f_250(x242) -> f_492(x243, x244, x245, 0, x246, x247, x248, 1, x249, x250, 3, 2, 4) :|: x251 > -2 && x242 = 2 + x251 f_140 -> f_525(x252, x253, x254, x255, 0, 3 + x252, 3 + x253, 3, 1, 4) :|: x253 > 0 && x252 > 0 f_140 -> f_501(x256, x257, x258, x259, 0, 3 + x256, 3 + x257, 3, 1, 4) :|: x257 > 0 && x256 > 0 f_188(v40:0) -> f_250(v40:0) :|: TRUE f_250(x260) -> f_504(0, x261, x262, x263, x264, 2 + x265, x265, 1, 3, 2, 4) :|: x265 > -2 && x260 = 2 + x265 f_504(x266, x267, x268, x269, x270, x271, x272, x273, x274, x275, x276) -> f_488(x271, x267, x269, 0, x272, 1, 0, 1, x268, x270, 3, 2, 4) :|: TRUE && x266 = 0 && x273 = 1 && x274 = 3 && x275 = 2 && x276 = 4 f_140 -> f_246(x277, x278, x279, 0, 3 + x277, 3 + x278, 3, 1, 4) :|: x278 > 0 && x277 > 0 f_250(x280) -> f_556(x281, x282, x283, 0, x284, x285, x286, 1, x287, x288, 3, 2, 4) :|: x289 > -2 && x280 = 2 + x289 Start term: f_140 ---------------------------------------- (56) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_250_16,1) (f_491_16,2) (f_221_16,3) (f_465_16,4) (f_499_16,5) (f_306_16,6) (f_557_16,7) (f_140_16,8) (f_549_16,9) (f_431_16,10) (f_504_16,11) (f_513_16,12) (f_367_16,13) (f_261_16,14) (f_488_16,15) (f_558_16,16) (f_531_16,17) (f_237_16,18) (f_305_16,19) (f_368_16,20) (f_432_16,21) (f_559_16,22) (f_508_16,23) (f_492_16,24) (f_525_16,25) (f_501_16,26) (f_188_16,27) (f_246_16,28) (f_556_16,29) ---------------------------------------- (57) Obligation: START: 8; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 2; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX24 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX24 > -1 && oldX18 < -1 && oldX0 = 1 + oldX24); x0 := 1; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := 0; x5 := 0; x6 := 1 + oldX18; x7 := oldX18; x8 := oldX19; x9 := oldX20; x10 := 3; x11 := 1; x12 := 4; x13 := oldX21; x14 := oldX22; x15 := oldX23; TO: 4; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX25 := oldX0 - 1; 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 := 1; x1 := oldX16; x2 := oldX17; x3 := oldX18; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := oldX22; x8 := oldX23; x9 := 0; x10 := oldX24; x11 := 1 + oldX25; x12 := oldX0 - 1; x13 := 3; x14 := 2; x15 := 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 := x15; oldX16 := oldX0 - 2; oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); assume(oldX16 > -2 && oldX0 = 2 + oldX16); x0 := 2 + oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX0 - 2; x5 := -1; x6 := 1; x7 := oldX19; x8 := oldX20; x9 := 3; x10 := 2; x11 := 4; x12 := oldX21; x13 := oldX22; x14 := oldX23; x15 := oldX24; TO: 6; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 7; FROM: 8; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX17 > 0 && oldX16 > 0); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := 0; x5 := 3 + oldX16; x6 := 3 + oldX17; x7 := 3; x8 := 1; x9 := 4; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; x15 := oldX25; TO: 9; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX26 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX26 > -2 && oldX0 = 2 + oldX26); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 6; x13 := 4; x14 := oldX24; x15 := oldX25; TO: 10; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 12; FROM: 8; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := 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(); oldX30 := nondet(); oldX31 := nondet(); assume(0 = 0); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; TO: 3; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := 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(); oldX30 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := 0; 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; x15 := oldX30; TO: 1; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := oldX0 - 1; 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(); oldX30 := nondet(); oldX31 := nondet(); assume(oldX16 > -1 && oldX0 = 1 + oldX16); x0 := oldX0 - 1; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 13; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX0 < 1); x0 := oldX0; x1 := oldX16; x2 := oldX17; x3 := 1; x4 := 0; x5 := oldX18; x6 := oldX19; x7 := 3; x8 := 4; x9 := oldX20; x10 := oldX21; x11 := oldX22; x12 := oldX23; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 14; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX31 := oldX0 - 2; 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(); oldX30 := nondet(); assume(oldX31 > -2 && oldX0 = 2 + oldX31); x0 := 0; 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; x15 := oldX30; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := oldX0 - 2; 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(); oldX30 := nondet(); oldX31 := nondet(); assume(oldX16 > -2 && oldX0 = 2 + oldX16); x0 := oldX0 - 2; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := oldX20; x5 := oldX21; x6 := oldX22; x7 := oldX23; x8 := oldX24; x9 := oldX25; x10 := oldX26; x11 := oldX27; x12 := oldX28; x13 := oldX29; x14 := oldX30; x15 := oldX31; TO: 1; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX23 := oldX0 - 1; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); assume(oldX23 > -1 && oldX0 = 1 + oldX23); x0 := 1; x1 := oldX16; x2 := oldX17; x3 := 0; x4 := 0; x5 := 0; x6 := 0; x7 := -1; x8 := oldX18; x9 := oldX19; x10 := 3; x11 := 1; x12 := 4; x13 := oldX20; x14 := oldX21; x15 := oldX22; TO: 4; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := oldX0 - 2; oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); assume(oldX16 > -2 && oldX0 = 2 + oldX16); x0 := 2 + oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX0 - 2; x5 := 0; x6 := -1; x7 := 1; x8 := oldX19; x9 := oldX20; x10 := 3; x11 := 2; x12 := 4; x13 := oldX21; x14 := oldX22; x15 := oldX23; TO: 15; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 16; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 17; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX0 < 1); x0 := oldX0; x1 := oldX16; x2 := oldX17; x3 := 1; x4 := 0; x5 := oldX18; x6 := oldX19; x7 := oldX20; x8 := oldX21; x9 := oldX22; x10 := oldX23; x11 := oldX24; x12 := 3; x13 := 4; x14 := oldX25; x15 := oldX26; TO: 18; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := oldX0 - 2; oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); assume(oldX16 > -2 && oldX0 = 2 + oldX16); x0 := 2 + oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX0 - 2; x5 := -1; x6 := 1; x7 := oldX19; x8 := oldX20; x9 := 3; x10 := 2; x11 := 4; x12 := oldX21; x13 := oldX22; x14 := oldX23; x15 := oldX24; TO: 19; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); assume(oldX16 < -1 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); x0 := oldX11; x1 := oldX5; x2 := oldX7; x3 := 0; x4 := oldX12; x5 := 1; x6 := 1 + oldX16; x7 := oldX16; x8 := oldX6; x9 := oldX8; x10 := 3; x11 := 1; x12 := 4; x13 := oldX17; x14 := oldX18; x15 := oldX19; TO: 4; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX31 := oldX0 - 2; 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(); oldX30 := nondet(); assume(oldX31 > -2 && oldX0 = 2 + oldX31); x0 := -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; x15 := oldX30; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 20; FROM: 3; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX31 := 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(); oldX30 := nondet(); assume(oldX31 > -1 && oldX0 = 1 + oldX31); x0 := 0; 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; x15 := oldX30; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX26 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX26 > -2 && oldX0 = 2 + oldX26); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 6; x13 := 4; x14 := oldX24; x15 := oldX25; TO: 21; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 22; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); x0 := oldX11; x1 := oldX5; x2 := oldX7; x3 := 1; x4 := 0; x5 := oldX1; x6 := oldX2; x7 := oldX3; x8 := oldX4; x9 := oldX6; x10 := oldX8; x11 := oldX10; x12 := 3; x13 := 4; x14 := oldX16; x15 := oldX17; TO: 23; FROM: 5; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := 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(); oldX30 := nondet(); assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); x0 := 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; x15 := oldX30; TO: 3; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 24; FROM: 8; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX17 > 0 && oldX16 > 0); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := 0; x5 := 3 + oldX16; x6 := 3 + oldX17; x7 := 3; x8 := 1; x9 := 4; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; x15 := oldX25; TO: 25; FROM: 8; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX17 > 0 && oldX16 > 0); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := oldX19; x4 := 0; x5 := 3 + oldX16; x6 := 3 + oldX17; x7 := 3; x8 := 1; x9 := 4; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; x15 := oldX25; TO: 26; FROM: 27; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := 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(); oldX30 := nondet(); assume(0 = 0); x0 := oldX0; 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; x15 := oldX30; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX20 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX20 > -2 && oldX0 = 2 + oldX20); x0 := 0; x1 := oldX16; x2 := oldX17; x3 := oldX18; x4 := oldX19; x5 := 2 + oldX20; x6 := oldX0 - 2; x7 := 1; x8 := 3; x9 := 2; x10 := 4; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; x15 := oldX25; TO: 11; FROM: 11; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); x0 := oldX5; x1 := oldX1; x2 := oldX3; x3 := 0; x4 := oldX6; x5 := 1; x6 := 0; x7 := 1; x8 := oldX2; x9 := oldX4; x10 := 3; x11 := 2; x12 := 4; x13 := oldX16; x14 := oldX17; x15 := oldX18; TO: 15; FROM: 8; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); assume(oldX17 > 0 && oldX16 > 0); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := 3 + oldX16; x5 := 3 + oldX17; x6 := 3; x7 := 1; x8 := 4; x9 := oldX19; x10 := oldX20; x11 := oldX21; x12 := oldX22; x13 := oldX23; x14 := oldX24; x15 := oldX25; TO: 28; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := x10; oldX11 := x11; oldX12 := x12; oldX13 := x13; oldX14 := x14; oldX15 := x15; oldX27 := oldX0 - 2; oldX16 := nondet(); oldX17 := nondet(); oldX18 := nondet(); oldX19 := nondet(); oldX20 := nondet(); oldX21 := nondet(); oldX22 := nondet(); oldX23 := nondet(); oldX24 := nondet(); oldX25 := nondet(); oldX26 := nondet(); assume(oldX27 > -2 && oldX0 = 2 + oldX27); x0 := oldX16; x1 := oldX17; x2 := oldX18; x3 := 0; x4 := oldX19; x5 := oldX20; x6 := oldX21; x7 := 1; x8 := oldX22; x9 := oldX23; x10 := 3; x11 := 2; x12 := 4; x13 := oldX24; x14 := oldX25; x15 := oldX26; TO: 29; ---------------------------------------- (58) T2 (COMPLETE) Found this recurrent set for cutpoint 34: oldX16 == 1 and oldX25 == 6 and x0 == 1 and x11 == 1 and x13 == 3 and x14 == 2 and x15 == 4 and x9 == 0 ---------------------------------------- (59) NO