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