25.46/8.72 MAYBE 25.46/8.73 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 25.46/8.73 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 25.46/8.73 25.46/8.73 25.46/8.73 Termination of the given C Problem could not be shown: 25.46/8.73 25.46/8.73 (0) C Problem 25.46/8.73 (1) CToLLVMProof [EQUIVALENT, 173 ms] 25.46/8.73 (2) LLVM problem 25.46/8.73 (3) LLVMToTerminationGraphProof [EQUIVALENT, 2514 ms] 25.46/8.73 (4) LLVM Symbolic Execution Graph 25.46/8.73 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 25.46/8.73 (6) AND 25.46/8.73 (7) LLVM Symbolic Execution SCC 25.46/8.73 (8) SCC2IRS [SOUND, 33 ms] 25.46/8.73 (9) IntTRS 25.46/8.73 (10) IRS2T2 [EQUIVALENT, 0 ms] 25.46/8.73 (11) T2IntSys 25.46/8.73 (12) T2 [EQUIVALENT, 1085 ms] 25.46/8.73 (13) YES 25.46/8.73 (14) LLVM Symbolic Execution SCC 25.46/8.73 (15) SCC2IRS [SOUND, 27 ms] 25.46/8.73 (16) IntTRS 25.46/8.73 (17) IntTRSPeriodicNontermProof [COMPLETE, 6 ms] 25.46/8.73 (18) NO 25.46/8.73 (19) SCC2IRS [SOUND, 32 ms] 25.46/8.73 (20) IntTRS 25.46/8.73 (21) IntTRSCompressionProof [EQUIVALENT, 0 ms] 25.46/8.73 (22) IntTRS 25.46/8.73 (23) IntTRSPeriodicNontermProof [COMPLETE, 16 ms] 25.46/8.73 (24) NO 25.46/8.73 (25) SymbolicExecutionGraphToLassoProof [COMPLETE, 0 ms] 25.46/8.73 (26) AND 25.46/8.73 (27) LLVM Symbolic Execution Lasso 25.46/8.73 (28) Lasso2IRS [SOUND, 57 ms] 25.46/8.73 (29) IntTRS 25.46/8.73 (30) IRS2T2 [EQUIVALENT, 0 ms] 25.46/8.73 (31) T2IntSys 25.46/8.73 (32) T2 [EQUIVALENT, 1294 ms] 25.46/8.73 (33) YES 25.46/8.73 (34) LLVM Symbolic Execution Lasso 25.46/8.73 (35) Lasso2IRS [SOUND, 110 ms] 25.46/8.73 (36) IntTRS 25.46/8.73 (37) IRS2T2 [EQUIVALENT, 0 ms] 25.46/8.73 (38) T2IntSys 25.46/8.73 (39) T2 [EQUIVALENT, 1294 ms] 25.46/8.73 (40) YES 25.46/8.73 (41) LLVM Symbolic Execution Lasso 25.46/8.73 (42) Lasso2IRS [SOUND, 111 ms] 25.46/8.73 (43) IntTRS 25.46/8.73 (44) IRS2T2 [EQUIVALENT, 0 ms] 25.46/8.73 (45) T2IntSys 25.46/8.73 (46) T2 [COMPLETE, 1113 ms] 25.46/8.73 (47) NO 25.46/8.73 (48) SEGraph to IRS [SOUND, 177 ms] 25.46/8.73 (49) IntTRS 25.46/8.73 (50) IRS2T2 [EQUIVALENT, 0 ms] 25.46/8.73 (51) T2IntSys 25.46/8.73 (52) T2 [COMPLETE, 1606 ms] 25.46/8.73 (53) NO 25.46/8.73 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (0) 25.46/8.73 Obligation: 25.46/8.73 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (1) CToLLVMProof (EQUIVALENT) 25.46/8.73 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (2) 25.46/8.73 Obligation: 25.46/8.73 LLVM Problem 25.46/8.73 25.46/8.73 Aliases: 25.46/8.73 25.46/8.73 Data layout: 25.46/8.73 25.46/8.73 "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" 25.46/8.73 25.46/8.73 Machine: 25.46/8.73 25.46/8.73 "x86_64-pc-linux-gnu" 25.46/8.73 25.46/8.73 Type definitions: 25.46/8.73 25.46/8.73 Global variables: 25.46/8.73 25.46/8.73 Function declarations and definitions: 25.46/8.73 25.46/8.73 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 25.46/8.73 *BasicFunctionTypename: "rec1" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (i i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 25.46/8.73 0: 25.46/8.73 %1 = alloca i32, align 4 25.46/8.73 %2 = alloca i32, align 4 25.46/8.73 store %i, %2 25.46/8.73 %3 = load %2 25.46/8.73 %4 = icmp sle %3 0 25.46/8.73 br %4, %5, %6 25.46/8.73 5: 25.46/8.73 store 0, %1 25.46/8.73 br %14 25.46/8.73 6: 25.46/8.73 %7 = load %2 25.46/8.73 %8 = sub %7 2 25.46/8.73 %9 = call i32 @rec1(i32 %8) 25.46/8.73 %10 = sub %9 1 25.46/8.73 %11 = call i32 @rec1(i32 %10) 25.46/8.73 %12 = call i32 @rec1(i32 %11) 25.46/8.73 %13 = add %12 1 25.46/8.73 store %13, %1 25.46/8.73 br %14 25.46/8.73 14: 25.46/8.73 %15 = load %1 25.46/8.73 ret %15 25.46/8.73 25.46/8.73 *BasicFunctionTypename: "rec2" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (j i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 25.46/8.73 0: 25.46/8.73 %1 = alloca i32, align 4 25.46/8.73 %2 = alloca i32, align 4 25.46/8.73 store %j, %2 25.46/8.73 %3 = load %2 25.46/8.73 %4 = icmp sle %3 0 25.46/8.73 br %4, %5, %6 25.46/8.73 5: 25.46/8.73 store 0, %1 25.46/8.73 br %12 25.46/8.73 6: 25.46/8.73 %7 = load %2 25.46/8.73 %8 = add %7 1 25.46/8.73 %9 = call i32 @rec1(i32 %8) 25.46/8.73 %10 = call i32 @rec2(i32 %9) 25.46/8.73 %11 = sub %10 1 25.46/8.73 store %11, %1 25.46/8.73 br %12 25.46/8.73 12: 25.46/8.73 %13 = load %1 25.46/8.73 ret %13 25.46/8.73 25.46/8.73 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 25.46/8.73 0: 25.46/8.73 %1 = alloca i32, align 4 25.46/8.73 %x = alloca i32, align 4 25.46/8.73 store 0, %1 25.46/8.73 %2 = call i32 (...)* @__VERIFIER_nondet_int() 25.46/8.73 store %2, %x 25.46/8.73 %3 = load %x 25.46/8.73 %4 = call i32 @rec2(i32 %3) 25.46/8.73 %5 = load %1 25.46/8.73 ret %5 25.46/8.73 25.46/8.73 25.46/8.73 Analyze Termination of all function calls matching the pattern: 25.46/8.73 main() 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (3) LLVMToTerminationGraphProof (EQUIVALENT) 25.46/8.73 Constructed symbolic execution graph for LLVM program and proved memory safety. 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (4) 25.46/8.73 Obligation: 25.46/8.73 SE Graph 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (5) SymbolicExecutionGraphToSCCProof (SOUND) 25.46/8.73 Splitted symbolic execution graph to 2 SCCs. 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (6) 25.46/8.73 Complex Obligation (AND) 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (7) 25.46/8.73 Obligation: 25.46/8.73 SCC 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (8) SCC2IRS (SOUND) 25.46/8.73 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.73 Generated rules. Obtained 36 rulesP rules: 25.46/8.73 f_302(v513, v514, v515, 3, 0, 1, 4) -> f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 1 <= v516 && v517 = 3 + v516 && 4 <= v517 25.46/8.73 f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: TRUE 25.46/8.73 f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 0 = 0 25.46/8.73 f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_307(v513, v514, v516, v515, v517, 3, 1, 4) :|: 0 < v513 25.46/8.73 f_307(v513, v514, v516, v515, v517, 3, 1, 4) -> f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: TRUE 25.46/8.73 f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 2 + v519 = v513 && 0 <= 1 + v519 25.46/8.73 f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.73 f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) -> f_299(v519, 0, 1) :|: TRUE 25.46/8.73 f_299(v513, 0, 1) -> f_302(v513, v514, v515, 3, 0, 1, 4) :|: 1 <= v514 && v515 = 3 + v514 && 4 <= v515 25.46/8.73 f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) -> f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.73 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) :|: TRUE 25.46/8.73 f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(-1, 0, 1) :|: TRUE 25.46/8.73 f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) -> f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.73 f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.73 f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.73 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: TRUE 25.46/8.73 f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.73 f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.73 f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.73 f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.73 Combined rules. Obtained 5 rulesP rules: 25.46/8.73 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(v519:0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.73 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 25.46/8.73 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v514:1 > 0 25.46/8.73 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.73 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(-1, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.73 Filtered unneeded arguments: 25.46/8.73 f_302(x1, x2, x3, x4, x5, x6, x7) -> f_302(x1) 25.46/8.73 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 25.46/8.73 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.73 f_302(sum~cons_2~v519:0) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.73 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_302(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.73 f_302(sum~cons_2~v519:0) -> f_302(0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.73 f_302(sum~cons_2~v519:0) -> f_302(-1) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (9) 25.46/8.73 Obligation: 25.46/8.73 Rules: 25.46/8.73 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.73 f_302(x) -> f_419(0, x1, x2, x3, 3 + x3, 2 + x4, x4, 1, 3, 2, 4) :|: x3 > 0 && x4 > -2 && x = 2 + x4 25.46/8.73 f_419(x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) -> f_302(0) :|: TRUE && x5 = 0 && x12 = 1 && x13 = 3 && x14 = 2 && x15 = 4 25.46/8.73 f_302(x16) -> f_302(0) :|: x17 > -2 && x16 = 2 + x17 25.46/8.73 f_302(x18) -> f_302(-1) :|: x19 > -2 && x18 = 2 + x19 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (10) IRS2T2 (EQUIVALENT) 25.46/8.73 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 25.46/8.73 25.46/8.73 (f_302_11,1) 25.46/8.73 (f_419_11,2) 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (11) 25.46/8.73 Obligation: 25.46/8.73 START: 0; 25.46/8.73 25.46/8.73 FROM: 0; 25.46/8.73 TO: 1; 25.46/8.73 25.46/8.73 FROM: 0; 25.46/8.73 TO: 2; 25.46/8.73 25.46/8.73 FROM: 1; 25.46/8.73 oldX0 := x0; 25.46/8.73 oldX1 := x1; 25.46/8.73 oldX2 := x2; 25.46/8.73 oldX3 := x3; 25.46/8.73 oldX4 := x4; 25.46/8.73 oldX5 := x5; 25.46/8.73 oldX6 := x6; 25.46/8.73 oldX7 := x7; 25.46/8.73 oldX8 := x8; 25.46/8.73 oldX9 := x9; 25.46/8.73 oldX10 := x10; 25.46/8.73 oldX11 := oldX0 - 2; 25.46/8.73 oldX12 := nondet(); 25.46/8.73 oldX13 := nondet(); 25.46/8.73 oldX14 := nondet(); 25.46/8.73 oldX15 := nondet(); 25.46/8.73 oldX16 := nondet(); 25.46/8.73 oldX17 := nondet(); 25.46/8.73 oldX18 := nondet(); 25.46/8.73 oldX19 := nondet(); 25.46/8.73 oldX20 := nondet(); 25.46/8.73 oldX21 := nondet(); 25.46/8.73 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 25.46/8.73 x0 := oldX0 - 2; 25.46/8.73 x1 := oldX12; 25.46/8.73 x2 := oldX13; 25.46/8.73 x3 := oldX14; 25.46/8.73 x4 := oldX15; 25.46/8.73 x5 := oldX16; 25.46/8.73 x6 := oldX17; 25.46/8.73 x7 := oldX18; 25.46/8.73 x8 := oldX19; 25.46/8.73 x9 := oldX20; 25.46/8.73 x10 := oldX21; 25.46/8.73 TO: 1; 25.46/8.73 25.46/8.73 FROM: 1; 25.46/8.73 oldX0 := x0; 25.46/8.73 oldX1 := x1; 25.46/8.73 oldX2 := x2; 25.46/8.73 oldX3 := x3; 25.46/8.73 oldX4 := x4; 25.46/8.73 oldX5 := x5; 25.46/8.73 oldX6 := x6; 25.46/8.73 oldX7 := x7; 25.46/8.73 oldX8 := x8; 25.46/8.73 oldX9 := x9; 25.46/8.73 oldX10 := x10; 25.46/8.73 oldX14 := oldX0 - 2; 25.46/8.73 oldX11 := nondet(); 25.46/8.73 oldX12 := nondet(); 25.46/8.73 oldX13 := nondet(); 25.46/8.73 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 25.46/8.73 x0 := 0; 25.46/8.73 x1 := oldX11; 25.46/8.73 x2 := oldX12; 25.46/8.73 x3 := oldX13; 25.46/8.73 x4 := 3 + oldX13; 25.46/8.73 x5 := 2 + oldX14; 25.46/8.73 x6 := oldX0 - 2; 25.46/8.73 x7 := 1; 25.46/8.73 x8 := 3; 25.46/8.73 x9 := 2; 25.46/8.73 x10 := 4; 25.46/8.73 TO: 2; 25.46/8.73 25.46/8.73 FROM: 2; 25.46/8.73 oldX0 := x0; 25.46/8.73 oldX1 := x1; 25.46/8.73 oldX2 := x2; 25.46/8.73 oldX3 := x3; 25.46/8.73 oldX4 := x4; 25.46/8.73 oldX5 := x5; 25.46/8.73 oldX6 := x6; 25.46/8.73 oldX7 := x7; 25.46/8.73 oldX8 := x8; 25.46/8.73 oldX9 := x9; 25.46/8.73 oldX10 := x10; 25.46/8.73 oldX11 := nondet(); 25.46/8.73 oldX12 := nondet(); 25.46/8.73 oldX13 := nondet(); 25.46/8.73 oldX14 := nondet(); 25.46/8.73 oldX15 := nondet(); 25.46/8.73 oldX16 := nondet(); 25.46/8.73 oldX17 := nondet(); 25.46/8.73 oldX18 := nondet(); 25.46/8.73 oldX19 := nondet(); 25.46/8.73 oldX20 := nondet(); 25.46/8.73 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.73 x0 := 0; 25.46/8.73 x1 := oldX11; 25.46/8.73 x2 := oldX12; 25.46/8.73 x3 := oldX13; 25.46/8.73 x4 := oldX14; 25.46/8.73 x5 := oldX15; 25.46/8.73 x6 := oldX16; 25.46/8.73 x7 := oldX17; 25.46/8.73 x8 := oldX18; 25.46/8.73 x9 := oldX19; 25.46/8.73 x10 := oldX20; 25.46/8.73 TO: 1; 25.46/8.73 25.46/8.73 FROM: 1; 25.46/8.73 oldX0 := x0; 25.46/8.73 oldX1 := x1; 25.46/8.73 oldX2 := x2; 25.46/8.73 oldX3 := x3; 25.46/8.73 oldX4 := x4; 25.46/8.73 oldX5 := x5; 25.46/8.73 oldX6 := x6; 25.46/8.73 oldX7 := x7; 25.46/8.73 oldX8 := x8; 25.46/8.73 oldX9 := x9; 25.46/8.73 oldX10 := x10; 25.46/8.73 oldX21 := oldX0 - 2; 25.46/8.73 oldX11 := nondet(); 25.46/8.73 oldX12 := nondet(); 25.46/8.73 oldX13 := nondet(); 25.46/8.73 oldX14 := nondet(); 25.46/8.73 oldX15 := nondet(); 25.46/8.73 oldX16 := nondet(); 25.46/8.73 oldX17 := nondet(); 25.46/8.73 oldX18 := nondet(); 25.46/8.73 oldX19 := nondet(); 25.46/8.73 oldX20 := nondet(); 25.46/8.73 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.73 x0 := 0; 25.46/8.73 x1 := oldX11; 25.46/8.73 x2 := oldX12; 25.46/8.73 x3 := oldX13; 25.46/8.73 x4 := oldX14; 25.46/8.73 x5 := oldX15; 25.46/8.73 x6 := oldX16; 25.46/8.73 x7 := oldX17; 25.46/8.73 x8 := oldX18; 25.46/8.73 x9 := oldX19; 25.46/8.73 x10 := oldX20; 25.46/8.73 TO: 1; 25.46/8.73 25.46/8.73 FROM: 1; 25.46/8.73 oldX0 := x0; 25.46/8.73 oldX1 := x1; 25.46/8.73 oldX2 := x2; 25.46/8.73 oldX3 := x3; 25.46/8.73 oldX4 := x4; 25.46/8.73 oldX5 := x5; 25.46/8.73 oldX6 := x6; 25.46/8.73 oldX7 := x7; 25.46/8.73 oldX8 := x8; 25.46/8.73 oldX9 := x9; 25.46/8.73 oldX10 := x10; 25.46/8.73 oldX21 := oldX0 - 2; 25.46/8.73 oldX11 := nondet(); 25.46/8.73 oldX12 := nondet(); 25.46/8.73 oldX13 := nondet(); 25.46/8.73 oldX14 := nondet(); 25.46/8.73 oldX15 := nondet(); 25.46/8.73 oldX16 := nondet(); 25.46/8.73 oldX17 := nondet(); 25.46/8.73 oldX18 := nondet(); 25.46/8.73 oldX19 := nondet(); 25.46/8.73 oldX20 := nondet(); 25.46/8.73 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.73 x0 := -1; 25.46/8.73 x1 := oldX11; 25.46/8.73 x2 := oldX12; 25.46/8.73 x3 := oldX13; 25.46/8.73 x4 := oldX14; 25.46/8.73 x5 := oldX15; 25.46/8.73 x6 := oldX16; 25.46/8.73 x7 := oldX17; 25.46/8.73 x8 := oldX18; 25.46/8.73 x9 := oldX19; 25.46/8.73 x10 := oldX20; 25.46/8.73 TO: 1; 25.46/8.73 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (12) T2 (EQUIVALENT) 25.46/8.73 Initially, performed program simplifications using lexicographic rank functions: 25.46/8.73 * Removed transitions 2, 5, 6, 7, 8, 20, 22, 23 using the following rank functions: 25.46/8.73 - Rank function 1: 25.46/8.73 RF for loc. 6: 6*x0 25.46/8.73 RF for loc. 8: -1+6*x0 25.46/8.73 RF for loc. 12: x10 25.46/8.73 Bound for (chained) transitions 5: 5 25.46/8.73 Bound for (chained) transitions 6, 20: 5 25.46/8.73 Bound for (chained) transitions 7: 5 25.46/8.73 Bound for (chained) transitions 8: 5 25.46/8.73 Bound for (chained) transitions 22: 4 25.46/8.73 Bound for (chained) transitions 23: 4 25.46/8.73 - Rank function 2: 25.46/8.73 RF for loc. 6: 0 25.46/8.73 RF for loc. 8: -1 25.46/8.73 Bound for (chained) transitions 2: 0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (13) 25.46/8.73 YES 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (14) 25.46/8.73 Obligation: 25.46/8.73 SCC 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (15) SCC2IRS (SOUND) 25.46/8.73 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.73 Generated rules. Obtained 17 rulesP rules: 25.46/8.73 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.73 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.73 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.73 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.73 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.73 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.73 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.73 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.73 f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) :|: 0 = 0 25.46/8.73 f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) -> f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) :|: 0 = 0 25.46/8.73 f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) -> f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) :|: TRUE 25.46/8.73 f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) -> f_267(1, v407, v408, v409, v410, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.73 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.73 f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.73 Combined rules. Obtained 1 rulesP rules: 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0, 0, v412:0, 3, 1, 4) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1, 0, v412:0, 3, 1, 4) :|: v426:0 > 0 && v406:0 > 0 && v413:1 > 0 25.46/8.73 Filtered unneeded arguments: 25.46/8.73 f_269(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_269(x1) 25.46/8.73 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 25.46/8.73 f_269(v406:0) -> f_269(1) :|: v406:0 > 0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (16) 25.46/8.73 Obligation: 25.46/8.73 Rules: 25.46/8.73 f_269(v406:0) -> f_269(1) :|: v406:0 > 0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (17) IntTRSPeriodicNontermProof (COMPLETE) 25.46/8.73 Normalized system to the following form: 25.46/8.73 f(pc, v406:0) -> f(1, 1) :|: pc = 1 && v406:0 > 0 25.46/8.73 Witness term starting non-terminating reduction: f(1, 1) 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (18) 25.46/8.73 NO 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (19) SCC2IRS (SOUND) 25.46/8.73 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.73 Generated rules. Obtained 17 rulesP rules: 25.46/8.73 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.73 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.73 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.73 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.73 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.73 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.73 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.73 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.73 f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) :|: 0 = 0 25.46/8.73 f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) -> f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) :|: 0 = 0 25.46/8.73 f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) -> f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) :|: TRUE 25.46/8.73 f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) -> f_267(1, v407, v408, v409, v410, 0, v412, 3, 1, 4) :|: 1 <= v407 && 4 <= v408 && 1 <= v409 && 4 <= v410 && v407 <= v408 && v409 <= v410 25.46/8.73 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.73 f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: 1 <= v406 && 1 <= v407 && 4 <= v408 && 1 <= v409 && 4 <= v410 && 1 <= v413 && 4 <= v414 && 1 <= v426 && 4 <= v427 && 2 <= v502 && v407 <= v408 && v409 <= v410 && v413 <= v414 && v426 <= v427 25.46/8.73 Combined rules. Obtained 2 rulesP rules: 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0, 0, v412:0, 3, 1, 4) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1, 0, v412:0, 3, 1, 4) :|: v407:0 > 0 && v406:0 > 0 && v408:0 > 3 && v409:0 > 0 && v410:0 > 3 && v426:0 > 0 && v413:0 > 0 && v414:0 > 3 && v408:0 >= v407:0 && v410:0 >= v409:0 && v414:0 >= v413:0 && v426:0 <= 3 + v426:0 && v413:1 > 0 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0, 0, v412:0, 3, 1, 4) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1, 0, v412:0, 3, 1, 4) :|: v426:0 > 0 && v406:0 > 0 && v408:0 > 3 && v407:0 > 0 && v409:0 > 0 && v410:0 > 3 && v408:0 >= v407:0 && v413:1 > 0 && v410:0 >= v409:0 25.46/8.73 Filtered unneeded arguments: 25.46/8.73 f_269(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_269(x1, x2, x3, x4, x5, x6, x7) 25.46/8.73 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1) :|: v406:0 > 0 && v407:0 > 0 && v408:0 > 3 && v409:0 > 0 && v410:0 > 3 && v413:0 > 0 && v414:0 > 3 && v408:0 >= v407:0 && v410:0 >= v409:0 && v413:1 > 0 && v414:0 >= v413:0 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1) :|: v408:0 > 3 && v406:0 > 0 && v407:0 > 0 && v409:0 > 0 && v410:0 > 3 && v408:0 >= v407:0 && v410:0 >= v409:0 && v413:1 > 0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (20) 25.46/8.73 Obligation: 25.46/8.73 Rules: 25.46/8.73 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1) :|: v406:0 > 0 && v407:0 > 0 && v408:0 > 3 && v409:0 > 0 && v410:0 > 3 && v413:0 > 0 && v414:0 > 3 && v408:0 >= v407:0 && v410:0 >= v409:0 && v413:1 > 0 && v414:0 >= v413:0 25.46/8.73 f_269(x, x1, x2, x3, x4, x5, x6) -> f_269(1, x7, x2, x3, x4, x5, 3 + x7) :|: x3 > 3 && x > 0 && x2 > 0 && x4 > 0 && x5 > 3 && x3 >= x2 && x5 >= x4 && x7 > 0 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (21) IntTRSCompressionProof (EQUIVALENT) 25.46/8.73 Compressed rules. 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (22) 25.46/8.73 Obligation: 25.46/8.73 Rules: 25.46/8.73 f_269(v406:0:0, v413:0:0, v407:0:0, v408:0:0, v409:0:0, v410:0:0, v414:0:0) -> f_269(1, v413:1:0, v407:0:0, v408:0:0, v409:0:0, v410:0:0, 3 + v413:1:0) :|: v413:1:0 > 0 && v414:0:0 >= v413:0:0 && v410:0:0 >= v409:0:0 && v408:0:0 >= v407:0:0 && v414:0:0 > 3 && v413:0:0 > 0 && v410:0:0 > 3 && v409:0:0 > 0 && v408:0:0 > 3 && v407:0:0 > 0 && v406:0:0 > 0 25.46/8.73 f_269(x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0) -> f_269(1, x7:0, x2:0, x3:0, x4:0, x5:0, 3 + x7:0) :|: x5:0 >= x4:0 && x7:0 > 0 && x3:0 >= x2:0 && x5:0 > 3 && x4:0 > 0 && x2:0 > 0 && x:0 > 0 && x3:0 > 3 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (23) IntTRSPeriodicNontermProof (COMPLETE) 25.46/8.73 Normalized system to the following form: 25.46/8.73 f(pc, v406:0:0, v413:0:0, v407:0:0, v408:0:0, v409:0:0, v410:0:0, v414:0:0) -> f(1, 1, v413:1:0, v407:0:0, v408:0:0, v409:0:0, v410:0:0, 3 + v413:1:0) :|: pc = 1 && (v413:1:0 > 0 && v414:0:0 >= v413:0:0 && v410:0:0 >= v409:0:0 && v408:0:0 >= v407:0:0 && v414:0:0 > 3 && v413:0:0 > 0 && v410:0:0 > 3 && v409:0:0 > 0 && v408:0:0 > 3 && v407:0:0 > 0 && v406:0:0 > 0) 25.46/8.73 f(pc, x:0, x1:0, x2:0, x3:0, x4:0, x5:0, x6:0) -> f(1, 1, x7:0, x2:0, x3:0, x4:0, x5:0, 3 + x7:0) :|: pc = 1 && (x5:0 >= x4:0 && x7:0 > 0 && x3:0 >= x2:0 && x5:0 > 3 && x4:0 > 0 && x2:0 > 0 && x:0 > 0 && x3:0 > 3) 25.46/8.73 Witness term starting non-terminating reduction: f(1, 1, 4, 4, 4, 4, 6, 7) 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (24) 25.46/8.73 NO 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (25) SymbolicExecutionGraphToLassoProof (COMPLETE) 25.46/8.73 Converted SEGraph to 3 dependent lassos. 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (26) 25.46/8.73 Complex Obligation (AND) 25.46/8.73 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (27) 25.46/8.73 Obligation: 25.46/8.73 Lasso 25.46/8.73 ---------------------------------------- 25.46/8.73 25.46/8.73 (28) Lasso2IRS (SOUND) 25.46/8.73 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.73 Generated rules. Obtained 57 rulesP rules: 25.46/8.73 f_302(v513, v514, v515, 3, 0, 1, 4) -> f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 1 <= v516 && v517 = 3 + v516 && 4 <= v517 25.46/8.73 f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: TRUE 25.46/8.73 f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 0 = 0 25.46/8.73 f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_307(v513, v514, v516, v515, v517, 3, 1, 4) :|: 0 < v513 25.46/8.73 f_307(v513, v514, v516, v515, v517, 3, 1, 4) -> f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: TRUE 25.46/8.73 f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.73 f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 2 + v519 = v513 && 0 <= 1 + v519 25.46/8.73 f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.73 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.73 f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) -> f_299(v519, 0, 1) :|: TRUE 25.46/8.73 f_299(v513, 0, 1) -> f_302(v513, v514, v515, 3, 0, 1, 4) :|: 1 <= v514 && v515 = 3 + v514 && 4 <= v515 25.46/8.73 f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) -> f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.73 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) :|: TRUE 25.46/8.73 f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(-1, 0, 1) :|: TRUE 25.46/8.73 f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) -> f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) :|: 0 = 0 25.46/8.73 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.73 f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.73 f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.73 f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: TRUE 25.46/8.74 f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 25.46/8.74 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 25.46/8.74 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_267(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 25.46/8.74 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.74 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.74 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.74 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.74 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: TRUE 25.46/8.74 f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_299(v502, 0, 1) :|: TRUE 25.46/8.74 Combined rules. Obtained 6 rulesP rules: 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(v519:0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(-1, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_140 -> f_302(1 + v5:0, v514:0, 3 + v514:0, 3, 0, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v413:0 > 0 && v426:0 > 0 && v5:0 > 0 && v514:0 > 0 25.46/8.74 Filtered unneeded arguments: 25.46/8.74 f_302(x1, x2, x3, x4, x5, x6, x7) -> f_302(x1) 25.46/8.74 Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_302(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(-1) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_140 -> f_302(1 + v5:0) :|: v5:0 > 0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (29) 25.46/8.74 Obligation: 25.46/8.74 Rules: 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(x) -> f_419(0, x1, x2, x3, 3 + x3, 2 + x4, x4, 1, 3, 2, 4) :|: x3 > 0 && x4 > -2 && x = 2 + x4 25.46/8.74 f_419(x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) -> f_302(0) :|: TRUE && x5 = 0 && x12 = 1 && x13 = 3 && x14 = 2 && x15 = 4 25.46/8.74 f_302(x16) -> f_302(0) :|: x17 > -2 && x16 = 2 + x17 25.46/8.74 f_302(x18) -> f_302(-1) :|: x19 > -2 && x18 = 2 + x19 25.46/8.74 f_140 -> f_302(1 + v5:0) :|: v5:0 > 0 25.46/8.74 Start term: f_140 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (30) IRS2T2 (EQUIVALENT) 25.46/8.74 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 25.46/8.74 25.46/8.74 (f_302_11,1) 25.46/8.74 (f_419_11,2) 25.46/8.74 (f_140_11,3) 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (31) 25.46/8.74 Obligation: 25.46/8.74 START: 3; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := oldX0 - 2; 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 25.46/8.74 x0 := oldX0 - 2; 25.46/8.74 x1 := oldX12; 25.46/8.74 x2 := oldX13; 25.46/8.74 x3 := oldX14; 25.46/8.74 x4 := oldX15; 25.46/8.74 x5 := oldX16; 25.46/8.74 x6 := oldX17; 25.46/8.74 x7 := oldX18; 25.46/8.74 x8 := oldX19; 25.46/8.74 x9 := oldX20; 25.46/8.74 x10 := oldX21; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX14 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := 3 + oldX13; 25.46/8.74 x5 := 2 + oldX14; 25.46/8.74 x6 := oldX0 - 2; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := 3; 25.46/8.74 x9 := 2; 25.46/8.74 x10 := 4; 25.46/8.74 TO: 2; 25.46/8.74 25.46/8.74 FROM: 2; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX21 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX21 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.74 x0 := -1; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 assume(oldX11 > 0); 25.46/8.74 x0 := 1 + oldX11; 25.46/8.74 x1 := oldX12; 25.46/8.74 x2 := oldX13; 25.46/8.74 x3 := oldX14; 25.46/8.74 x4 := oldX15; 25.46/8.74 x5 := oldX16; 25.46/8.74 x6 := oldX17; 25.46/8.74 x7 := oldX18; 25.46/8.74 x8 := oldX19; 25.46/8.74 x9 := oldX20; 25.46/8.74 x10 := oldX21; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (32) T2 (EQUIVALENT) 25.46/8.74 Initially, performed program simplifications using lexicographic rank functions: 25.46/8.74 * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: 25.46/8.74 - Rank function 1: 25.46/8.74 RF for loc. 5: 1+2*x0 25.46/8.74 RF for loc. 6: 2*x0 25.46/8.74 Bound for (chained) transitions 4: 2 25.46/8.74 Bound for (chained) transitions 5: 2 25.46/8.74 Bound for (chained) transitions 6: 2 25.46/8.74 Bound for (chained) transitions 7: 2 25.46/8.74 - Rank function 2: 25.46/8.74 RF for loc. 5: 0 25.46/8.74 RF for loc. 6: -1 25.46/8.74 Bound for (chained) transitions 1: 0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (33) 25.46/8.74 YES 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (34) 25.46/8.74 Obligation: 25.46/8.74 Lasso 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (35) Lasso2IRS (SOUND) 25.46/8.74 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.74 Generated rules. Obtained 57 rulesP rules: 25.46/8.74 f_302(v513, v514, v515, 3, 0, 1, 4) -> f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 1 <= v516 && v517 = 3 + v516 && 4 <= v517 25.46/8.74 f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: TRUE 25.46/8.74 f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 0 = 0 25.46/8.74 f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_307(v513, v514, v516, v515, v517, 3, 1, 4) :|: 0 < v513 25.46/8.74 f_307(v513, v514, v516, v515, v517, 3, 1, 4) -> f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: TRUE 25.46/8.74 f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 2 + v519 = v513 && 0 <= 1 + v519 25.46/8.74 f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) -> f_299(v519, 0, 1) :|: TRUE 25.46/8.74 f_299(v513, 0, 1) -> f_302(v513, v514, v515, 3, 0, 1, 4) :|: 1 <= v514 && v515 = 3 + v514 && 4 <= v515 25.46/8.74 f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) -> f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) :|: TRUE 25.46/8.74 f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(-1, 0, 1) :|: TRUE 25.46/8.74 f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) -> f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.74 f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: TRUE 25.46/8.74 f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 25.46/8.74 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 25.46/8.74 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_267(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 25.46/8.74 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.74 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.74 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.74 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.74 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: TRUE 25.46/8.74 f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_299(v502, 0, 1) :|: TRUE 25.46/8.74 Combined rules. Obtained 6 rulesP rules: 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(v519:0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(0, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_302(2 + v519:0, v514:0, v515:0, 3, 0, 1, 4) -> f_302(-1, v514:1, 3 + v514:1, 3, 0, 1, 4) :|: v516:0 > 0 && v519:0 > -2 && v514:1 > 0 25.46/8.74 f_140 -> f_302(1 + v5:0, v514:0, 3 + v514:0, 3, 0, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v413:0 > 0 && v426:0 > 0 && v5:0 > 0 && v514:0 > 0 25.46/8.74 Filtered unneeded arguments: 25.46/8.74 f_302(x1, x2, x3, x4, x5, x6, x7) -> f_302(x1) 25.46/8.74 Removed division, modulo operations, cleaned up constraints. Obtained 6 rules.P rules: 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_419(0, v514:0, v515:0, v516:0, 3 + v516:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v516:0 > 0 && v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_302(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(-1) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_140 -> f_302(1 + v5:0) :|: v5:0 > 0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (36) 25.46/8.74 Obligation: 25.46/8.74 Rules: 25.46/8.74 f_302(sum~cons_2~v519:0) -> f_302(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_302(x) -> f_419(0, x1, x2, x3, 3 + x3, 2 + x4, x4, 1, 3, 2, 4) :|: x3 > 0 && x4 > -2 && x = 2 + x4 25.46/8.74 f_419(x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15) -> f_302(0) :|: TRUE && x5 = 0 && x12 = 1 && x13 = 3 && x14 = 2 && x15 = 4 25.46/8.74 f_302(x16) -> f_302(0) :|: x17 > -2 && x16 = 2 + x17 25.46/8.74 f_302(x18) -> f_302(-1) :|: x19 > -2 && x18 = 2 + x19 25.46/8.74 f_140 -> f_302(1 + v5:0) :|: v5:0 > 0 25.46/8.74 Start term: f_140 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (37) IRS2T2 (EQUIVALENT) 25.46/8.74 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 25.46/8.74 25.46/8.74 (f_302_11,1) 25.46/8.74 (f_419_11,2) 25.46/8.74 (f_140_11,3) 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (38) 25.46/8.74 Obligation: 25.46/8.74 START: 3; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := oldX0 - 2; 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 assume(oldX11 > -2 && oldX0 = 2 + oldX11); 25.46/8.74 x0 := oldX0 - 2; 25.46/8.74 x1 := oldX12; 25.46/8.74 x2 := oldX13; 25.46/8.74 x3 := oldX14; 25.46/8.74 x4 := oldX15; 25.46/8.74 x5 := oldX16; 25.46/8.74 x6 := oldX17; 25.46/8.74 x7 := oldX18; 25.46/8.74 x8 := oldX19; 25.46/8.74 x9 := oldX20; 25.46/8.74 x10 := oldX21; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX14 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 assume(oldX13 > 0 && oldX14 > -2 && oldX0 = 2 + oldX14); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := 3 + oldX13; 25.46/8.74 x5 := 2 + oldX14; 25.46/8.74 x6 := oldX0 - 2; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := 3; 25.46/8.74 x9 := 2; 25.46/8.74 x10 := 4; 25.46/8.74 TO: 2; 25.46/8.74 25.46/8.74 FROM: 2; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX21 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX21 := oldX0 - 2; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 assume(oldX21 > -2 && oldX0 = 2 + oldX21); 25.46/8.74 x0 := -1; 25.46/8.74 x1 := oldX11; 25.46/8.74 x2 := oldX12; 25.46/8.74 x3 := oldX13; 25.46/8.74 x4 := oldX14; 25.46/8.74 x5 := oldX15; 25.46/8.74 x6 := oldX16; 25.46/8.74 x7 := oldX17; 25.46/8.74 x8 := oldX18; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := nondet(); 25.46/8.74 oldX12 := nondet(); 25.46/8.74 oldX13 := nondet(); 25.46/8.74 oldX14 := nondet(); 25.46/8.74 oldX15 := nondet(); 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 assume(oldX11 > 0); 25.46/8.74 x0 := 1 + oldX11; 25.46/8.74 x1 := oldX12; 25.46/8.74 x2 := oldX13; 25.46/8.74 x3 := oldX14; 25.46/8.74 x4 := oldX15; 25.46/8.74 x5 := oldX16; 25.46/8.74 x6 := oldX17; 25.46/8.74 x7 := oldX18; 25.46/8.74 x8 := oldX19; 25.46/8.74 x9 := oldX20; 25.46/8.74 x10 := oldX21; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (39) T2 (EQUIVALENT) 25.46/8.74 Initially, performed program simplifications using lexicographic rank functions: 25.46/8.74 * Removed transitions 1, 4, 5, 6, 7 using the following rank functions: 25.46/8.74 - Rank function 1: 25.46/8.74 RF for loc. 5: 1+2*x0 25.46/8.74 RF for loc. 6: 2*x0 25.46/8.74 Bound for (chained) transitions 4: 2 25.46/8.74 Bound for (chained) transitions 5: 2 25.46/8.74 Bound for (chained) transitions 6: 2 25.46/8.74 Bound for (chained) transitions 7: 2 25.46/8.74 - Rank function 2: 25.46/8.74 RF for loc. 5: 0 25.46/8.74 RF for loc. 6: -1 25.46/8.74 Bound for (chained) transitions 1: 0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (40) 25.46/8.74 YES 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (41) 25.46/8.74 Obligation: 25.46/8.74 Lasso 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (42) Lasso2IRS (SOUND) 25.46/8.74 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.74 Generated rules. Obtained 26 rulesP rules: 25.46/8.74 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.74 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.74 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.74 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) :|: 0 = 0 25.46/8.74 f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) -> f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) :|: 0 = 0 25.46/8.74 f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) -> f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) :|: TRUE 25.46/8.74 f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) -> f_267(1, v407, v408, v409, v410, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.74 f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 25.46/8.74 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 25.46/8.74 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_267(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 25.46/8.74 Combined rules. Obtained 2 rulesP rules: 25.46/8.74 f_140 -> f_269(v5:0, v413:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v413:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v413:0 > 0 25.46/8.74 f_269(v406:0, v413:0, v407:0, v408:0, v409:0, v410:0, v414:0, 0, v412:0, 3, 1, 4) -> f_269(1, v413:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1, 0, v412:0, 3, 1, 4) :|: v426:0 > 0 && v406:0 > 0 && v413:1 > 0 25.46/8.74 Filtered unneeded arguments: 25.46/8.74 f_269(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) -> f_269(x1) 25.46/8.74 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 25.46/8.74 f_140 -> f_269(v5:0) :|: TRUE 25.46/8.74 f_269(v406:0) -> f_269(1) :|: v406:0 > 0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (43) 25.46/8.74 Obligation: 25.46/8.74 Rules: 25.46/8.74 f_140 -> f_269(v5:0) :|: TRUE 25.46/8.74 f_269(v406:0) -> f_269(1) :|: v406:0 > 0 25.46/8.74 Start term: f_140 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (44) IRS2T2 (EQUIVALENT) 25.46/8.74 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 25.46/8.74 25.46/8.74 (f_140_1,1) 25.46/8.74 (f_269_1,2) 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (45) 25.46/8.74 Obligation: 25.46/8.74 START: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := nondet(); 25.46/8.74 assume(0 = 0); 25.46/8.74 x0 := oldX1; 25.46/8.74 TO: 2; 25.46/8.74 25.46/8.74 FROM: 2; 25.46/8.74 oldX0 := x0; 25.46/8.74 assume(oldX0 > 0); 25.46/8.74 x0 := 1; 25.46/8.74 TO: 2; 25.46/8.74 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (46) T2 (COMPLETE) 25.46/8.74 Found this recurrent set for cutpoint 5: oldX1 == 1 and x0 == 1 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (47) 25.46/8.74 NO 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (48) SEGraph to IRS (SOUND) 25.46/8.74 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 25.46/8.74 Generated rules. Obtained 112 rulesP rules: 25.46/8.74 f_140 -> f_141(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 25.46/8.74 f_141(v1, v2, 3, 1, 4) -> f_142(v1, v3, v2, v4, 3, 1, 4) :|: 1 <= v3 && v4 = 3 + v3 && 4 <= v4 25.46/8.74 f_142(v1, v3, v2, v4, 3, 1, 4) -> f_143(v1, v3, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_143(v1, v3, v2, v4, 0, 3, 1, 4) -> f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_144(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_145(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_146(v1, v3, v5, v2, v4, 0, 3, 1, 4) -> f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) :|: TRUE 25.46/8.74 f_147(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_295(v5, 0, v1, v2, v3, v4, 3, 1, 4) :|: TRUE 25.46/8.74 f_148(v5, v1, v2, v3, v4, 0, 3, 1, 4) -> f_267(v5, v1, v2, v3, v4, 0, v5, 3, 1, 4) :|: TRUE 25.46/8.74 f_198(v58, v59, v60, v61, v62, v63, v64, v65, v66, 0, v68, 3, 1, 4) -> f_299(v58, 0, 1) :|: TRUE 25.46/8.74 f_267(v406, v407, v408, v409, v410, 0, v412, 3, 1, 4) -> f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) :|: 1 <= v413 && v414 = 3 + v413 && 4 <= v414 25.46/8.74 f_269(v406, v413, v407, v408, v409, v410, v414, 0, v412, 3, 1, 4) -> f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 1 <= v426 && v427 = 3 + v426 && 4 <= v427 25.46/8.74 f_270(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_273(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_277(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: v406 <= 0 25.46/8.74 f_275(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) :|: 0 < v406 25.46/8.74 f_277(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_280(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) :|: 0 = 0 25.46/8.74 f_278(v406, v413, v426, v407, v408, v409, v410, v414, v427, 0, v412, 3, 1, 4) -> f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_280(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) -> f_282(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) :|: TRUE 25.46/8.74 f_281(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_282(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) -> f_286(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) :|: TRUE 25.46/8.74 f_283(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_286(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) -> f_289(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) :|: TRUE 25.46/8.74 f_287(v406, v413, v426, 0, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4) -> f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) :|: v502 = 1 + v406 && 2 <= v502 25.46/8.74 f_289(v406, v413, v426, 1, v407, v408, v409, v410, v414, v427, 0, v412, 3, 4) -> f_292(v406, v413, v426, 1, 0, v407, v408, v409, v410, v414, v427, v412, 3, 4) :|: 0 = 0 25.46/8.74 f_290(v406, v413, v426, 0, v502, v407, v408, v409, v410, v414, v427, v412, 3, 1, 4, 2) -> f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: 0 = 0 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) :|: TRUE 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_318(v513, v514, v516, 1, 0, v515, v517, 3, 4) :|: TRUE 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_293(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_295(v5, 0, v1, v2, v3, v4, 3, 1, 4) -> f_298(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_296(v502, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 1, 4, 2) -> f_299(v502, 0, 1) :|: TRUE 25.46/8.74 f_298(v1, v3, v5, 0, v2, v4, 3, 1, 4) -> f_301(v1, v3, v5, 0, v2, v4, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_299(v513, 0, 1) -> f_302(v513, v514, v515, 3, 0, 1, 4) :|: 1 <= v514 && v515 = 3 + v514 && 4 <= v515 25.46/8.74 f_302(v513, v514, v515, 3, 0, 1, 4) -> f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 1 <= v516 && v517 = 3 + v516 && 4 <= v517 25.46/8.74 f_303(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: TRUE 25.46/8.74 f_304(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: 0 = 0 25.46/8.74 f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_306(v513, v514, v516, v515, v517, 3, 0, 1, 4) :|: v513 <= 0 25.46/8.74 f_305(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_307(v513, v514, v516, v515, v517, 3, 1, 4) :|: 0 < v513 25.46/8.74 f_306(v513, v514, v516, v515, v517, 3, 0, 1, 4) -> f_308(v513, v514, v516, 1, v515, v517, 3, 0, 4) :|: 0 = 0 25.46/8.74 f_307(v513, v514, v516, v515, v517, 3, 1, 4) -> f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_308(v513, v514, v516, 1, v515, v517, 3, 0, 4) -> f_310(v513, v514, v516, 1, v515, v517, 3, 0, 4) :|: TRUE 25.46/8.74 f_309(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: TRUE 25.46/8.74 f_310(v513, v514, v516, 1, v515, v517, 3, 0, 4) -> f_312(v513, v514, v516, 1, v515, v517, 0, 3, 4) :|: TRUE 25.46/8.74 f_311(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) :|: 0 = 0 25.46/8.74 f_312(v513, v514, v516, 1, v515, v517, 0, 3, 4) -> f_314(v513, v514, v516, 1, v515, v517, 0, 3, 4) :|: TRUE 25.46/8.74 f_313(v513, v514, v516, 0, v515, v517, 3, 1, 4) -> f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 2 + v519 = v513 && 0 <= 1 + v519 25.46/8.74 f_314(v513, v514, v516, 1, v515, v517, 0, 3, 4) -> f_316(v513, v514, v516, 1, 0, v515, v517, 3, 4) :|: 0 = 0 25.46/8.74 f_315(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_317(v519, v514, v515, v516, v517, v513, 0, 3, 2, 1, 4) -> f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 f_319(v519, v514, v515, v516, v517, v513, 3, 2, 1, 4, 0) -> f_299(v519, 0, 1) :|: TRUE 25.46/8.74 f_320(v519, 0, v514, v515, v516, v517, v513, 3, 2, 1, 4) -> f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_321(v513, v514, v516, 0, v519, v515, v517, 3, 2, 1, 4) -> f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_322(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_337(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_362(v608, v609, v610, 0, v612, v613, v614, 1, v616, v617, 3, 2, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_387(v695, v696, v697, 0, v699, v700, v701, 1, v703, v704, 3, 2, 6, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_412(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_323(-1, v514, v515, v516, v517, v513, 0, v519, 3, 2, 1, 4) -> f_436(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_324(-1, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(-1, 0, 1) :|: TRUE 25.46/8.74 f_325(-1, 0, v514, v515, v516, v517, v513, v519, 3, 2, 1, 4) -> f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_326(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_329(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_338(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_363(v608, v609, v610, 0, v612, v613, v614, 1, v616, v617, 3, 2, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_388(v695, v696, v697, 0, v699, v700, v701, 1, v703, v704, 3, 2, 6, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_413(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_327(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_437(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_328(0, v514, v515, v516, v517, v513, 3, 1, 2, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_329(0, v514, v515, v516, v517, v513, v519, -1, 3, 2, 1, 4) -> f_330(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) :|: 0 = 0 25.46/8.74 f_330(v513, v514, v516, 0, v519, -1, v515, v517, 3, 2, 1, 4) -> f_331(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_331(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) -> f_332(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_332(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) -> f_333(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_333(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) -> f_334(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_334(v513, v514, v516, 0, v519, -1, 1, v515, v517, 3, 2, 4) -> f_359(v513, v514, v516, 0, v519, 0, -1, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_359(v608, v609, v610, 0, v612, v613, v614, 1, v616, v617, 3, 2, 4) -> f_384(v608, v609, v610, 0, v612, v613, v614, 1, v616, v617, 3, 2, 6, 4) :|: TRUE 25.46/8.74 f_384(v695, v696, v697, 0, v699, v700, v701, 1, v703, v704, 3, 2, 6, 4) -> f_409(v695, v696, v697, 0, v699, v700, v701, 1, v703, v704, 3, 2, 4) :|: TRUE 25.46/8.74 f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) :|: 0 = 0 25.46/8.74 f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_414(v406, v413, v426, 0, v502, 1, v407, v408, v409, v410, v414, v427, v412, 3, 4, 2) -> f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) :|: 0 = 0 25.46/8.74 f_415(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) -> f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) :|: TRUE 25.46/8.74 f_416(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, v502, 3, 4, 2) -> f_421(v406, v413, v426, 1, 0, v407, v408, v409, v410, v414, v427, v412, 3, 4) :|: TRUE 25.46/8.74 f_417(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_418(1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4) -> f_267(1, v407, v408, v409, v410, 0, v412, 3, 1, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_423(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_419(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_438(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_420(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_422(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_424(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) :|: TRUE 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_427(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) :|: TRUE 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_428(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_425(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_439(v782, v783, v784, 0, v786, v787, v788, 1, v790, v791, 3, 2, 4) :|: TRUE 25.46/8.74 f_426(0, v514, v515, v516, v517, v513, 3, 1, 4) -> f_299(0, 0, 1) :|: TRUE 25.46/8.74 f_427(0, v514, v515, v516, v517, v513, v519, 1, 3, 2, 4) -> f_429(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_429(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_430(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_430(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_431(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_431(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_432(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_432(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_433(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) :|: 0 = 0 25.46/8.74 f_433(v513, v514, v516, 0, v519, 1, v515, v517, 3, 2, 4) -> f_409(v513, v514, v516, 0, v519, 1, 0, 1, v515, v517, 3, 2, 4) :|: TRUE 25.46/8.74 f_434(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) -> f_410(v502, 1, v407, v408, v409, v410, v413, v414, v426, v427, 0, v412, v406, 3, 4, 2) :|: TRUE 25.46/8.74 f_435(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) -> f_411(v519, 1, v514, v515, v516, v517, v513, 0, 3, 2, 4) :|: TRUE 25.46/8.74 Combined rules. Obtained 31 rulesP rules: 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_305(0, v514:1, v516:1, 3 + v514:1, 3 + v516:1, 3, 0, 1, 4) :|: v519:0 > -2 && v514:1 > 0 && v516:1 > 0 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_413(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_423(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_419(0, v514:0, v515:0, v516:0, v517:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_305(v513:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_316(v513:0, v514:0, v516:0, 1, 0, v515:0, v517:0, 3, 4) :|: v513:0 < 1 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_388(v695:0, v696:0, v697:0, 0, v699:0, v700:0, v701:0, 1, v703:0, v704:0, 3, 2, 6, 4) :|: v519:0 > -2 25.46/8.74 f_275(v406:0, v413:0, v426:0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, 0, v412:0, 3, 1, 4) -> f_292(v406:0, v413:0, v426:0, 1, 0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, v412:0, 3, 4) :|: v406:0 < 1 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_437(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_409(v513:0, v514:0, v516:0, 0, v519:0, 1, 0, 1, v515:0, v517:0, 3, 2, 4) :|: TRUE 25.46/8.74 f_140 -> f_301(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 25.46/8.74 f_275(v406:0, v413:0, v426:0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, 0, v412:0, 3, 1, 4) -> f_416(1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, 0, v412:0, v406:0, 1 + v406:0, 3, 4, 2) :|: v406:0 > 0 25.46/8.74 f_198(v58:0, v59:0, v60:0, v61:0, v62:0, v63:0, v64:0, v65:0, v66:0, 0, v68:0, 3, 1, 4) -> f_305(v58:0, v514:0, v516:0, 3 + v514:0, 3 + v516:0, 3, 0, 1, 4) :|: v514:0 > 0 && v516:0 > 0 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_428(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_338(2 + v519:0, v514:0, v516:0, 0, v519:0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_305(0, v514:1, v516:1, 3 + v514:1, 3 + v516:1, 3, 0, 1, 4) :|: v514:1 > 0 && v516:1 > 0 25.46/8.74 f_416(1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, 0, v412:0, v406:0, v502:0, 3, 4, 2) -> f_421(v406:0, v413:0, v426:0, 1, 0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, v412:0, 3, 4) :|: TRUE 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_387(v695:0, v696:0, v697:0, 0, v699:0, v700:0, v701:0, 1, v703:0, v704:0, 3, 2, 6, 4) :|: v519:0 > -2 25.46/8.74 f_416(1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, 0, v412:0, v406:0, v502:0, 3, 4, 2) -> f_275(1, v413:1, v426:1, v407:0, v408:0, v409:0, v410:0, 3 + v413:1, 3 + v426:1, 0, v412:0, 3, 1, 4) :|: v413:1 > 0 && v426:1 > 0 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_362(v608:0, v609:0, v610:0, 0, v612:0, v613:0, v614:0, 1, v616:0, v617:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_275(v406:0, v413:0, v426:0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, 0, v412:0, 3, 1, 4) -> f_305(1 + v406:0, v514:0, v516:0, 3 + v514:0, 3 + v516:0, 3, 0, 1, 4) :|: v406:0 > 0 && v514:0 > 0 && v516:0 > 0 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_439(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_305(v519:0, v514:1, v516:1, 3 + v514:1, 3 + v516:1, 3, 0, 1, 4) :|: v514:1 > 0 && v519:0 > -2 && v516:1 > 0 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_305(-1, v514:1, v516:1, 3 + v514:1, 3 + v516:1, 3, 0, 1, 4) :|: v519:0 > -2 && v514:1 > 0 && v516:1 > 0 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_337(2 + v519:0, v514:0, v516:0, 0, v519:0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_412(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_409(2 + v519:0, v514:0, v516:0, 0, v519:0, 0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_436(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 f_275(v406:0, v413:0, v426:0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, 0, v412:0, 3, 1, 4) -> f_318(v513:0, v514:0, v516:0, 1, 0, v515:0, v517:0, 3, 4) :|: v406:0 > 0 25.46/8.74 f_140 -> f_275(v5:0, v413:0, v426:0, v1:0, 3 + v1:0, v3:0, 3 + v3:0, 3 + v413:0, 3 + v426:0, 0, v5:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 && v413:0 > 0 && v426:0 > 0 25.46/8.74 f_419(0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, 1, 3, 2, 4) -> f_438(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE 25.46/8.74 f_305(2 + v519:0, v514:0, v516:0, v515:0, v517:0, 3, 0, 1, 4) -> f_363(v608:0, v609:0, v610:0, 0, v612:0, v613:0, v614:0, 1, v616:0, v617:0, 3, 2, 4) :|: v519:0 > -2 25.46/8.74 Filtered unneeded arguments: 25.46/8.74 f_305(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f_305(x1) 25.46/8.74 f_275(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_275(x1) 25.46/8.74 f_198(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14) -> f_198(x1) 25.46/8.74 Removed division, modulo operations, cleaned up constraints. Obtained 31 rules.P rules: 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_305(0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_413(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_423(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_419(0, v514:0, v515:0, v516:0, v517:0, 2 + v519:0, v519:0, 1, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(v513:0) -> f_316(v513:0, v514:0, v516:0, 1, 0, v515:0, v517:0, 3, 4) :|: v513:0 < 1 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_388(v695:0, v696:0, v697:0, 0, v699:0, v700:0, v701:0, 1, v703:0, v704:0, 3, 2, 6, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_275(v406:0) -> f_292(v406:0, v413:0, v426:0, 1, 0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, v412:0, 3, 4) :|: v406:0 < 1 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_437(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_409(v513:0, v514:0, v516:0, 0, v519:0, 1, 0, 1, v515:0, v517:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_140 -> f_301(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 25.46/8.74 f_275(v406:0) -> f_416(1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, 0, v412:0, v406:0, 1 + v406:0, 3, 4, 2) :|: v406:0 > 0 25.46/8.74 f_198(v58:0) -> f_305(v58:0) :|: TRUE 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_428(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_338(2 + v519:0, v514:0, v516:0, 0, v519:0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_305(0) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_416(cons_1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, cons_0, v412:0, v406:0, v502:0, cons_3, cons_4, cons_2) -> f_421(v406:0, v413:0, v426:0, 1, 0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, v412:0, 3, 4) :|: TRUE && cons_1 = 1 && cons_0 = 0 && cons_3 = 3 && cons_4 = 4 && cons_2 = 2 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_387(v695:0, v696:0, v697:0, 0, v699:0, v700:0, v701:0, 1, v703:0, v704:0, 3, 2, 6, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_416(cons_1, v407:0, v408:0, v409:0, v410:0, v413:0, v414:0, v426:0, v427:0, cons_0, v412:0, v406:0, v502:0, cons_3, cons_4, cons_2) -> f_275(1) :|: TRUE && cons_1 = 1 && cons_0 = 0 && cons_3 = 3 && cons_4 = 4 && cons_2 = 2 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_362(v608:0, v609:0, v610:0, 0, v612:0, v613:0, v614:0, 1, v616:0, v617:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_275(v406:0) -> f_305(1 + v406:0) :|: v406:0 > 0 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_439(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_305(v519:0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_305(-1) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_337(2 + v519:0, v514:0, v516:0, 0, v519:0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_412(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_409(2 + v519:0, v514:0, v516:0, 0, v519:0, 0, -1, 1, v515:0, v517:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_436(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_275(v406:0) -> f_318(v513:0, v514:0, v516:0, 1, 0, v515:0, v517:0, 3, 4) :|: v406:0 > 0 25.46/8.74 f_140 -> f_275(v5:0) :|: TRUE 25.46/8.74 f_419(cons_0, v514:0, v515:0, v516:0, v517:0, v513:0, v519:0, cons_1, cons_3, cons_2, cons_4) -> f_438(v782:0, v783:0, v784:0, 0, v786:0, v787:0, v788:0, 1, v790:0, v791:0, 3, 2, 4) :|: TRUE && cons_0 = 0 && cons_1 = 1 && cons_3 = 3 && cons_2 = 2 && cons_4 = 4 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_363(v608:0, v609:0, v610:0, 0, v612:0, v613:0, v614:0, 1, v616:0, v617:0, 3, 2, 4) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (49) 25.46/8.74 Obligation: 25.46/8.74 Rules: 25.46/8.74 f_305(sum~cons_2~v519:0) -> f_305(0) :|: v519:0 > -2 && sum~cons_2~v519:0 = 2 + v519:0 25.46/8.74 f_305(x) -> f_413(x1, x2, x3, 0, x4, x5, x6, 1, x7, x8, 3, 2, 4) :|: x9 > -2 && x = 2 + x9 25.46/8.74 f_419(x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_423(x21, x22, x23, 0, x24, x25, x26, 1, x27, x28, 3, 2, 4) :|: TRUE && x10 = 0 && x17 = 1 && x18 = 3 && x19 = 2 && x20 = 4 25.46/8.74 f_305(x29) -> f_419(0, x30, x31, x32, x33, 2 + x34, x34, 1, 3, 2, 4) :|: x34 > -2 && x29 = 2 + x34 25.46/8.74 f_305(v513:0) -> f_316(v513:0, v514:0, v516:0, 1, 0, v515:0, v517:0, 3, 4) :|: v513:0 < 1 25.46/8.74 f_305(x35) -> f_388(x36, x37, x38, 0, x39, x40, x41, 1, x42, x43, 3, 2, 6, 4) :|: x44 > -2 && x35 = 2 + x44 25.46/8.74 f_275(v406:0) -> f_292(v406:0, v413:0, v426:0, 1, 0, v407:0, v408:0, v409:0, v410:0, v414:0, v427:0, v412:0, 3, 4) :|: v406:0 < 1 25.46/8.74 f_305(x45) -> f_437(x46, x47, x48, 0, x49, x50, x51, 1, x52, x53, 3, 2, 4) :|: x54 > -2 && x45 = 2 + x54 25.46/8.74 f_419(x55, x56, x57, x58, x59, x60, x61, x62, x63, x64, x65) -> f_409(x60, x56, x58, 0, x61, 1, 0, 1, x57, x59, 3, 2, 4) :|: TRUE && x55 = 0 && x62 = 1 && x63 = 3 && x64 = 2 && x65 = 4 25.46/8.74 f_140 -> f_301(v1:0, v3:0, v5:0, 0, 3 + v1:0, 3 + v3:0, 3, 1, 4) :|: v3:0 > 0 && v1:0 > 0 25.46/8.74 f_275(x66) -> f_416(1, x67, x68, x69, x70, x71, x72, x73, x74, 0, x75, x66, 1 + x66, 3, 4, 2) :|: x66 > 0 25.46/8.74 f_198(v58:0) -> f_305(v58:0) :|: TRUE 25.46/8.74 f_419(x76, x77, x78, x79, x80, x81, x82, x83, x84, x85, x86) -> f_428(x87, x88, x89, 0, x90, x91, x92, 1, x93, x94, 3, 2, 4) :|: TRUE && x76 = 0 && x83 = 1 && x84 = 3 && x85 = 2 && x86 = 4 25.46/8.74 f_305(x95) -> f_338(2 + x96, x97, x98, 0, x96, -1, 1, x99, x100, 3, 2, 4) :|: x96 > -2 && x95 = 2 + x96 25.46/8.74 f_419(x101, x102, x103, x104, x105, x106, x107, x108, x109, x110, x111) -> f_305(0) :|: TRUE && x101 = 0 && x108 = 1 && x109 = 3 && x110 = 2 && x111 = 4 25.46/8.74 f_416(x112, x113, x114, x115, x116, x117, x118, x119, x120, x121, x122, x123, x124, x125, x126, x127) -> f_421(x123, x117, x119, 1, 0, x113, x114, x115, x116, x118, x120, x122, 3, 4) :|: TRUE && x112 = 1 && x121 = 0 && x125 = 3 && x126 = 4 && x127 = 2 25.46/8.74 f_305(x128) -> f_387(x129, x130, x131, 0, x132, x133, x134, 1, x135, x136, 3, 2, 6, 4) :|: x137 > -2 && x128 = 2 + x137 25.46/8.74 f_416(x138, x139, x140, x141, x142, x143, x144, x145, x146, x147, x148, x149, x150, x151, x152, x153) -> f_275(1) :|: TRUE && x138 = 1 && x147 = 0 && x151 = 3 && x152 = 4 && x153 = 2 25.46/8.74 f_305(x154) -> f_362(x155, x156, x157, 0, x158, x159, x160, 1, x161, x162, 3, 2, 4) :|: x163 > -2 && x154 = 2 + x163 25.46/8.74 f_275(x164) -> f_305(1 + x164) :|: x164 > 0 25.46/8.74 f_419(x165, x166, x167, x168, x169, x170, x171, x172, x173, x174, x175) -> f_439(x176, x177, x178, 0, x179, x180, x181, 1, x182, x183, 3, 2, 4) :|: TRUE && x165 = 0 && x172 = 1 && x173 = 3 && x174 = 2 && x175 = 4 25.46/8.74 f_305(x184) -> f_305(x185) :|: x185 > -2 && x184 = 2 + x185 25.46/8.74 f_305(x186) -> f_305(-1) :|: x187 > -2 && x186 = 2 + x187 25.46/8.74 f_305(x188) -> f_337(2 + x189, x190, x191, 0, x189, -1, 1, x192, x193, 3, 2, 4) :|: x189 > -2 && x188 = 2 + x189 25.46/8.74 f_305(x194) -> f_412(x195, x196, x197, 0, x198, x199, x200, 1, x201, x202, 3, 2, 4) :|: x203 > -2 && x194 = 2 + x203 25.46/8.74 f_305(x204) -> f_409(2 + x205, x206, x207, 0, x205, 0, -1, 1, x208, x209, 3, 2, 4) :|: x205 > -2 && x204 = 2 + x205 25.46/8.74 f_305(x210) -> f_436(x211, x212, x213, 0, x214, x215, x216, 1, x217, x218, 3, 2, 4) :|: x219 > -2 && x210 = 2 + x219 25.46/8.74 f_275(x220) -> f_318(x221, x222, x223, 1, 0, x224, x225, 3, 4) :|: x220 > 0 25.46/8.74 f_140 -> f_275(x226) :|: TRUE 25.46/8.74 f_419(x227, x228, x229, x230, x231, x232, x233, x234, x235, x236, x237) -> f_438(x238, x239, x240, 0, x241, x242, x243, 1, x244, x245, 3, 2, 4) :|: TRUE && x227 = 0 && x234 = 1 && x235 = 3 && x236 = 2 && x237 = 4 25.46/8.74 f_305(x246) -> f_363(x247, x248, x249, 0, x250, x251, x252, 1, x253, x254, 3, 2, 4) :|: x255 > -2 && x246 = 2 + x255 25.46/8.74 Start term: f_140 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (50) IRS2T2 (EQUIVALENT) 25.46/8.74 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 25.46/8.74 25.46/8.74 (f_305_16,1) 25.46/8.74 (f_413_16,2) 25.46/8.74 (f_419_16,3) 25.46/8.74 (f_423_16,4) 25.46/8.74 (f_316_16,5) 25.46/8.74 (f_388_16,6) 25.46/8.74 (f_275_16,7) 25.46/8.74 (f_292_16,8) 25.46/8.74 (f_437_16,9) 25.46/8.74 (f_409_16,10) 25.46/8.74 (f_140_16,11) 25.46/8.74 (f_301_16,12) 25.46/8.74 (f_416_16,13) 25.46/8.74 (f_198_16,14) 25.46/8.74 (f_428_16,15) 25.46/8.74 (f_338_16,16) 25.46/8.74 (f_421_16,17) 25.46/8.74 (f_387_16,18) 25.46/8.74 (f_362_16,19) 25.46/8.74 (f_439_16,20) 25.46/8.74 (f_337_16,21) 25.46/8.74 (f_412_16,22) 25.46/8.74 (f_436_16,23) 25.46/8.74 (f_318_16,24) 25.46/8.74 (f_438_16,25) 25.46/8.74 (f_363_16,26) 25.46/8.74 25.46/8.74 ---------------------------------------- 25.46/8.74 25.46/8.74 (51) 25.46/8.74 Obligation: 25.46/8.74 START: 11; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX31 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 assume(oldX31 > -2 && oldX0 = 2 + oldX31); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := oldX24; 25.46/8.74 x10 := oldX25; 25.46/8.74 x11 := oldX26; 25.46/8.74 x12 := oldX27; 25.46/8.74 x13 := oldX28; 25.46/8.74 x14 := oldX29; 25.46/8.74 x15 := oldX30; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX27 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 2; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 4; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX20 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 assume(oldX20 > -2 && oldX0 = 2 + oldX20); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := 2 + oldX20; 25.46/8.74 x6 := oldX0 - 2; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := 3; 25.46/8.74 x9 := 2; 25.46/8.74 x10 := 4; 25.46/8.74 x11 := oldX21; 25.46/8.74 x12 := oldX22; 25.46/8.74 x13 := oldX23; 25.46/8.74 x14 := oldX24; 25.46/8.74 x15 := oldX25; 25.46/8.74 TO: 3; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(oldX0 < 1); 25.46/8.74 x0 := oldX0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := 1; 25.46/8.74 x4 := 0; 25.46/8.74 x5 := oldX18; 25.46/8.74 x6 := oldX19; 25.46/8.74 x7 := 3; 25.46/8.74 x8 := 4; 25.46/8.74 x9 := oldX20; 25.46/8.74 x10 := oldX21; 25.46/8.74 x11 := oldX22; 25.46/8.74 x12 := oldX23; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 5; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX26 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 assume(oldX26 > -2 && oldX0 = 2 + oldX26); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 6; 25.46/8.74 x13 := 4; 25.46/8.74 x14 := oldX24; 25.46/8.74 x15 := oldX25; 25.46/8.74 TO: 6; 25.46/8.74 25.46/8.74 FROM: 7; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(oldX0 < 1); 25.46/8.74 x0 := oldX0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := 1; 25.46/8.74 x4 := 0; 25.46/8.74 x5 := oldX18; 25.46/8.74 x6 := oldX19; 25.46/8.74 x7 := oldX20; 25.46/8.74 x8 := oldX21; 25.46/8.74 x9 := oldX22; 25.46/8.74 x10 := oldX23; 25.46/8.74 x11 := oldX24; 25.46/8.74 x12 := 3; 25.46/8.74 x13 := 4; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 8; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX27 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 9; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := oldX5; 25.46/8.74 x1 := oldX1; 25.46/8.74 x2 := oldX3; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX6; 25.46/8.74 x5 := 1; 25.46/8.74 x6 := 0; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX2; 25.46/8.74 x9 := oldX4; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX16; 25.46/8.74 x14 := oldX17; 25.46/8.74 x15 := oldX18; 25.46/8.74 TO: 10; 25.46/8.74 25.46/8.74 FROM: 11; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 assume(oldX17 > 0 && oldX16 > 0); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := 3 + oldX16; 25.46/8.74 x5 := 3 + oldX17; 25.46/8.74 x6 := 3; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := 4; 25.46/8.74 x9 := oldX19; 25.46/8.74 x10 := oldX20; 25.46/8.74 x11 := oldX21; 25.46/8.74 x12 := oldX22; 25.46/8.74 x13 := oldX23; 25.46/8.74 x14 := oldX24; 25.46/8.74 x15 := oldX25; 25.46/8.74 TO: 12; 25.46/8.74 25.46/8.74 FROM: 7; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 assume(oldX0 > 0); 25.46/8.74 x0 := 1; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := 0; 25.46/8.74 x10 := oldX24; 25.46/8.74 x11 := oldX0; 25.46/8.74 x12 := 1 + oldX0; 25.46/8.74 x13 := 3; 25.46/8.74 x14 := 4; 25.46/8.74 x15 := 2; 25.46/8.74 TO: 13; 25.46/8.74 25.46/8.74 FROM: 14; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 assume(0 = 0); 25.46/8.74 x0 := oldX0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := oldX24; 25.46/8.74 x10 := oldX25; 25.46/8.74 x11 := oldX26; 25.46/8.74 x12 := oldX27; 25.46/8.74 x13 := oldX28; 25.46/8.74 x14 := oldX29; 25.46/8.74 x15 := oldX30; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 15; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := oldX0 - 2; 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 25.46/8.74 x0 := 2 + oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX0 - 2; 25.46/8.74 x5 := -1; 25.46/8.74 x6 := 1; 25.46/8.74 x7 := oldX19; 25.46/8.74 x8 := oldX20; 25.46/8.74 x9 := 3; 25.46/8.74 x10 := 2; 25.46/8.74 x11 := 4; 25.46/8.74 x12 := oldX21; 25.46/8.74 x13 := oldX22; 25.46/8.74 x14 := oldX23; 25.46/8.74 x15 := oldX24; 25.46/8.74 TO: 16; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := 0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := oldX24; 25.46/8.74 x10 := oldX25; 25.46/8.74 x11 := oldX26; 25.46/8.74 x12 := oldX27; 25.46/8.74 x13 := oldX28; 25.46/8.74 x14 := oldX29; 25.46/8.74 x15 := oldX30; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 13; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 4 && oldX15 = 2); 25.46/8.74 x0 := oldX11; 25.46/8.74 x1 := oldX5; 25.46/8.74 x2 := oldX7; 25.46/8.74 x3 := 1; 25.46/8.74 x4 := 0; 25.46/8.74 x5 := oldX1; 25.46/8.74 x6 := oldX2; 25.46/8.74 x7 := oldX3; 25.46/8.74 x8 := oldX4; 25.46/8.74 x9 := oldX6; 25.46/8.74 x10 := oldX8; 25.46/8.74 x11 := oldX10; 25.46/8.74 x12 := 3; 25.46/8.74 x13 := 4; 25.46/8.74 x14 := oldX16; 25.46/8.74 x15 := oldX17; 25.46/8.74 TO: 17; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX26 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 assume(oldX26 > -2 && oldX0 = 2 + oldX26); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 6; 25.46/8.74 x13 := 4; 25.46/8.74 x14 := oldX24; 25.46/8.74 x15 := oldX25; 25.46/8.74 TO: 18; 25.46/8.74 25.46/8.74 FROM: 13; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 1 && oldX9 = 0 && oldX13 = 3 && oldX14 = 4 && oldX15 = 2); 25.46/8.74 x0 := 1; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := oldX24; 25.46/8.74 x10 := oldX25; 25.46/8.74 x11 := oldX26; 25.46/8.74 x12 := oldX27; 25.46/8.74 x13 := oldX28; 25.46/8.74 x14 := oldX29; 25.46/8.74 x15 := oldX30; 25.46/8.74 TO: 7; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX27 := oldX0 - 2; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 19; 25.46/8.74 25.46/8.74 FROM: 7; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 assume(oldX0 > 0); 25.46/8.74 x0 := 1 + oldX0; 25.46/8.74 x1 := oldX16; 25.46/8.74 x2 := oldX17; 25.46/8.74 x3 := oldX18; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := oldX22; 25.46/8.74 x8 := oldX23; 25.46/8.74 x9 := oldX24; 25.46/8.74 x10 := oldX25; 25.46/8.74 x11 := oldX26; 25.46/8.74 x12 := oldX27; 25.46/8.74 x13 := oldX28; 25.46/8.74 x14 := oldX29; 25.46/8.74 x15 := oldX30; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 3; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := nondet(); 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.74 x0 := oldX16; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := 0; 25.46/8.74 x4 := oldX19; 25.46/8.74 x5 := oldX20; 25.46/8.74 x6 := oldX21; 25.46/8.74 x7 := 1; 25.46/8.74 x8 := oldX22; 25.46/8.74 x9 := oldX23; 25.46/8.74 x10 := 3; 25.46/8.74 x11 := 2; 25.46/8.74 x12 := 4; 25.46/8.74 x13 := oldX24; 25.46/8.74 x14 := oldX25; 25.46/8.74 x15 := oldX26; 25.46/8.74 TO: 20; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.74 oldX9 := x9; 25.46/8.74 oldX10 := x10; 25.46/8.74 oldX11 := x11; 25.46/8.74 oldX12 := x12; 25.46/8.74 oldX13 := x13; 25.46/8.74 oldX14 := x14; 25.46/8.74 oldX15 := x15; 25.46/8.74 oldX16 := oldX0 - 2; 25.46/8.74 oldX17 := nondet(); 25.46/8.74 oldX18 := nondet(); 25.46/8.74 oldX19 := nondet(); 25.46/8.74 oldX20 := nondet(); 25.46/8.74 oldX21 := nondet(); 25.46/8.74 oldX22 := nondet(); 25.46/8.74 oldX23 := nondet(); 25.46/8.74 oldX24 := nondet(); 25.46/8.74 oldX25 := nondet(); 25.46/8.74 oldX26 := nondet(); 25.46/8.74 oldX27 := nondet(); 25.46/8.74 oldX28 := nondet(); 25.46/8.74 oldX29 := nondet(); 25.46/8.74 oldX30 := nondet(); 25.46/8.74 oldX31 := nondet(); 25.46/8.74 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 25.46/8.74 x0 := oldX0 - 2; 25.46/8.74 x1 := oldX17; 25.46/8.74 x2 := oldX18; 25.46/8.74 x3 := oldX19; 25.46/8.74 x4 := oldX20; 25.46/8.74 x5 := oldX21; 25.46/8.74 x6 := oldX22; 25.46/8.74 x7 := oldX23; 25.46/8.74 x8 := oldX24; 25.46/8.74 x9 := oldX25; 25.46/8.74 x10 := oldX26; 25.46/8.74 x11 := oldX27; 25.46/8.74 x12 := oldX28; 25.46/8.74 x13 := oldX29; 25.46/8.74 x14 := oldX30; 25.46/8.74 x15 := oldX31; 25.46/8.74 TO: 1; 25.46/8.74 25.46/8.74 FROM: 1; 25.46/8.74 oldX0 := x0; 25.46/8.74 oldX1 := x1; 25.46/8.74 oldX2 := x2; 25.46/8.74 oldX3 := x3; 25.46/8.74 oldX4 := x4; 25.46/8.74 oldX5 := x5; 25.46/8.74 oldX6 := x6; 25.46/8.74 oldX7 := x7; 25.46/8.74 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX31 := oldX0 - 2; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 oldX27 := nondet(); 25.46/8.75 oldX28 := nondet(); 25.46/8.75 oldX29 := nondet(); 25.46/8.75 oldX30 := nondet(); 25.46/8.75 assume(oldX31 > -2 && oldX0 = 2 + oldX31); 25.46/8.75 x0 := -1; 25.46/8.75 x1 := oldX16; 25.46/8.75 x2 := oldX17; 25.46/8.75 x3 := oldX18; 25.46/8.75 x4 := oldX19; 25.46/8.75 x5 := oldX20; 25.46/8.75 x6 := oldX21; 25.46/8.75 x7 := oldX22; 25.46/8.75 x8 := oldX23; 25.46/8.75 x9 := oldX24; 25.46/8.75 x10 := oldX25; 25.46/8.75 x11 := oldX26; 25.46/8.75 x12 := oldX27; 25.46/8.75 x13 := oldX28; 25.46/8.75 x14 := oldX29; 25.46/8.75 x15 := oldX30; 25.46/8.75 TO: 1; 25.46/8.75 25.46/8.75 FROM: 1; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX16 := oldX0 - 2; 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 25.46/8.75 x0 := 2 + oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX0 - 2; 25.46/8.75 x5 := -1; 25.46/8.75 x6 := 1; 25.46/8.75 x7 := oldX19; 25.46/8.75 x8 := oldX20; 25.46/8.75 x9 := 3; 25.46/8.75 x10 := 2; 25.46/8.75 x11 := 4; 25.46/8.75 x12 := oldX21; 25.46/8.75 x13 := oldX22; 25.46/8.75 x14 := oldX23; 25.46/8.75 x15 := oldX24; 25.46/8.75 TO: 21; 25.46/8.75 25.46/8.75 FROM: 1; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX27 := oldX0 - 2; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX19; 25.46/8.75 x5 := oldX20; 25.46/8.75 x6 := oldX21; 25.46/8.75 x7 := 1; 25.46/8.75 x8 := oldX22; 25.46/8.75 x9 := oldX23; 25.46/8.75 x10 := 3; 25.46/8.75 x11 := 2; 25.46/8.75 x12 := 4; 25.46/8.75 x13 := oldX24; 25.46/8.75 x14 := oldX25; 25.46/8.75 x15 := oldX26; 25.46/8.75 TO: 22; 25.46/8.75 25.46/8.75 FROM: 1; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX16 := oldX0 - 2; 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 assume(oldX16 > -2 && oldX0 = 2 + oldX16); 25.46/8.75 x0 := 2 + oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX0 - 2; 25.46/8.75 x5 := 0; 25.46/8.75 x6 := -1; 25.46/8.75 x7 := 1; 25.46/8.75 x8 := oldX19; 25.46/8.75 x9 := oldX20; 25.46/8.75 x10 := 3; 25.46/8.75 x11 := 2; 25.46/8.75 x12 := 4; 25.46/8.75 x13 := oldX21; 25.46/8.75 x14 := oldX22; 25.46/8.75 x15 := oldX23; 25.46/8.75 TO: 10; 25.46/8.75 25.46/8.75 FROM: 1; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX27 := oldX0 - 2; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX19; 25.46/8.75 x5 := oldX20; 25.46/8.75 x6 := oldX21; 25.46/8.75 x7 := 1; 25.46/8.75 x8 := oldX22; 25.46/8.75 x9 := oldX23; 25.46/8.75 x10 := 3; 25.46/8.75 x11 := 2; 25.46/8.75 x12 := 4; 25.46/8.75 x13 := oldX24; 25.46/8.75 x14 := oldX25; 25.46/8.75 x15 := oldX26; 25.46/8.75 TO: 23; 25.46/8.75 25.46/8.75 FROM: 7; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 oldX27 := nondet(); 25.46/8.75 assume(oldX0 > 0); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 1; 25.46/8.75 x4 := 0; 25.46/8.75 x5 := oldX19; 25.46/8.75 x6 := oldX20; 25.46/8.75 x7 := 3; 25.46/8.75 x8 := 4; 25.46/8.75 x9 := oldX21; 25.46/8.75 x10 := oldX22; 25.46/8.75 x11 := oldX23; 25.46/8.75 x12 := oldX24; 25.46/8.75 x13 := oldX25; 25.46/8.75 x14 := oldX26; 25.46/8.75 x15 := oldX27; 25.46/8.75 TO: 24; 25.46/8.75 25.46/8.75 FROM: 11; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 oldX27 := nondet(); 25.46/8.75 oldX28 := nondet(); 25.46/8.75 oldX29 := nondet(); 25.46/8.75 oldX30 := nondet(); 25.46/8.75 oldX31 := nondet(); 25.46/8.75 assume(0 = 0); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := oldX19; 25.46/8.75 x4 := oldX20; 25.46/8.75 x5 := oldX21; 25.46/8.75 x6 := oldX22; 25.46/8.75 x7 := oldX23; 25.46/8.75 x8 := oldX24; 25.46/8.75 x9 := oldX25; 25.46/8.75 x10 := oldX26; 25.46/8.75 x11 := oldX27; 25.46/8.75 x12 := oldX28; 25.46/8.75 x13 := oldX29; 25.46/8.75 x14 := oldX30; 25.46/8.75 x15 := oldX31; 25.46/8.75 TO: 7; 25.46/8.75 25.46/8.75 FROM: 3; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 assume(0 = 0 && oldX0 = 0 && oldX7 = 1 && oldX8 = 3 && oldX9 = 2 && oldX10 = 4); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX19; 25.46/8.75 x5 := oldX20; 25.46/8.75 x6 := oldX21; 25.46/8.75 x7 := 1; 25.46/8.75 x8 := oldX22; 25.46/8.75 x9 := oldX23; 25.46/8.75 x10 := 3; 25.46/8.75 x11 := 2; 25.46/8.75 x12 := 4; 25.46/8.75 x13 := oldX24; 25.46/8.75 x14 := oldX25; 25.46/8.75 x15 := oldX26; 25.46/8.75 TO: 25; 25.46/8.75 25.46/8.75 FROM: 1; 25.46/8.75 oldX0 := x0; 25.46/8.75 oldX1 := x1; 25.46/8.75 oldX2 := x2; 25.46/8.75 oldX3 := x3; 25.46/8.75 oldX4 := x4; 25.46/8.75 oldX5 := x5; 25.46/8.75 oldX6 := x6; 25.46/8.75 oldX7 := x7; 25.46/8.75 oldX8 := x8; 25.46/8.75 oldX9 := x9; 25.46/8.75 oldX10 := x10; 25.46/8.75 oldX11 := x11; 25.46/8.75 oldX12 := x12; 25.46/8.75 oldX13 := x13; 25.46/8.75 oldX14 := x14; 25.46/8.75 oldX15 := x15; 25.46/8.75 oldX27 := oldX0 - 2; 25.46/8.75 oldX16 := nondet(); 25.46/8.75 oldX17 := nondet(); 25.46/8.75 oldX18 := nondet(); 25.46/8.75 oldX19 := nondet(); 25.46/8.75 oldX20 := nondet(); 25.46/8.75 oldX21 := nondet(); 25.46/8.75 oldX22 := nondet(); 25.46/8.75 oldX23 := nondet(); 25.46/8.75 oldX24 := nondet(); 25.46/8.75 oldX25 := nondet(); 25.46/8.75 oldX26 := nondet(); 25.46/8.75 assume(oldX27 > -2 && oldX0 = 2 + oldX27); 25.46/8.75 x0 := oldX16; 25.46/8.75 x1 := oldX17; 25.46/8.75 x2 := oldX18; 25.46/8.75 x3 := 0; 25.46/8.75 x4 := oldX19; 25.46/8.75 x5 := oldX20; 25.46/8.75 x6 := oldX21; 25.46/8.75 x7 := 1; 25.46/8.75 x8 := oldX22; 25.46/8.75 x9 := oldX23; 25.46/8.75 x10 := 3; 25.46/8.75 x11 := 2; 25.46/8.75 x12 := 4; 25.46/8.75 x13 := oldX24; 25.46/8.75 x14 := oldX25; 25.46/8.75 x15 := oldX26; 25.46/8.75 TO: 26; 25.46/8.75 25.46/8.75 25.46/8.75 ---------------------------------------- 25.46/8.75 25.46/8.75 (52) T2 (COMPLETE) 25.46/8.75 Found this recurrent set for cutpoint 31: oldX0 == 1 and oldX16 == 1 and x0 == 1 and x11 == 1 and x12 == 2 and x13 == 3 and x14 == 4 and x15 == 2 and x9 == 0 25.46/8.75 25.46/8.75 ---------------------------------------- 25.46/8.75 25.46/8.75 (53) 25.46/8.75 NO 25.60/8.79 EOF