27.11/9.22 MAYBE 27.11/9.23 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 27.11/9.23 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 27.11/9.23 27.11/9.23 27.11/9.23 Termination of the given C Problem could not be shown: 27.11/9.23 27.11/9.23 (0) C Problem 27.11/9.23 (1) CToLLVMProof [EQUIVALENT, 169 ms] 27.11/9.23 (2) LLVM problem 27.11/9.23 (3) LLVMToTerminationGraphProof [EQUIVALENT, 2941 ms] 27.11/9.23 (4) LLVM Symbolic Execution Graph 27.11/9.23 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 27.11/9.23 (6) AND 27.11/9.23 (7) LLVM Symbolic Execution SCC 27.11/9.23 (8) SCC2IRS [SOUND, 116 ms] 27.11/9.23 (9) IntTRS 27.11/9.23 (10) IRS2T2 [EQUIVALENT, 0 ms] 27.11/9.23 (11) T2IntSys 27.11/9.23 (12) T2 [EQUIVALENT, 1033 ms] 27.11/9.23 (13) YES 27.11/9.23 (14) LLVM Symbolic Execution SCC 27.11/9.23 (15) SCC2IRS [SOUND, 93 ms] 27.11/9.23 (16) IntTRS 27.11/9.23 (17) TerminationGraphProcessor [EQUIVALENT, 25 ms] 27.11/9.23 (18) IntTRS 27.11/9.23 (19) IntTRSCompressionProof [EQUIVALENT, 0 ms] 27.11/9.23 (20) IntTRS 27.11/9.23 (21) IntTRSPeriodicNontermProof [COMPLETE, 3 ms] 27.11/9.23 (22) NO 27.11/9.23 (23) SCC2IRS [SOUND, 0 ms] 27.11/9.23 (24) IntTRS 27.11/9.23 (25) TerminationGraphProcessor [EQUIVALENT, 15 ms] 27.11/9.23 (26) IntTRS 27.11/9.23 (27) IntTRSCompressionProof [EQUIVALENT, 1 ms] 27.11/9.23 (28) IntTRS 27.11/9.23 (29) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] 27.11/9.23 (30) IntTRS 27.11/9.23 (31) IntTRSPeriodicNontermProof [COMPLETE, 0 ms] 27.11/9.23 (32) NO 27.11/9.23 (33) SymbolicExecutionGraphToLassoProof [COMPLETE, 0 ms] 27.11/9.23 (34) AND 27.11/9.23 (35) LLVM Symbolic Execution Lasso 27.11/9.23 (36) Lasso2IRS [SOUND, 137 ms] 27.11/9.23 (37) IntTRS 27.11/9.23 (38) IRS2T2 [EQUIVALENT, 0 ms] 27.11/9.23 (39) T2IntSys 27.11/9.23 (40) T2 [EQUIVALENT, 934 ms] 27.11/9.23 (41) YES 27.11/9.23 (42) LLVM Symbolic Execution Lasso 27.11/9.23 (43) Lasso2IRS [SOUND, 132 ms] 27.11/9.23 (44) IntTRS 27.11/9.23 (45) IRS2T2 [EQUIVALENT, 0 ms] 27.11/9.23 (46) T2IntSys 27.11/9.23 (47) T2 [EQUIVALENT, 1173 ms] 27.11/9.23 (48) YES 27.11/9.23 (49) LLVM Symbolic Execution Lasso 27.11/9.23 (50) Lasso2IRS [SOUND, 171 ms] 27.11/9.23 (51) IntTRS 27.11/9.23 (52) IRS2T2 [EQUIVALENT, 0 ms] 27.11/9.23 (53) T2IntSys 27.11/9.23 (54) T2 [COMPLETE, 1023 ms] 27.11/9.23 (55) NO 27.11/9.23 (56) SEGraph to IRS [SOUND, 308 ms] 27.11/9.23 (57) IntTRS 27.11/9.23 (58) IRS2T2 [EQUIVALENT, 0 ms] 27.11/9.23 (59) T2IntSys 27.11/9.23 (60) T2 [COMPLETE, 1747 ms] 27.11/9.23 (61) NO 27.11/9.23 27.11/9.23 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (0) 27.11/9.23 Obligation: 27.11/9.23 c file /export/starexec/sandbox/benchmark/theBenchmark.c 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (1) CToLLVMProof (EQUIVALENT) 27.11/9.23 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (2) 27.11/9.23 Obligation: 27.11/9.23 LLVM Problem 27.11/9.23 27.11/9.23 Aliases: 27.11/9.23 27.11/9.23 Data layout: 27.11/9.23 27.11/9.23 "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" 27.11/9.23 27.11/9.23 Machine: 27.11/9.23 27.11/9.23 "x86_64-pc-linux-gnu" 27.11/9.23 27.11/9.23 Type definitions: 27.11/9.23 27.11/9.23 Global variables: 27.11/9.23 27.11/9.23 Function declarations and definitions: 27.11/9.23 27.11/9.23 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 27.11/9.23 *BasicFunctionTypename: "rec1" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (i i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.11/9.23 0: 27.11/9.23 %1 = alloca i32, align 4 27.11/9.23 %2 = alloca i32, align 4 27.11/9.23 store %i, %2 27.11/9.23 %3 = load %2 27.11/9.23 %4 = icmp sle %3 0 27.11/9.23 br %4, %5, %6 27.11/9.23 5: 27.11/9.23 store 0, %1 27.11/9.23 br %14 27.11/9.23 6: 27.11/9.23 %7 = load %2 27.11/9.23 %8 = sub %7 2 27.11/9.23 %9 = call i32 @rec1(i32 %8) 27.11/9.23 %10 = sub %9 1 27.11/9.23 %11 = call i32 @rec1(i32 %10) 27.11/9.23 %12 = call i32 @rec1(i32 %11) 27.11/9.23 %13 = add %12 1 27.11/9.23 store %13, %1 27.11/9.23 br %14 27.11/9.23 14: 27.11/9.23 %15 = load %1 27.11/9.23 ret %15 27.11/9.23 27.11/9.23 *BasicFunctionTypename: "rec2" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (j i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.11/9.23 0: 27.11/9.23 %1 = alloca i32, align 4 27.11/9.23 %2 = alloca i32, align 4 27.11/9.23 store %j, %2 27.11/9.23 %3 = load %2 27.11/9.23 %4 = icmp sle %3 0 27.11/9.23 br %4, %5, %6 27.11/9.23 5: 27.11/9.23 store 0, %1 27.11/9.23 br %12 27.11/9.23 6: 27.11/9.23 %7 = load %2 27.11/9.23 %8 = sub %7 1 27.11/9.23 %9 = call i32 @rec1(i32 %8) 27.11/9.23 %10 = call i32 @rec2(i32 %9) 27.11/9.23 %11 = sub %10 1 27.11/9.23 store %11, %1 27.11/9.23 br %12 27.11/9.23 12: 27.11/9.23 %13 = load %1 27.11/9.23 ret %13 27.11/9.23 27.11/9.23 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 27.11/9.23 0: 27.11/9.23 %1 = alloca i32, align 4 27.11/9.23 %x = alloca i32, align 4 27.11/9.23 store 0, %1 27.11/9.23 %2 = call i32 (...)* @__VERIFIER_nondet_int() 27.11/9.23 store %2, %x 27.11/9.23 %3 = load %x 27.11/9.23 %4 = call i32 @rec2(i32 %3) 27.11/9.23 %5 = load %1 27.11/9.23 ret %5 27.11/9.23 27.11/9.23 27.11/9.23 Analyze Termination of all function calls matching the pattern: 27.11/9.23 main() 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (3) LLVMToTerminationGraphProof (EQUIVALENT) 27.11/9.23 Constructed symbolic execution graph for LLVM program and proved memory safety. 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (4) 27.11/9.23 Obligation: 27.11/9.23 SE Graph 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (5) SymbolicExecutionGraphToSCCProof (SOUND) 27.11/9.23 Splitted symbolic execution graph to 2 SCCs. 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (6) 27.11/9.23 Complex Obligation (AND) 27.11/9.23 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (7) 27.11/9.23 Obligation: 27.11/9.23 SCC 27.11/9.23 ---------------------------------------- 27.11/9.23 27.11/9.23 (8) SCC2IRS (SOUND) 27.11/9.23 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.23 Generated rules. Obtained 36 rulesP rules: 27.11/9.23 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 27.11/9.23 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE 27.11/9.23 f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 27.11/9.23 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 27.11/9.23 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.23 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE 27.11/9.23 f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE 27.11/9.23 f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.23 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 27.11/9.23 Combined rules. Obtained 5 rulesP rules: 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 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 27.11/9.23 Filtered unneeded arguments: 27.11/9.23 f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) 27.11/9.23 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (9) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 27.11/9.24 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (10) IRS2T2 (EQUIVALENT) 27.11/9.24 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 27.11/9.24 27.11/9.24 (f_247_11,1) 27.11/9.24 (f_504_11,2) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (11) 27.11/9.24 Obligation: 27.11/9.24 START: 0; 27.11/9.24 27.11/9.24 FROM: 0; 27.11/9.24 TO: 1; 27.11/9.24 27.11/9.24 FROM: 0; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := oldX0 - 2; 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 27.11/9.24 x0 := oldX0 - 2; 27.11/9.24 x1 := oldX12; 27.11/9.24 x2 := oldX13; 27.11/9.24 x3 := oldX14; 27.11/9.24 x4 := oldX15; 27.11/9.24 x5 := oldX16; 27.11/9.24 x6 := oldX17; 27.11/9.24 x7 := oldX18; 27.11/9.24 x8 := oldX19; 27.11/9.24 x9 := oldX20; 27.11/9.24 x10 := oldX21; 27.11/9.24 TO: 1; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 1; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX14 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := 3 + oldX13; 27.11/9.24 x5 := 2 + oldX14; 27.11/9.24 x6 := oldX0 - 2; 27.11/9.24 x7 := 1; 27.11/9.24 x8 := 3; 27.11/9.24 x9 := 2; 27.11/9.24 x10 := 4; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := -1; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 1; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 1; 27.11/9.24 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (12) T2 (EQUIVALENT) 27.11/9.24 Initially, performed program simplifications using lexicographic rank functions: 27.11/9.24 * Removed transitions 2, 5, 6, 7, 8, 20, 22, 23 using the following rank functions: 27.11/9.24 - Rank function 1: 27.11/9.24 RF for loc. 6: 6*x0 27.11/9.24 RF for loc. 8: -1+6*x0 27.11/9.24 RF for loc. 12: x10 27.11/9.24 Bound for (chained) transitions 5: 5 27.11/9.24 Bound for (chained) transitions 6, 20: 5 27.11/9.24 Bound for (chained) transitions 7: 5 27.11/9.24 Bound for (chained) transitions 8: 5 27.11/9.24 Bound for (chained) transitions 22: 4 27.11/9.24 Bound for (chained) transitions 23: 4 27.11/9.24 - Rank function 2: 27.11/9.24 RF for loc. 6: 0 27.11/9.24 RF for loc. 8: -1 27.11/9.24 Bound for (chained) transitions 2: 0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (13) 27.11/9.24 YES 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (14) 27.11/9.24 Obligation: 27.11/9.24 SCC 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (15) SCC2IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 22 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Combined rules. Obtained 2 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(1) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (16) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 f_216(x) -> f_216(1) :|: x1 > -1 && x = 1 + x1 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (17) TerminationGraphProcessor (EQUIVALENT) 27.11/9.24 Constructed the termination graph and obtained one non-trivial SCC. 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (18) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_216(x) -> f_216(1) :|: x1 > -1 && x = 1 + x1 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (19) IntTRSCompressionProof (EQUIVALENT) 27.11/9.24 Compressed rules. 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (20) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_216(sum~cons_1~x1:0) -> f_216(1) :|: x1:0 > -1 && sum~cons_1~x1:0 = 1 + x1:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (21) IntTRSPeriodicNontermProof (COMPLETE) 27.11/9.24 Normalized system to the following form: 27.11/9.24 f(pc, sum~cons_1~x1:0) -> f(1, 1) :|: pc = 1 && (x1:0 > -1 && sum~cons_1~x1:0 = 1 + x1:0) 27.11/9.24 Witness term starting non-terminating reduction: f(1, 1) 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (22) 27.11/9.24 NO 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (23) SCC2IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 22 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Combined rules. Obtained 3 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1, x2, x3, x4, x5, x6, x7) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (24) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (25) TerminationGraphProcessor (EQUIVALENT) 27.11/9.24 Constructed the termination graph and obtained one non-trivial SCC. 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (26) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 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 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (27) IntTRSCompressionProof (EQUIVALENT) 27.11/9.24 Compressed rules. 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (28) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 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.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (29) IntTRSUnneededArgumentFilterProof (EQUIVALENT) 27.11/9.24 Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: 27.11/9.24 27.11/9.24 f_216(x1, x2, x3, x4, x5, x6, x7) -> f_216(x1, x3, x4, x5, x6) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (30) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 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 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (31) IntTRSPeriodicNontermProof (COMPLETE) 27.11/9.24 Normalized system to the following form: 27.11/9.24 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) 27.11/9.24 Witness term starting non-terminating reduction: f(1, 1, 1, 5, 1, 5) 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (32) 27.11/9.24 NO 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (33) SymbolicExecutionGraphToLassoProof (COMPLETE) 27.11/9.24 Converted SEGraph to 3 dependent lassos. 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (34) 27.11/9.24 Complex Obligation (AND) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (35) 27.11/9.24 Obligation: 27.11/9.24 Lasso 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (36) Lasso2IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 57 rulesP rules: 27.11/9.24 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 27.11/9.24 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE 27.11/9.24 f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 27.11/9.24 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 27.11/9.24 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE 27.11/9.24 f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE 27.11/9.24 f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 27.11/9.24 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 27.11/9.24 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE 27.11/9.24 Combined rules. Obtained 6 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: 27.11/9.24 f_140 -> f_247(v144:0) :|: v144:0 > -1 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (37) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_140 -> f_247(v144:0) :|: v144:0 > -1 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 27.11/9.24 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 27.11/9.24 Start term: f_140 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (38) IRS2T2 (EQUIVALENT) 27.11/9.24 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 27.11/9.24 27.11/9.24 (f_140_11,1) 27.11/9.24 (f_247_11,2) 27.11/9.24 (f_504_11,3) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (39) 27.11/9.24 Obligation: 27.11/9.24 START: 1; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 assume(oldX11 > -1); 27.11/9.24 x0 := oldX11; 27.11/9.24 x1 := oldX12; 27.11/9.24 x2 := oldX13; 27.11/9.24 x3 := oldX14; 27.11/9.24 x4 := oldX15; 27.11/9.24 x5 := oldX16; 27.11/9.24 x6 := oldX17; 27.11/9.24 x7 := oldX18; 27.11/9.24 x8 := oldX19; 27.11/9.24 x9 := oldX20; 27.11/9.24 x10 := oldX21; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := oldX0 - 2; 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 27.11/9.24 x0 := oldX0 - 2; 27.11/9.24 x1 := oldX12; 27.11/9.24 x2 := oldX13; 27.11/9.24 x3 := oldX14; 27.11/9.24 x4 := oldX15; 27.11/9.24 x5 := oldX16; 27.11/9.24 x6 := oldX17; 27.11/9.24 x7 := oldX18; 27.11/9.24 x8 := oldX19; 27.11/9.24 x9 := oldX20; 27.11/9.24 x10 := oldX21; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 3; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX14 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := 3 + oldX13; 27.11/9.24 x5 := 2 + oldX14; 27.11/9.24 x6 := oldX0 - 2; 27.11/9.24 x7 := 1; 27.11/9.24 x8 := 3; 27.11/9.24 x9 := 2; 27.11/9.24 x10 := 4; 27.11/9.24 TO: 3; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := -1; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (40) T2 (EQUIVALENT) 27.11/9.24 Initially, performed program simplifications using lexicographic rank functions: 27.11/9.24 * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: 27.11/9.24 - Rank function 1: 27.11/9.24 RF for loc. 5: 1+2*x0 27.11/9.24 RF for loc. 6: 2*x0 27.11/9.24 Bound for (chained) transitions 4: 2 27.11/9.24 Bound for (chained) transitions 5: 2 27.11/9.24 Bound for (chained) transitions 6: 2 27.11/9.24 Bound for (chained) transitions 7: 2 27.11/9.24 - Rank function 2: 27.11/9.24 RF for loc. 5: 0 27.11/9.24 RF for loc. 6: -1 27.11/9.24 Bound for (chained) transitions 1: 0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (41) 27.11/9.24 YES 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (42) 27.11/9.24 Obligation: 27.11/9.24 Lasso 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (43) Lasso2IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 57 rulesP rules: 27.11/9.24 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 27.11/9.24 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE 27.11/9.24 f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 27.11/9.24 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 27.11/9.24 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE 27.11/9.24 f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE 27.11/9.24 f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 27.11/9.24 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 27.11/9.24 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE 27.11/9.24 Combined rules. Obtained 6 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_247(x1, x2, x3, x4, x5, x6, x7) -> f_247(x1) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: 27.11/9.24 f_140 -> f_247(v144:0) :|: v144:0 > -1 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (44) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_140 -> f_247(v144:0) :|: v144:0 > -1 27.11/9.24 f_247(sum~cons_2~v175:0) -> f_247(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_247(x16) -> f_247(-1) :|: x17 > -2 && x16 = 2 + x17 27.11/9.24 f_247(x18) -> f_247(0) :|: x19 > -2 && x18 = 2 + x19 27.11/9.24 Start term: f_140 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (45) IRS2T2 (EQUIVALENT) 27.11/9.24 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 27.11/9.24 27.11/9.24 (f_140_11,1) 27.11/9.24 (f_247_11,2) 27.11/9.24 (f_504_11,3) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (46) 27.11/9.24 Obligation: 27.11/9.24 START: 1; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 assume(oldX11 > -1); 27.11/9.24 x0 := oldX11; 27.11/9.24 x1 := oldX12; 27.11/9.24 x2 := oldX13; 27.11/9.24 x3 := oldX14; 27.11/9.24 x4 := oldX15; 27.11/9.24 x5 := oldX16; 27.11/9.24 x6 := oldX17; 27.11/9.24 x7 := oldX18; 27.11/9.24 x8 := oldX19; 27.11/9.24 x9 := oldX20; 27.11/9.24 x10 := oldX21; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := oldX0 - 2; 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 27.11/9.24 x0 := oldX0 - 2; 27.11/9.24 x1 := oldX12; 27.11/9.24 x2 := oldX13; 27.11/9.24 x3 := oldX14; 27.11/9.24 x4 := oldX15; 27.11/9.24 x5 := oldX16; 27.11/9.24 x6 := oldX17; 27.11/9.24 x7 := oldX18; 27.11/9.24 x8 := oldX19; 27.11/9.24 x9 := oldX20; 27.11/9.24 x10 := oldX21; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 3; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX14 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := 3 + oldX13; 27.11/9.24 x5 := 2 + oldX14; 27.11/9.24 x6 := oldX0 - 2; 27.11/9.24 x7 := 1; 27.11/9.24 x8 := 3; 27.11/9.24 x9 := 2; 27.11/9.24 x10 := 4; 27.11/9.24 TO: 3; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := -1; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX21 := oldX0 - 2; 27.11/9.24 oldX11 := nondet(); 27.11/9.24 oldX12 := nondet(); 27.11/9.24 oldX13 := nondet(); 27.11/9.24 oldX14 := nondet(); 27.11/9.24 oldX15 := nondet(); 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 27.11/9.24 x0 := 0; 27.11/9.24 x1 := oldX11; 27.11/9.24 x2 := oldX12; 27.11/9.24 x3 := oldX13; 27.11/9.24 x4 := oldX14; 27.11/9.24 x5 := oldX15; 27.11/9.24 x6 := oldX16; 27.11/9.24 x7 := oldX17; 27.11/9.24 x8 := oldX18; 27.11/9.24 x9 := oldX19; 27.11/9.24 x10 := oldX20; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (47) T2 (EQUIVALENT) 27.11/9.24 Initially, performed program simplifications using lexicographic rank functions: 27.11/9.24 * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: 27.11/9.24 - Rank function 1: 27.11/9.24 RF for loc. 5: 1+2*x0 27.11/9.24 RF for loc. 6: 2*x0 27.11/9.24 Bound for (chained) transitions 4: 2 27.11/9.24 Bound for (chained) transitions 5: 2 27.11/9.24 Bound for (chained) transitions 6: 2 27.11/9.24 Bound for (chained) transitions 7: 2 27.11/9.24 - Rank function 2: 27.11/9.24 RF for loc. 5: 0 27.11/9.24 RF for loc. 6: -1 27.11/9.24 Bound for (chained) transitions 1: 0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (48) 27.11/9.24 YES 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (49) 27.11/9.24 Obligation: 27.11/9.24 Lasso 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (50) Lasso2IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 31 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 27.11/9.24 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 27.11/9.24 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 27.11/9.24 Combined rules. Obtained 3 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_216(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_216(x1) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 3 rules.P rules: 27.11/9.24 f_140 -> f_216(v5:0) :|: TRUE 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(1) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (51) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 f_140 -> f_216(v5:0) :|: TRUE 27.11/9.24 f_216(sum~cons_1~v144:0) -> f_216(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 f_216(x) -> f_216(1) :|: x1 > -1 && x = 1 + x1 27.11/9.24 Start term: f_140 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (52) IRS2T2 (EQUIVALENT) 27.11/9.24 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 27.11/9.24 27.11/9.24 (f_140_1,1) 27.11/9.24 (f_216_1,2) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (53) 27.11/9.24 Obligation: 27.11/9.24 START: 1; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := nondet(); 27.11/9.24 assume(0 = 0); 27.11/9.24 x0 := oldX1; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := oldX0 - 1; 27.11/9.24 assume(oldX1 > -1 && oldX0 = 1 + oldX1); 27.11/9.24 x0 := 0; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 FROM: 2; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := oldX0 - 1; 27.11/9.24 assume(oldX1 > -1 && oldX0 = 1 + oldX1); 27.11/9.24 x0 := 1; 27.11/9.24 TO: 2; 27.11/9.24 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (54) T2 (COMPLETE) 27.11/9.24 Found this recurrent set for cutpoint 5: oldX1 == 1 and x0 == 1 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (55) 27.11/9.24 NO 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (56) SEGraph to IRS (SOUND) 27.11/9.24 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 27.11/9.24 Generated rules. Obtained 176 rulesP rules: 27.11/9.24 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 27.11/9.24 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 27.11/9.24 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_240(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_493(v5, v894, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_516(v5, v968, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_541(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_562(v5, v1040, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 27.11/9.24 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_214(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 27.11/9.24 f_188(v40, v41, v42, v43, v44, v45, v46, v47, v48, 0, v50, 3, 1, 4) -> f_244(v40, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_240(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_243(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_241(v144, v97, v98, v99, v100, v103, v104, v105, v106, 0, v102, v96, 3, 1, 4) -> f_244(v144, 0, 1) :|: TRUE 27.11/9.24 f_243(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_246(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_244(v169, 0, 1) -> f_247(v169, v170, v171, 3, 0, 1, 4) :|: 1 <= v170 && v171 = 3 + v170 && 4 <= v171 27.11/9.24 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 27.11/9.24 f_248(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: TRUE 27.11/9.24 f_249(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: 0 = 0 27.11/9.24 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_251(v169, v170, v172, v171, v173, 3, 0, 1, 4) :|: v169 <= 0 27.11/9.24 f_250(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_252(v169, v170, v172, v171, v173, 3, 1, 4) :|: 0 < v169 27.11/9.24 f_251(v169, v170, v172, v171, v173, 3, 0, 1, 4) -> f_253(v169, v170, v172, 1, v171, v173, 3, 0, 4) :|: 0 = 0 27.11/9.24 f_252(v169, v170, v172, v171, v173, 3, 1, 4) -> f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_253(v169, v170, v172, 1, v171, v173, 3, 0, 4) -> f_255(v169, v170, v172, 1, v171, v173, 3, 0, 4) :|: TRUE 27.11/9.24 f_254(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: TRUE 27.11/9.24 f_255(v169, v170, v172, 1, v171, v173, 3, 0, 4) -> f_257(v169, v170, v172, 1, v171, v173, 0, 3, 4) :|: TRUE 27.11/9.24 f_256(v169, v170, v172, 0, v171, v173, 3, 1, 4) -> f_258(v169, v170, v172, 0, v171, v173, 3, 1, 4) :|: 0 = 0 27.11/9.24 f_257(v169, v170, v172, 1, v171, v173, 0, 3, 4) -> f_259(v169, v170, v172, 1, v171, v173, 0, 3, 4) :|: TRUE 27.11/9.24 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 27.11/9.24 f_259(v169, v170, v172, 1, v171, v173, 0, 3, 4) -> f_261(v169, v170, v172, 1, 0, v171, v173, 3, 4) :|: 0 = 0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_264(v175, v170, v171, v172, v173, v169, 3, 2, 1, 4, 0) -> f_244(v175, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_274(-1, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(-1, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_284(0, v170, v171, v172, v173, v169, 3, 1, 2, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_506(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_524(0, v170, v171, v172, v173, v169, 3, 1, 4) -> f_244(0, 0, 1) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Combined rules. Obtained 37 rulesP rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 Filtered unneeded arguments: 27.11/9.24 f_250(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f_250(x1) 27.11/9.24 f_221(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_221(x1) 27.11/9.24 f_188(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_188(x1) 27.11/9.24 Removed division, modulo operations, cleaned up constraints. Obtained 37 rules.P rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_140 -> f_221(v5:0) :|: TRUE 27.11/9.24 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 27.11/9.24 f_221(sum~cons_1~v144:0) -> f_250(v144:0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 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 27.11/9.24 f_250(v169:0) -> f_261(v169:0, v170:0, v172:0, 1, 0, v171:0, v173:0, 3, 4) :|: v169:0 < 1 27.11/9.24 f_250(sum~cons_2~v175:0) -> f_250(0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 f_250(sum~cons_2~v175:0) -> f_250(v175:0) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_250(sum~cons_2~v175:0) -> f_250(-1) :|: v175:0 > -2 && sum~cons_2~v175:0 = 2 + v175:0 27.11/9.24 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 27.11/9.24 f_221(sum~cons_1~v144:0) -> f_221(0) :|: v144:0 > -1 && sum~cons_1~v144:0 = 1 + v144:0 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_188(v40:0) -> f_250(v40:0) :|: TRUE 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (57) 27.11/9.24 Obligation: 27.11/9.24 Rules: 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_250(x11) -> f_306(2 + x12, x13, x14, 0, x12, -1, 1, x15, x16, 3, 2, 4) :|: x12 > -2 && x11 = 2 + x12 27.11/9.24 f_250(x17) -> f_557(x18, x19, x20, 0, x21, x22, x23, 1, x24, x25, 3, 2, 4) :|: x26 > -2 && x17 = 2 + x26 27.11/9.24 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 27.11/9.24 f_250(x27) -> f_431(x28, x29, x30, 0, x31, x32, x33, 1, x34, x35, 3, 2, 6, 4) :|: x36 > -2 && x27 = 2 + x36 27.11/9.24 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 27.11/9.24 f_140 -> f_221(x56) :|: TRUE 27.11/9.24 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 27.11/9.24 f_221(x68) -> f_250(x69) :|: x69 > -1 && x68 = 1 + x69 27.11/9.24 f_250(x70) -> f_367(x71, x72, x73, 0, x74, x75, x76, 1, x77, x78, 3, 2, 4) :|: x79 > -2 && x70 = 2 + x79 27.11/9.24 f_250(v169:0) -> f_261(v169:0, v170:0, v172:0, 1, 0, v171:0, v173:0, 3, 4) :|: v169:0 < 1 27.11/9.24 f_250(x80) -> f_250(0) :|: x81 > -2 && x80 = 2 + x81 27.11/9.24 f_250(x82) -> f_250(x83) :|: x83 > -2 && x82 = 2 + x83 27.11/9.24 f_221(x84) -> f_465(1, x85, x86, 0, 0, 0, 0, -1, x87, x88, 3, 1, 4) :|: x89 > -1 && x84 = 1 + x89 27.11/9.24 f_250(x90) -> f_488(2 + x91, x92, x93, 0, x91, 0, -1, 1, x94, x95, 3, 2, 4) :|: x91 > -2 && x90 = 2 + x91 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_221(x134) -> f_237(x134, x135, x136, 1, 0, x137, x138, x139, x140, x141, x142, x143, 3, 4) :|: x134 < 1 27.11/9.24 f_250(x144) -> f_305(2 + x145, x146, x147, 0, x145, -1, 1, x148, x149, 3, 2, 4) :|: x145 > -2 && x144 = 2 + x145 27.11/9.24 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 27.11/9.24 f_250(x167) -> f_250(-1) :|: x168 > -2 && x167 = 2 + x168 27.11/9.24 f_250(x169) -> f_368(x170, x171, x172, 0, x173, x174, x175, 1, x176, x177, 3, 2, 4) :|: x178 > -2 && x169 = 2 + x178 27.11/9.24 f_221(x179) -> f_221(0) :|: x180 > -1 && x179 = 1 + x180 27.11/9.24 f_250(x181) -> f_432(x182, x183, x184, 0, x185, x186, x187, 1, x188, x189, 3, 2, 6, 4) :|: x190 > -2 && x181 = 2 + x190 27.11/9.24 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 27.11/9.24 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 27.11/9.24 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 27.11/9.24 f_250(x242) -> f_492(x243, x244, x245, 0, x246, x247, x248, 1, x249, x250, 3, 2, 4) :|: x251 > -2 && x242 = 2 + x251 27.11/9.24 f_140 -> f_525(x252, x253, x254, x255, 0, 3 + x252, 3 + x253, 3, 1, 4) :|: x253 > 0 && x252 > 0 27.11/9.24 f_140 -> f_501(x256, x257, x258, x259, 0, 3 + x256, 3 + x257, 3, 1, 4) :|: x257 > 0 && x256 > 0 27.11/9.24 f_188(v40:0) -> f_250(v40:0) :|: TRUE 27.11/9.24 f_250(x260) -> f_504(0, x261, x262, x263, x264, 2 + x265, x265, 1, 3, 2, 4) :|: x265 > -2 && x260 = 2 + x265 27.11/9.24 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 27.11/9.24 f_140 -> f_246(x277, x278, x279, 0, 3 + x277, 3 + x278, 3, 1, 4) :|: x278 > 0 && x277 > 0 27.11/9.24 f_250(x280) -> f_556(x281, x282, x283, 0, x284, x285, x286, 1, x287, x288, 3, 2, 4) :|: x289 > -2 && x280 = 2 + x289 27.11/9.24 Start term: f_140 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (58) IRS2T2 (EQUIVALENT) 27.11/9.24 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 27.11/9.24 27.11/9.24 (f_250_16,1) 27.11/9.24 (f_491_16,2) 27.11/9.24 (f_221_16,3) 27.11/9.24 (f_465_16,4) 27.11/9.24 (f_499_16,5) 27.11/9.24 (f_306_16,6) 27.11/9.24 (f_557_16,7) 27.11/9.24 (f_140_16,8) 27.11/9.24 (f_549_16,9) 27.11/9.24 (f_431_16,10) 27.11/9.24 (f_504_16,11) 27.11/9.24 (f_513_16,12) 27.11/9.24 (f_367_16,13) 27.11/9.24 (f_261_16,14) 27.11/9.24 (f_488_16,15) 27.11/9.24 (f_558_16,16) 27.11/9.24 (f_531_16,17) 27.11/9.24 (f_237_16,18) 27.11/9.24 (f_305_16,19) 27.11/9.24 (f_368_16,20) 27.11/9.24 (f_432_16,21) 27.11/9.24 (f_559_16,22) 27.11/9.24 (f_508_16,23) 27.11/9.24 (f_492_16,24) 27.11/9.24 (f_525_16,25) 27.11/9.24 (f_501_16,26) 27.11/9.24 (f_188_16,27) 27.11/9.24 (f_246_16,28) 27.11/9.24 (f_556_16,29) 27.11/9.24 27.11/9.24 ---------------------------------------- 27.11/9.24 27.11/9.24 (59) 27.11/9.24 Obligation: 27.11/9.24 START: 8; 27.11/9.24 27.11/9.24 FROM: 1; 27.11/9.24 oldX0 := x0; 27.11/9.24 oldX1 := x1; 27.11/9.24 oldX2 := x2; 27.11/9.24 oldX3 := x3; 27.11/9.24 oldX4 := x4; 27.11/9.24 oldX5 := x5; 27.11/9.24 oldX6 := x6; 27.11/9.24 oldX7 := x7; 27.11/9.24 oldX8 := x8; 27.11/9.24 oldX9 := x9; 27.11/9.24 oldX10 := x10; 27.11/9.24 oldX11 := x11; 27.11/9.24 oldX12 := x12; 27.11/9.24 oldX13 := x13; 27.11/9.24 oldX14 := x14; 27.11/9.24 oldX15 := x15; 27.11/9.24 oldX27 := oldX0 - 2; 27.11/9.24 oldX16 := nondet(); 27.11/9.24 oldX17 := nondet(); 27.11/9.24 oldX18 := nondet(); 27.11/9.24 oldX19 := nondet(); 27.11/9.24 oldX20 := nondet(); 27.11/9.24 oldX21 := nondet(); 27.11/9.24 oldX22 := nondet(); 27.11/9.24 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 2; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX24 := oldX0 - 1; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 assume(oldX24 > -1 && oldX18 < -1 && oldX0 = 1 + oldX24); 27.11/9.25 x0 := 1; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := 0; 27.11/9.25 x6 := 1 + oldX18; 27.11/9.25 x7 := oldX18; 27.11/9.25 x8 := oldX19; 27.11/9.25 x9 := oldX20; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 1; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX21; 27.11/9.25 x14 := oldX22; 27.11/9.25 x15 := oldX23; 27.11/9.25 TO: 4; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX25 := oldX0 - 1; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 assume(oldX25 > -1 && oldX0 = 1 + oldX25); 27.11/9.25 x0 := 1; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := 0; 27.11/9.25 x10 := oldX24; 27.11/9.25 x11 := 1 + oldX25; 27.11/9.25 x12 := oldX0 - 1; 27.11/9.25 x13 := 3; 27.11/9.25 x14 := 2; 27.11/9.25 x15 := 4; 27.11/9.25 TO: 5; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := oldX0 - 2; 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 27.11/9.25 x0 := 2 + oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX0 - 2; 27.11/9.25 x5 := -1; 27.11/9.25 x6 := 1; 27.11/9.25 x7 := oldX19; 27.11/9.25 x8 := oldX20; 27.11/9.25 x9 := 3; 27.11/9.25 x10 := 2; 27.11/9.25 x11 := 4; 27.11/9.25 x12 := oldX21; 27.11/9.25 x13 := oldX22; 27.11/9.25 x14 := oldX23; 27.11/9.25 x15 := oldX24; 27.11/9.25 TO: 6; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX27 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 7; 27.11/9.25 27.11/9.25 FROM: 8; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX17 > 0 && oldX16 > 0); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := 3 + oldX16; 27.11/9.25 x6 := 3 + oldX17; 27.11/9.25 x7 := 3; 27.11/9.25 x8 := 1; 27.11/9.25 x9 := 4; 27.11/9.25 x10 := oldX20; 27.11/9.25 x11 := oldX21; 27.11/9.25 x12 := oldX22; 27.11/9.25 x13 := oldX23; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 9; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX26 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX26 > -2 && oldX0 = 2 + oldX26); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 6; 27.11/9.25 x13 := 4; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 10; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 12; 27.11/9.25 27.11/9.25 FROM: 8; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 oldX31 := nondet(); 27.11/9.25 assume(0 = 0); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := oldX20; 27.11/9.25 x5 := oldX21; 27.11/9.25 x6 := oldX22; 27.11/9.25 x7 := oldX23; 27.11/9.25 x8 := oldX24; 27.11/9.25 x9 := oldX25; 27.11/9.25 x10 := oldX26; 27.11/9.25 x11 := oldX27; 27.11/9.25 x12 := oldX28; 27.11/9.25 x13 := oldX29; 27.11/9.25 x14 := oldX30; 27.11/9.25 x15 := oldX31; 27.11/9.25 TO: 3; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := 0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := oldX0 - 1; 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 oldX31 := nondet(); 27.11/9.25 assume(oldX16 > -1 && oldX0 = 1 + oldX16); 27.11/9.25 x0 := oldX0 - 1; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := oldX20; 27.11/9.25 x5 := oldX21; 27.11/9.25 x6 := oldX22; 27.11/9.25 x7 := oldX23; 27.11/9.25 x8 := oldX24; 27.11/9.25 x9 := oldX25; 27.11/9.25 x10 := oldX26; 27.11/9.25 x11 := oldX27; 27.11/9.25 x12 := oldX28; 27.11/9.25 x13 := oldX29; 27.11/9.25 x14 := oldX30; 27.11/9.25 x15 := oldX31; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX27 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 13; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX0 < 1); 27.11/9.25 x0 := oldX0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := 1; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := oldX18; 27.11/9.25 x6 := oldX19; 27.11/9.25 x7 := 3; 27.11/9.25 x8 := 4; 27.11/9.25 x9 := oldX20; 27.11/9.25 x10 := oldX21; 27.11/9.25 x11 := oldX22; 27.11/9.25 x12 := oldX23; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 14; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX31 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(oldX31 > -2 && oldX0 = 2 + oldX31); 27.11/9.25 x0 := 0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := oldX0 - 2; 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 oldX31 := nondet(); 27.11/9.25 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 27.11/9.25 x0 := oldX0 - 2; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := oldX20; 27.11/9.25 x5 := oldX21; 27.11/9.25 x6 := oldX22; 27.11/9.25 x7 := oldX23; 27.11/9.25 x8 := oldX24; 27.11/9.25 x9 := oldX25; 27.11/9.25 x10 := oldX26; 27.11/9.25 x11 := oldX27; 27.11/9.25 x12 := oldX28; 27.11/9.25 x13 := oldX29; 27.11/9.25 x14 := oldX30; 27.11/9.25 x15 := oldX31; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX23 := oldX0 - 1; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 assume(oldX23 > -1 && oldX0 = 1 + oldX23); 27.11/9.25 x0 := 1; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := 0; 27.11/9.25 x6 := 0; 27.11/9.25 x7 := -1; 27.11/9.25 x8 := oldX18; 27.11/9.25 x9 := oldX19; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 1; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX20; 27.11/9.25 x14 := oldX21; 27.11/9.25 x15 := oldX22; 27.11/9.25 TO: 4; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := oldX0 - 2; 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 27.11/9.25 x0 := 2 + oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX0 - 2; 27.11/9.25 x5 := 0; 27.11/9.25 x6 := -1; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX19; 27.11/9.25 x9 := oldX20; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX21; 27.11/9.25 x14 := oldX22; 27.11/9.25 x15 := oldX23; 27.11/9.25 TO: 15; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 16; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 17; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX0 < 1); 27.11/9.25 x0 := oldX0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := 1; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := oldX18; 27.11/9.25 x6 := oldX19; 27.11/9.25 x7 := oldX20; 27.11/9.25 x8 := oldX21; 27.11/9.25 x9 := oldX22; 27.11/9.25 x10 := oldX23; 27.11/9.25 x11 := oldX24; 27.11/9.25 x12 := 3; 27.11/9.25 x13 := 4; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 18; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := oldX0 - 2; 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 27.11/9.25 x0 := 2 + oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX0 - 2; 27.11/9.25 x5 := -1; 27.11/9.25 x6 := 1; 27.11/9.25 x7 := oldX19; 27.11/9.25 x8 := oldX20; 27.11/9.25 x9 := 3; 27.11/9.25 x10 := 2; 27.11/9.25 x11 := 4; 27.11/9.25 x12 := oldX21; 27.11/9.25 x13 := oldX22; 27.11/9.25 x14 := oldX23; 27.11/9.25 x15 := oldX24; 27.11/9.25 TO: 19; 27.11/9.25 27.11/9.25 FROM: 5; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 assume(oldX16 < -1 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); 27.11/9.25 x0 := oldX11; 27.11/9.25 x1 := oldX5; 27.11/9.25 x2 := oldX7; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX12; 27.11/9.25 x5 := 1; 27.11/9.25 x6 := 1 + oldX16; 27.11/9.25 x7 := oldX16; 27.11/9.25 x8 := oldX6; 27.11/9.25 x9 := oldX8; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 1; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX17; 27.11/9.25 x14 := oldX18; 27.11/9.25 x15 := oldX19; 27.11/9.25 TO: 4; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX31 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(oldX31 > -2 && oldX0 = 2 + oldX31); 27.11/9.25 x0 := -1; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX27 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 20; 27.11/9.25 27.11/9.25 FROM: 3; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX31 := oldX0 - 1; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(oldX31 > -1 && oldX0 = 1 + oldX31); 27.11/9.25 x0 := 0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 3; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX26 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX26 > -2 && oldX0 = 2 + oldX26); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 6; 27.11/9.25 x13 := 4; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 21; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 22; 27.11/9.25 27.11/9.25 FROM: 5; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); 27.11/9.25 x0 := oldX11; 27.11/9.25 x1 := oldX5; 27.11/9.25 x2 := oldX7; 27.11/9.25 x3 := 1; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := oldX1; 27.11/9.25 x6 := oldX2; 27.11/9.25 x7 := oldX3; 27.11/9.25 x8 := oldX4; 27.11/9.25 x9 := oldX6; 27.11/9.25 x10 := oldX8; 27.11/9.25 x11 := oldX10; 27.11/9.25 x12 := 3; 27.11/9.25 x13 := 4; 27.11/9.25 x14 := oldX16; 27.11/9.25 x15 := oldX17; 27.11/9.25 TO: 23; 27.11/9.25 27.11/9.25 FROM: 5; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 2 && oldX15 = 4); 27.11/9.25 x0 := 1; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 3; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX27 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 24; 27.11/9.25 27.11/9.25 FROM: 8; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX17 > 0 && oldX16 > 0); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := 3 + oldX16; 27.11/9.25 x6 := 3 + oldX17; 27.11/9.25 x7 := 3; 27.11/9.25 x8 := 1; 27.11/9.25 x9 := 4; 27.11/9.25 x10 := oldX20; 27.11/9.25 x11 := oldX21; 27.11/9.25 x12 := oldX22; 27.11/9.25 x13 := oldX23; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 25; 27.11/9.25 27.11/9.25 FROM: 8; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX17 > 0 && oldX16 > 0); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := oldX19; 27.11/9.25 x4 := 0; 27.11/9.25 x5 := 3 + oldX16; 27.11/9.25 x6 := 3 + oldX17; 27.11/9.25 x7 := 3; 27.11/9.25 x8 := 1; 27.11/9.25 x9 := 4; 27.11/9.25 x10 := oldX20; 27.11/9.25 x11 := oldX21; 27.11/9.25 x12 := oldX22; 27.11/9.25 x13 := oldX23; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 26; 27.11/9.25 27.11/9.25 FROM: 27; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 oldX27 := nondet(); 27.11/9.25 oldX28 := nondet(); 27.11/9.25 oldX29 := nondet(); 27.11/9.25 oldX30 := nondet(); 27.11/9.25 assume(0 = 0); 27.11/9.25 x0 := oldX0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := oldX22; 27.11/9.25 x8 := oldX23; 27.11/9.25 x9 := oldX24; 27.11/9.25 x10 := oldX25; 27.11/9.25 x11 := oldX26; 27.11/9.25 x12 := oldX27; 27.11/9.25 x13 := oldX28; 27.11/9.25 x14 := oldX29; 27.11/9.25 x15 := oldX30; 27.11/9.25 TO: 1; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX20 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX20 > -2 && oldX0 = 2 + oldX20); 27.11/9.25 x0 := 0; 27.11/9.25 x1 := oldX16; 27.11/9.25 x2 := oldX17; 27.11/9.25 x3 := oldX18; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := 2 + oldX20; 27.11/9.25 x6 := oldX0 - 2; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := 3; 27.11/9.25 x9 := 2; 27.11/9.25 x10 := 4; 27.11/9.25 x11 := oldX21; 27.11/9.25 x12 := oldX22; 27.11/9.25 x13 := oldX23; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 11; 27.11/9.25 27.11/9.25 FROM: 11; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 27.11/9.25 x0 := oldX5; 27.11/9.25 x1 := oldX1; 27.11/9.25 x2 := oldX3; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX6; 27.11/9.25 x5 := 1; 27.11/9.25 x6 := 0; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX2; 27.11/9.25 x9 := oldX4; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX16; 27.11/9.25 x14 := oldX17; 27.11/9.25 x15 := oldX18; 27.11/9.25 TO: 15; 27.11/9.25 27.11/9.25 FROM: 8; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 assume(oldX17 > 0 && oldX16 > 0); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := 3 + oldX16; 27.11/9.25 x5 := 3 + oldX17; 27.11/9.25 x6 := 3; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := 4; 27.11/9.25 x9 := oldX19; 27.11/9.25 x10 := oldX20; 27.11/9.25 x11 := oldX21; 27.11/9.25 x12 := oldX22; 27.11/9.25 x13 := oldX23; 27.11/9.25 x14 := oldX24; 27.11/9.25 x15 := oldX25; 27.11/9.25 TO: 28; 27.11/9.25 27.11/9.25 FROM: 1; 27.11/9.25 oldX0 := x0; 27.11/9.25 oldX1 := x1; 27.11/9.25 oldX2 := x2; 27.11/9.25 oldX3 := x3; 27.11/9.25 oldX4 := x4; 27.11/9.25 oldX5 := x5; 27.11/9.25 oldX6 := x6; 27.11/9.25 oldX7 := x7; 27.11/9.25 oldX8 := x8; 27.11/9.25 oldX9 := x9; 27.11/9.25 oldX10 := x10; 27.11/9.25 oldX11 := x11; 27.11/9.25 oldX12 := x12; 27.11/9.25 oldX13 := x13; 27.11/9.25 oldX14 := x14; 27.11/9.25 oldX15 := x15; 27.11/9.25 oldX27 := oldX0 - 2; 27.11/9.25 oldX16 := nondet(); 27.11/9.25 oldX17 := nondet(); 27.11/9.25 oldX18 := nondet(); 27.11/9.25 oldX19 := nondet(); 27.11/9.25 oldX20 := nondet(); 27.11/9.25 oldX21 := nondet(); 27.11/9.25 oldX22 := nondet(); 27.11/9.25 oldX23 := nondet(); 27.11/9.25 oldX24 := nondet(); 27.11/9.25 oldX25 := nondet(); 27.11/9.25 oldX26 := nondet(); 27.11/9.25 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 27.11/9.25 x0 := oldX16; 27.11/9.25 x1 := oldX17; 27.11/9.25 x2 := oldX18; 27.11/9.25 x3 := 0; 27.11/9.25 x4 := oldX19; 27.11/9.25 x5 := oldX20; 27.11/9.25 x6 := oldX21; 27.11/9.25 x7 := 1; 27.11/9.25 x8 := oldX22; 27.11/9.25 x9 := oldX23; 27.11/9.25 x10 := 3; 27.11/9.25 x11 := 2; 27.11/9.25 x12 := 4; 27.11/9.25 x13 := oldX24; 27.11/9.25 x14 := oldX25; 27.11/9.25 x15 := oldX26; 27.11/9.25 TO: 29; 27.11/9.25 27.11/9.25 27.11/9.25 ---------------------------------------- 27.11/9.25 27.11/9.25 (60) T2 (COMPLETE) 27.11/9.25 Found this recurrent set for cutpoint 34: oldX16 == 1 and oldX25 == 7 and x0 == 1 and x11 == 1 and x13 == 3 and x14 == 2 and x15 == 4 and x9 == 0 27.11/9.25 27.11/9.25 ---------------------------------------- 27.11/9.25 27.11/9.25 (61) 27.11/9.25 NO 27.23/9.30 EOF