53.22/17.81 YES 53.22/17.83 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 53.22/17.83 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 53.22/17.83 53.22/17.83 53.22/17.83 Termination of the given C Problem could be proven: 53.22/17.83 53.22/17.83 (0) C Problem 53.22/17.83 (1) CToLLVMProof [EQUIVALENT, 174 ms] 53.22/17.83 (2) LLVM problem 53.22/17.83 (3) LLVMToTerminationGraphProof [EQUIVALENT, 10.8 s] 53.22/17.83 (4) LLVM Symbolic Execution Graph 53.22/17.83 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 53.22/17.83 (6) AND 53.22/17.83 (7) LLVM Symbolic Execution SCC 53.22/17.83 (8) SCC2IRS [SOUND, 152 ms] 53.22/17.83 (9) IntTRS 53.22/17.83 (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] 53.22/17.83 (11) IntTRS 53.22/17.83 (12) RankingReductionPairProof [EQUIVALENT, 27 ms] 53.22/17.83 (13) YES 53.22/17.83 (14) LLVM Symbolic Execution SCC 53.22/17.83 (15) SCC2IRS [SOUND, 182 ms] 53.22/17.83 (16) IntTRS 53.22/17.83 (17) IRS2T2 [EQUIVALENT, 0 ms] 53.22/17.83 (18) T2IntSys 53.22/17.83 (19) T2 [EQUIVALENT, 1014 ms] 53.22/17.83 (20) YES 53.22/17.83 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (0) 53.22/17.83 Obligation: 53.22/17.83 c file /export/starexec/sandbox/benchmark/theBenchmark.c 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (1) CToLLVMProof (EQUIVALENT) 53.22/17.83 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (2) 53.22/17.83 Obligation: 53.22/17.83 LLVM Problem 53.22/17.83 53.22/17.83 Aliases: 53.22/17.83 53.22/17.83 Data layout: 53.22/17.83 53.22/17.83 "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" 53.22/17.83 53.22/17.83 Machine: 53.22/17.83 53.22/17.83 "x86_64-pc-linux-gnu" 53.22/17.83 53.22/17.83 Type definitions: 53.22/17.83 53.22/17.83 Global variables: 53.22/17.83 53.22/17.83 Function declarations and definitions: 53.22/17.83 53.22/17.83 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 53.22/17.83 *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 53.22/17.83 0: 53.22/17.83 %1 = alloca i32, align 4 53.22/17.83 store %cond, %1 53.22/17.83 %2 = load %1 53.22/17.83 %3 = icmp ne %2 0 53.22/17.83 br %3, %6, %4 53.22/17.83 4: 53.22/17.83 br %5 53.22/17.83 5: 53.22/17.83 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 53.22/17.83 unreachable 53.22/17.83 6: 53.22/17.83 ret void 53.22/17.83 53.22/17.83 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 53.22/17.83 0: 53.22/17.83 %1 = alloca i32, align 4 53.22/17.83 %password = alloca [100000 x i32], align 16 53.22/17.83 %guess = alloca [100000 x i32], align 16 53.22/17.83 %i = alloca i32, align 4 53.22/17.83 %result = alloca i32, align 4 53.22/17.83 %x = alloca i32, align 4 53.22/17.83 store 0, %1 53.22/17.83 store 1, %result 53.22/17.83 store 0, %i 53.22/17.83 br %2 53.22/17.83 2: 53.22/17.83 %3 = load %i 53.22/17.83 %4 = icmp slt %3 100000 53.22/17.83 br %4, %5, %20 53.22/17.83 5: 53.22/17.83 %6 = load %i 53.22/17.83 %7 = sext i32 %6 to i64 53.22/17.83 %8 = getelementptr %password, 0, %7 53.22/17.83 %9 = load %8 53.22/17.83 %10 = load %i 53.22/17.83 %11 = sext i32 %10 to i64 53.22/17.83 %12 = getelementptr %guess, 0, %11 53.22/17.83 %13 = load %12 53.22/17.83 %14 = icmp ne %9 %13 53.22/17.83 br %14, %15, %16 53.22/17.83 15: 53.22/17.83 store 0, %result 53.22/17.83 br %16 53.22/17.83 16: 53.22/17.83 br %17 53.22/17.83 17: 53.22/17.83 %18 = load %i 53.22/17.83 %19 = add %18 1 53.22/17.83 store %19, %i 53.22/17.83 br %2 53.22/17.83 20: 53.22/17.83 %21 = load %result 53.22/17.83 %22 = icmp ne %21 0 53.22/17.83 br %22, %23, %42 53.22/17.83 23: 53.22/17.83 store 0, %x 53.22/17.83 br %24 53.22/17.83 24: 53.22/17.83 %25 = load %x 53.22/17.83 %26 = icmp slt %25 100000 53.22/17.83 br %26, %27, %41 53.22/17.83 27: 53.22/17.83 %28 = load %x 53.22/17.83 %29 = sext i32 %28 to i64 53.22/17.83 %30 = getelementptr %password, 0, %29 53.22/17.83 %31 = load %30 53.22/17.83 %32 = load %x 53.22/17.83 %33 = sext i32 %32 to i64 53.22/17.83 %34 = getelementptr %guess, 0, %33 53.22/17.83 %35 = load %34 53.22/17.83 %36 = icmp eq %31 %35 53.22/17.83 %37 = zext i1 %36 to i32 53.22/17.83 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %37) 53.22/17.83 br %38 53.22/17.83 38: 53.22/17.83 %39 = load %x 53.22/17.83 %40 = add %39 1 53.22/17.83 store %40, %x 53.22/17.83 br %24 53.22/17.83 41: 53.22/17.83 br %42 53.22/17.83 42: 53.22/17.83 ret 0 53.22/17.83 53.22/17.83 53.22/17.83 Analyze Termination of all function calls matching the pattern: 53.22/17.83 main() 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (3) LLVMToTerminationGraphProof (EQUIVALENT) 53.22/17.83 Constructed symbolic execution graph for LLVM program and proved memory safety. 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (4) 53.22/17.83 Obligation: 53.22/17.83 SE Graph 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (5) SymbolicExecutionGraphToSCCProof (SOUND) 53.22/17.83 Splitted symbolic execution graph to 2 SCCs. 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (6) 53.22/17.83 Complex Obligation (AND) 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (7) 53.22/17.83 Obligation: 53.22/17.83 SCC 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (8) SCC2IRS (SOUND) 53.22/17.83 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 53.22/17.83 Generated rules. Obtained 28 rulesP rules: 53.22/17.83 f_899(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 4, 400000) -> f_900(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) :|: v2361 < 100000 && v2357 <= 99998 53.22/17.83 f_900(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) -> f_902(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) :|: 0 = 0 53.22/17.83 f_902(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) -> f_904(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) :|: TRUE 53.22/17.83 f_904(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) -> f_906(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) :|: 0 = 0 53.22/17.83 f_906(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) -> f_908(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2358, v2359, v2357, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) :|: 0 = 0 53.22/17.83 f_908(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2358, v2359, v2357, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 99998, 4, 400000) -> f_909(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2359, v2357, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) :|: v2407 = v2345 + 4 * v2361 && 5 <= v2407 53.22/17.83 f_909(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2359, v2357, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) -> f_910(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2357, v2360, v2359, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_910(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2357, v2360, v2359, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) -> f_911(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2357, v2360, v2359, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_911(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2357, v2360, v2359, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) -> f_912(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2360, v2359, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_912(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2360, v2359, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, 3, 399999, 4, 99998, 400000, 5) -> f_913(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2410, v2359, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2360, 3, 399999, 4, 99998, 400000, 5) :|: v2410 = v2346 + 4 * v2361 && 5 <= v2410 53.22/17.83 f_913(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2410, v2359, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_914(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2410, v2411, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_914(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2408, v2410, v2411, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_915(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: v2408 = v2411 53.22/17.83 f_915(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_917(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_917(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_919(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_919(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_921(1, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_921(1, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_923(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: 1 <= v2426 && v2427 = 3 + v2426 && 4 <= v2427 53.22/17.83 f_923(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_925(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_925(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_927(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_927(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_929(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 53.22/17.83 f_929(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_931(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_931(1, v2426, v2344, v2362, v2345, v2363, v2346, v2364, v2347, v2365, v2348, v2366, v2349, v2367, v2427, 0, v2368, 100000, v2361, v2353, v2354, v2355, v2358, v2359, v2360, v2407, v2411, v2410, 99999, v2357, 3, 399999, 4, 99998, 400000, 5) -> f_933(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_933(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_935(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 53.22/17.83 f_935(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2357, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 99998, 400000, 5) -> f_937(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5) :|: 0 = 0 53.22/17.83 f_937(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5) -> f_938(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) :|: v2430 = 1 + v2361 && 2 <= v2430 && v2430 <= 100000 53.22/17.83 f_938(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) -> f_939(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) :|: TRUE 53.22/17.83 f_939(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) -> f_940(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) :|: TRUE 53.22/17.83 f_940(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, v2358, v2359, v2360, 3, 399999, 4, 400000, 5, 2) -> f_898(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2407, v2411, v2410, v2430, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 4, 400000) :|: TRUE 53.22/17.83 f_898(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2357, v2358, v2359, v2360, v2361, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 4, 400000) -> f_899(v2344, v2345, v2346, v2347, v2348, v2349, 100000, 0, 99999, v2353, v2354, v2355, 1, v2361, v2357, v2358, v2359, v2360, v2362, v2363, v2364, v2365, v2366, v2367, v2368, 3, 399999, 4, 400000) :|: 0 = 0 53.22/17.83 Combined rules. Obtained 1 rulesP rules: 53.22/17.83 f_899(v2344:0, v2345:0, v2346:0, v2347:0, v2348:0, v2349:0, 100000, 0, 99999, v2353:0, v2354:0, v2355:0, 1, v2361:0, v2357:0, v2358:0, v2359:0, v2360:0, v2362:0, v2363:0, v2364:0, v2365:0, v2366:0, v2367:0, v2368:0, 3, 399999, 4, 400000) -> f_899(v2344:0, v2345:0, v2346:0, v2347:0, v2348:0, v2349:0, 100000, 0, 99999, v2353:0, v2354:0, v2355:0, 1, 1 + v2361:0, v2361:0, v2345:0 + 4 * v2361:0, v2408:0, v2346:0 + 4 * v2361:0, v2362:0, v2363:0, v2364:0, v2365:0, v2366:0, v2367:0, v2368:0, 3, 399999, 4, 400000) :|: v2357:0 < 99999 && v2361:0 < 100000 && v2345:0 + 4 * v2361:0 > 4 && v2346:0 + 4 * v2361:0 > 4 && v2426:0 > 0 && v2361:0 > 0 53.22/17.83 Filtered unneeded arguments: 53.22/17.83 f_899(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29) -> f_899(x2, x3, x14, x15) 53.22/17.83 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 53.22/17.83 f_899(v2345:0, v2346:0, v2361:0, v2357:0) -> f_899(v2345:0, v2346:0, 1 + v2361:0, v2361:0) :|: v2361:0 < 100000 && v2357:0 < 99999 && v2345:0 + 4 * v2361:0 > 4 && v2361:0 > 0 && v2346:0 + 4 * v2361:0 > 4 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (9) 53.22/17.83 Obligation: 53.22/17.83 Rules: 53.22/17.83 f_899(v2345:0, v2346:0, v2361:0, v2357:0) -> f_899(v2345:0, v2346:0, 1 + v2361:0, v2361:0) :|: v2361:0 < 100000 && v2357:0 < 99999 && v2345:0 + 4 * v2361:0 > 4 && v2361:0 > 0 && v2346:0 + 4 * v2361:0 > 4 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (10) IntTRSCompressionProof (EQUIVALENT) 53.22/17.83 Compressed rules. 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (11) 53.22/17.83 Obligation: 53.22/17.83 Rules: 53.22/17.83 f_899(v2345:0:0, v2346:0:0, v2361:0:0, v2357:0:0) -> f_899(v2345:0:0, v2346:0:0, 1 + v2361:0:0, v2361:0:0) :|: v2361:0:0 > 0 && v2346:0:0 + 4 * v2361:0:0 > 4 && v2345:0:0 + 4 * v2361:0:0 > 4 && v2357:0:0 < 99999 && v2361:0:0 < 100000 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (12) RankingReductionPairProof (EQUIVALENT) 53.22/17.83 Interpretation: 53.22/17.83 [ f_899 ] = -1*f_899_3 53.22/17.83 53.22/17.83 The following rules are decreasing: 53.22/17.83 f_899(v2345:0:0, v2346:0:0, v2361:0:0, v2357:0:0) -> f_899(v2345:0:0, v2346:0:0, 1 + v2361:0:0, v2361:0:0) :|: v2361:0:0 > 0 && v2346:0:0 + 4 * v2361:0:0 > 4 && v2345:0:0 + 4 * v2361:0:0 > 4 && v2357:0:0 < 99999 && v2361:0:0 < 100000 53.22/17.83 53.22/17.83 The following rules are bounded: 53.22/17.83 f_899(v2345:0:0, v2346:0:0, v2361:0:0, v2357:0:0) -> f_899(v2345:0:0, v2346:0:0, 1 + v2361:0:0, v2361:0:0) :|: v2361:0:0 > 0 && v2346:0:0 + 4 * v2361:0:0 > 4 && v2345:0:0 + 4 * v2361:0:0 > 4 && v2357:0:0 < 99999 && v2361:0:0 < 100000 53.22/17.83 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (13) 53.22/17.83 YES 53.22/17.83 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (14) 53.22/17.83 Obligation: 53.22/17.83 SCC 53.22/17.83 ---------------------------------------- 53.22/17.83 53.22/17.83 (15) SCC2IRS (SOUND) 53.22/17.83 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 53.22/17.83 Generated rules. Obtained 58 rulesP rules: 53.22/17.83 f_566(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99999, 100000, 4, 400000) -> f_569(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) :|: v1386 < 100000 && v1380 <= 99998 53.22/17.83 f_569(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) -> f_573(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.83 f_573(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) -> f_577(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) :|: TRUE 53.22/17.83 f_577(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) -> f_581(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.83 f_581(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) -> f_585(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1382, v1383, v1380, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.83 f_585(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1382, v1383, v1380, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99998, 99999, 4, 400000) -> f_590(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1383, v1380, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1471 = v1375 + 4 * v1386 && 5 <= v1471 53.22/17.83 f_590(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1383, v1380, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_595(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1380, v1384, v1383, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.83 f_595(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1380, v1384, v1383, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_599(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1380, v1384, v1383, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.83 f_599(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1380, v1384, v1383, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_603(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1384, v1383, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.83 f_603(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1384, v1383, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_606(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1383, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1544 = v1376 + 4 * v1386 && 5 <= v1544 53.22/17.83 f_606(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1383, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_610(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.83 f_610(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_614(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1507 != v1545 53.22/17.84 f_610(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_615(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1507 = v1545 53.22/17.84 f_614(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_619(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, v1380, v1387, v1388, v1389, v1390, v1391, v1392, 0, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_619(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, v1380, v1387, v1388, v1389, v1390, v1391, v1392, 0, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_624(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, v1380, v1387, v1388, v1389, v1390, v1391, v1392, 0, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_624(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, v1380, v1387, v1388, v1389, v1390, v1391, v1392, 0, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_665(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1507, v1544, v1545, v1380, v1387, v1388, v1389, v1390, v1391, v1392, 0, v1393, v1394, v1395, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 53.22/17.84 f_665(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, v1734, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_669(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 53.22/17.84 f_669(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_673(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 53.22/17.84 f_673(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_677(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 53.22/17.84 f_677(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1724, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_681(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000) :|: 0 = 0 53.22/17.84 f_681(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000) -> f_685(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: v1857 = 1 + v1718 && 2 <= v1857 && v1857 <= 100000 53.22/17.84 f_685(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_689(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: TRUE 53.22/17.84 f_689(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_692(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: TRUE 53.22/17.84 f_692(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_602(v1712, v1713, v1714, v1715, v1716, v1717, v1718, 1, v1720, v1721, v1722, v1723, v1857, v1725, v1726, v1727, v1728, v1729, v1730, 0, v1732, v1733, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 53.22/17.84 f_602(v1510, v1511, v1512, v1513, v1514, v1515, v1516, 1, v1518, v1519, v1520, v1521, v1522, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99999, 100000, 4, 400000) -> f_605(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99999, 100000, 4, 400000) :|: 0 = 0 53.22/17.84 f_605(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99999, 100000, 4, 400000) -> f_608(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) :|: v1522 < 100000 && v1516 <= 99998 53.22/17.84 f_608(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) -> f_612(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.84 f_612(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) -> f_617(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) :|: TRUE 53.22/17.84 f_617(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) -> f_622(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.84 f_622(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1516, v1518, v1519, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) -> f_627(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1518, v1519, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 53.22/17.84 f_627(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1518, v1519, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 3, 399999, 99998, 99999, 4, 400000) -> f_632(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1519, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1585 = v1511 + 4 * v1522 && 5 <= v1585 53.22/17.84 f_632(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1519, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_637(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_637(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_641(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_641(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1516, v1520, v1521, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_645(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1520, v1521, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_645(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1520, v1521, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_649(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1521, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1674 = v1512 + 4 * v1522 && 5 <= v1674 53.22/17.84 f_649(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1521, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_652(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_652(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_656(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1617 != v1676 53.22/17.84 f_652(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_657(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1617 = v1676 53.22/17.84 f_656(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_660(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_660(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_664(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_664(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_665(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1617, v1674, v1676, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, 0, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 53.22/17.84 f_657(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, v1516, v1523, v1524, v1525, v1526, v1527, v1528, 0, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_661(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_661(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_666(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_666(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_670(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_670(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1516, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_674(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_674(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5) -> f_678(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: v1855 = 1 + v1522 && 2 <= v1855 && v1855 <= 100000 53.22/17.84 f_678(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_682(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 53.22/17.84 f_682(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_686(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 53.22/17.84 f_686(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, v1518, v1519, v1520, v1521, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_563(v1510, v1511, v1512, v1513, v1514, v1515, v1522, 1, v1585, v1676, v1674, 0, v1855, v1523, v1524, v1525, v1526, v1527, v1528, v1530, v1531, 0, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 53.22/17.84 f_563(v1374, v1375, v1376, v1377, v1378, v1379, v1380, 1, v1382, v1383, v1384, 0, v1386, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99999, 100000, 4, 400000) -> f_566(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1380, v1382, v1383, v1384, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99999, 100000, 4, 400000) :|: 0 = 0 53.22/17.84 f_615(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_620(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_620(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_625(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_625(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_630(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 53.22/17.84 f_630(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1380, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_635(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5) :|: 0 = 0 53.22/17.84 f_635(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5) -> f_639(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: v1637 = 1 + v1386 && 2 <= v1637 && v1637 <= 100000 53.22/17.84 f_639(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_643(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 53.22/17.84 f_643(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_647(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 53.22/17.84 f_647(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, v1382, v1383, v1384, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_563(v1374, v1375, v1376, v1377, v1378, v1379, v1386, 1, v1471, v1545, v1544, 0, v1637, v1387, v1388, v1389, v1390, v1391, v1392, v1393, v1394, v1395, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 53.22/17.84 Combined rules. Obtained 6 rulesP rules: 53.22/17.84 f_652(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, v1522:0, 1, v1585:0, v1617:0, v1674:0, v1617:0, v1516:0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, 0, v1530:0, v1531:0, v1518:0, v1519:0, v1520:0, v1521:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_566(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, 1 + v1522:0, 1, v1522:0, v1585:0, v1617:0, v1674:0, 0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, v1530:0, v1531:0, 0, 3, 399999, 99999, 100000, 4, 400000) :|: v1522:0 < 100000 && v1522:0 > 0 53.22/17.84 f_566(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, v1386:0, 1, v1380:0, v1382:0, v1383:0, v1384:0, 0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, v1393:0, v1394:0, v1395:0, 3, 399999, 99999, 100000, 4, 400000) -> f_566(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, 1 + v1386:0, 1, v1386:0, v1375:0 + 4 * v1386:0, v1507:0, v1376:0 + 4 * v1386:0, 0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, v1393:0, v1394:0, v1395:0, 3, 399999, 99999, 100000, 4, 400000) :|: v1380:0 < 99999 && v1386:0 < 100000 && v1375:0 + 4 * v1386:0 > 4 && v1376:0 + 4 * v1386:0 > 4 && v1386:0 > 0 53.22/17.84 f_566(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, v1386:0, 1, v1380:0, v1382:0, v1383:0, v1384:0, 0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, v1393:0, v1394:0, v1395:0, 3, 399999, 99999, 100000, 4, 400000) -> f_652(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, 1 + v1386:0, 1, v1375:0 + 4 * (1 + v1386:0), v1617:0, v1376:0 + 4 * (1 + v1386:0), v1676:0, v1386:0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, 0, v1393:0, v1394:0, v1375:0 + 4 * v1386:0, v1507:0, v1376:0 + 4 * v1386:0, v1545:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1380:0 < 99999 && v1386:0 < 100000 && v1375:0 + 4 * v1386:0 > 4 && v1376:0 + 4 * v1386:0 > 4 && v1545:0 > v1507:0 && v1386:0 > 0 && v1386:0 < 99999 && v1376:0 + 4 * (1 + v1386:0) > 4 && v1375:0 + 4 * (1 + v1386:0) > 4 53.22/17.84 f_566(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, v1386:0, 1, v1380:0, v1382:0, v1383:0, v1384:0, 0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, v1393:0, v1394:0, v1395:0, 3, 399999, 99999, 100000, 4, 400000) -> f_652(v1374:0, v1375:0, v1376:0, v1377:0, v1378:0, v1379:0, 1 + v1386:0, 1, v1375:0 + 4 * (1 + v1386:0), v1617:0, v1376:0 + 4 * (1 + v1386:0), v1676:0, v1386:0, v1387:0, v1388:0, v1389:0, v1390:0, v1391:0, v1392:0, 0, v1393:0, v1394:0, v1375:0 + 4 * v1386:0, v1507:0, v1376:0 + 4 * v1386:0, v1545:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1380:0 < 99999 && v1386:0 < 100000 && v1375:0 + 4 * v1386:0 > 4 && v1376:0 + 4 * v1386:0 > 4 && v1545:0 < v1507:0 && v1386:0 > 0 && v1386:0 < 99999 && v1376:0 + 4 * (1 + v1386:0) > 4 && v1375:0 + 4 * (1 + v1386:0) > 4 53.22/17.84 f_652(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, v1522:0, 1, v1585:0, v1617:0, v1674:0, v1676:0, v1516:0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, 0, v1530:0, v1531:0, v1518:0, v1519:0, v1520:0, v1521:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_652(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, 1 + v1522:0, 1, v1511:0 + 4 * (1 + v1522:0), v1617:1, v1512:0 + 4 * (1 + v1522:0), v1676:1, v1522:0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, 0, v1530:0, v1531:0, v1585:0, v1617:0, v1674:0, v1676:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1522:0 > 0 && v1522:0 < 100000 && v1522:0 < 99999 && v1511:0 + 4 * (1 + v1522:0) > 4 && v1676:0 > v1617:0 && v1512:0 + 4 * (1 + v1522:0) > 4 53.22/17.84 f_652(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, v1522:0, 1, v1585:0, v1617:0, v1674:0, v1676:0, v1516:0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, 0, v1530:0, v1531:0, v1518:0, v1519:0, v1520:0, v1521:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_652(v1510:0, v1511:0, v1512:0, v1513:0, v1514:0, v1515:0, 1 + v1522:0, 1, v1511:0 + 4 * (1 + v1522:0), v1617:1, v1512:0 + 4 * (1 + v1522:0), v1676:1, v1522:0, v1523:0, v1524:0, v1525:0, v1526:0, v1527:0, v1528:0, 0, v1530:0, v1531:0, v1585:0, v1617:0, v1674:0, v1676:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1522:0 > 0 && v1522:0 < 100000 && v1522:0 < 99999 && v1511:0 + 4 * (1 + v1522:0) > 4 && v1676:0 < v1617:0 && v1512:0 + 4 * (1 + v1522:0) > 4 53.22/17.84 Filtered unneeded arguments: 53.22/17.84 f_652(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33) -> f_652(x2, x3, x7, x10, x12) 53.22/17.84 f_566(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_566(x2, x3, x7, x9) 53.22/17.84 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 53.22/17.84 f_652(v1511:0, v1512:0, v1522:0, v1617:0, v1617:01) -> f_566(v1511:0, v1512:0, 1 + v1522:0, v1522:0) :|: v1522:0 < 100000 && v1522:0 > 0 && v1617:0 = v1617:01 53.22/17.84 f_566(v1375:0, v1376:0, v1386:0, v1380:0) -> f_566(v1375:0, v1376:0, 1 + v1386:0, v1386:0) :|: v1386:0 < 100000 && v1380:0 < 99999 && v1375:0 + 4 * v1386:0 > 4 && v1386:0 > 0 && v1376:0 + 4 * v1386:0 > 4 53.22/17.84 f_566(v1375:0, v1376:0, v1386:0, v1380:0) -> f_652(v1375:0, v1376:0, 1 + v1386:0, v1617:0, v1676:0) :|: v1386:0 < 100000 && v1380:0 < 99999 && v1375:0 + 4 * v1386:0 > 4 && v1376:0 + 4 * v1386:0 > 4 && v1386:0 > 0 && v1386:0 < 99999 && v1375:0 + (4 + 4 * v1386:0) > 4 && v1376:0 + (4 + 4 * v1386:0) > 4 53.22/17.84 f_652(v1511:0, v1512:0, v1522:0, v1617:0, v1676:0) -> f_652(v1511:0, v1512:0, 1 + v1522:0, v1617:1, v1676:1) :|: v1522:0 < 100000 && v1522:0 > 0 && v1522:0 < 99999 && v1511:0 + (4 + 4 * v1522:0) > 4 && v1512:0 + (4 + 4 * v1522:0) > 4 && v1676:0 > v1617:0 53.22/17.84 f_652(v1511:0, v1512:0, v1522:0, v1617:0, v1676:0) -> f_652(v1511:0, v1512:0, 1 + v1522:0, v1617:1, v1676:1) :|: v1522:0 < 100000 && v1522:0 > 0 && v1522:0 < 99999 && v1511:0 + (4 + 4 * v1522:0) > 4 && v1512:0 + (4 + 4 * v1522:0) > 4 && v1676:0 < v1617:0 53.22/17.84 53.22/17.84 ---------------------------------------- 53.22/17.84 53.22/17.84 (16) 53.22/17.84 Obligation: 53.22/17.84 Rules: 53.22/17.84 f_652(v1511:0, v1512:0, v1522:0, v1617:0, v1617:01) -> f_566(v1511:0, v1512:0, 1 + v1522:0, v1522:0) :|: v1522:0 < 100000 && v1522:0 > 0 && v1617:0 = v1617:01 53.22/17.84 f_566(v1375:0, v1376:0, v1386:0, v1380:0) -> f_566(v1375:0, v1376:0, 1 + v1386:0, v1386:0) :|: v1386:0 < 100000 && v1380:0 < 99999 && v1375:0 + 4 * v1386:0 > 4 && v1386:0 > 0 && v1376:0 + 4 * v1386:0 > 4 53.22/17.84 f_566(x, x1, x2, x3) -> f_652(x, x1, 1 + x2, x4, x5) :|: x2 < 100000 && x3 < 99999 && x + 4 * x2 > 4 && x1 + 4 * x2 > 4 && x2 > 0 && x2 < 99999 && x + (4 + 4 * x2) > 4 && x1 + (4 + 4 * x2) > 4 53.22/17.84 f_652(x6, x7, x8, x9, x10) -> f_652(x6, x7, 1 + x8, x11, x12) :|: x8 < 100000 && x8 > 0 && x8 < 99999 && x6 + (4 + 4 * x8) > 4 && x7 + (4 + 4 * x8) > 4 && x10 > x9 53.22/17.84 f_652(x13, x14, x15, x16, x17) -> f_652(x13, x14, 1 + x15, x18, x19) :|: x15 < 100000 && x15 > 0 && x15 < 99999 && x13 + (4 + 4 * x15) > 4 && x14 + (4 + 4 * x15) > 4 && x17 < x16 53.22/17.84 53.22/17.84 ---------------------------------------- 53.22/17.84 53.22/17.84 (17) IRS2T2 (EQUIVALENT) 53.22/17.84 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 53.22/17.84 53.22/17.84 (f_652_5,1) 53.22/17.84 (f_566_5,2) 53.22/17.84 53.22/17.84 ---------------------------------------- 53.22/17.84 53.22/17.84 (18) 53.22/17.84 Obligation: 53.22/17.84 START: 0; 53.22/17.84 53.22/17.84 FROM: 0; 53.22/17.84 TO: 1; 53.22/17.84 53.22/17.84 FROM: 0; 53.22/17.84 TO: 2; 53.22/17.84 53.22/17.84 FROM: 1; 53.22/17.84 oldX0 := x0; 53.22/17.84 oldX1 := x1; 53.22/17.84 oldX2 := x2; 53.22/17.84 oldX3 := x3; 53.22/17.84 oldX4 := x4; 53.22/17.84 oldX5 := nondet(); 53.22/17.84 assume(oldX2 < 100000 && oldX2 > 0 && oldX3 = oldX4); 53.22/17.84 x0 := oldX0; 53.22/17.84 x1 := oldX1; 53.22/17.84 x2 := 1 + oldX2; 53.22/17.84 x3 := oldX2; 53.22/17.84 x4 := oldX5; 53.22/17.84 TO: 2; 53.22/17.84 53.22/17.84 FROM: 2; 53.22/17.84 oldX0 := x0; 53.22/17.84 oldX1 := x1; 53.22/17.84 oldX2 := x2; 53.22/17.84 oldX3 := x3; 53.22/17.84 oldX4 := x4; 53.22/17.84 oldX5 := nondet(); 53.22/17.84 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 53.22/17.84 x0 := oldX0; 53.22/17.84 x1 := oldX1; 53.22/17.84 x2 := 1 + oldX2; 53.22/17.84 x3 := oldX2; 53.22/17.84 x4 := oldX5; 53.22/17.84 TO: 2; 53.22/17.84 53.22/17.84 FROM: 2; 53.22/17.84 oldX0 := x0; 53.22/17.84 oldX1 := x1; 53.22/17.84 oldX2 := x2; 53.22/17.84 oldX3 := x3; 53.22/17.84 oldX4 := x4; 53.22/17.84 oldX5 := nondet(); 53.22/17.84 oldX6 := nondet(); 53.22/17.84 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX1 + 4 * oldX2 > 4 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4); 53.22/17.84 x0 := oldX0; 53.22/17.84 x1 := oldX1; 53.22/17.84 x2 := 1 + oldX2; 53.22/17.84 x3 := oldX5; 53.22/17.84 x4 := oldX6; 53.22/17.84 TO: 1; 53.22/17.84 53.22/17.84 FROM: 1; 53.22/17.84 oldX0 := x0; 53.22/17.84 oldX1 := x1; 53.22/17.84 oldX2 := x2; 53.22/17.84 oldX3 := x3; 53.22/17.84 oldX4 := x4; 53.22/17.84 oldX5 := nondet(); 53.22/17.84 oldX6 := nondet(); 53.22/17.84 assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 > oldX3); 53.22/17.84 x0 := oldX0; 53.22/17.84 x1 := oldX1; 53.22/17.84 x2 := 1 + oldX2; 53.22/17.84 x3 := oldX5; 53.22/17.84 x4 := oldX6; 53.22/17.84 TO: 1; 53.22/17.84 53.22/17.84 FROM: 1; 53.22/17.84 oldX0 := x0; 53.22/17.84 oldX1 := x1; 53.22/17.84 oldX2 := x2; 53.22/17.84 oldX3 := x3; 53.22/17.84 oldX4 := x4; 53.22/17.84 oldX5 := nondet(); 53.22/17.84 oldX6 := nondet(); 53.22/17.84 assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 < oldX3); 53.22/17.84 x0 := oldX0; 53.22/17.84 x1 := oldX1; 53.22/17.84 x2 := 1 + oldX2; 53.22/17.84 x3 := oldX5; 53.22/17.84 x4 := oldX6; 53.22/17.84 TO: 1; 53.22/17.84 53.22/17.84 53.22/17.84 ---------------------------------------- 53.22/17.84 53.22/17.84 (19) T2 (EQUIVALENT) 53.22/17.84 Initially, performed program simplifications using lexicographic rank functions: 53.22/17.84 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 53.22/17.84 - Rank function 1: 53.22/17.84 RF for loc. 6: -2*x2 53.22/17.84 RF for loc. 7: -2*x2 53.22/17.84 RF for loc. 8: -1-2*x2 53.22/17.84 RF for loc. 12: -1-2*x2 53.22/17.84 Bound for (chained) transitions 5: -199999 53.22/17.84 Bound for (chained) transitions 7: -199997 53.22/17.84 Bound for (chained) transitions 20: -199999 53.22/17.84 Bound for (chained) transitions 21: -199997 53.22/17.84 - Rank function 2: 53.22/17.84 RF for loc. 6: -2*x2 53.22/17.84 RF for loc. 7: 0 53.22/17.84 RF for loc. 8: -1-2*x2 53.22/17.84 RF for loc. 12: -1 53.22/17.84 Bound for (chained) transitions 6: -199997 53.22/17.84 Bound for (chained) transitions 17: 0 53.22/17.84 - Rank function 3: 53.22/17.84 RF for loc. 6: 0 53.22/17.84 RF for loc. 8: -1 53.22/17.84 Bound for (chained) transitions 2: 0 53.22/17.84 53.22/17.84 ---------------------------------------- 53.22/17.84 53.22/17.84 (20) 53.22/17.84 YES 53.46/17.90 EOF