/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 180 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 10.4 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 149 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) RankingReductionPairProof [EQUIVALENT, 16 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 140 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 1173 ms] (20) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store %cond, %1 %2 = load %1 %3 = icmp ne %2 0 br %3, %6, %4 4: br %5 5: Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn unreachable 6: ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %password = alloca [100000 x i32], align 16 %guess = alloca [100000 x i32], align 16 %i = alloca i32, align 4 %result = alloca i32, align 4 %x = alloca i32, align 4 store 0, %1 store 1, %result store 0, %i br %2 2: %3 = load %i %4 = icmp slt %3 100000 br %4, %5, %20 5: %6 = load %i %7 = sext i32 %6 to i64 %8 = getelementptr %password, 0, %7 %9 = load %8 %10 = load %i %11 = sext i32 %10 to i64 %12 = getelementptr %guess, 0, %11 %13 = load %12 %14 = icmp ne %9 %13 br %14, %15, %16 15: store 0, %result br %16 16: br %17 17: %18 = load %i %19 = add %18 1 store %19, %i br %2 20: %21 = load %result %22 = icmp ne %21 0 br %22, %23, %42 23: store 0, %x br %24 24: %25 = load %x %26 = icmp slt %25 100000 br %26, %27, %41 27: %28 = load %x %29 = sext i32 %28 to i64 %30 = getelementptr %password, 0, %29 %31 = load %30 %32 = load %x %33 = sext i32 %32 to i64 %34 = getelementptr %guess, 0, %33 %35 = load %34 %36 = icmp eq %31 %35 %37 = zext i1 %36 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %37) br %38 38: %39 = load %x %40 = add %39 1 store %40, %x br %24 41: br %42 42: ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 2 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 28 rulesP rules: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 1 rulesP rules: 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 Filtered unneeded arguments: 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) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 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 ---------------------------------------- (9) Obligation: Rules: 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 ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: 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 ---------------------------------------- (12) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_899 ] = -1*f_899_3 The following rules are decreasing: 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 The following rules are bounded: 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 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 58 rulesP rules: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 6 rulesP rules: 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 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 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 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 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 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 Filtered unneeded arguments: 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) 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) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 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 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 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 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 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 ---------------------------------------- (16) Obligation: Rules: 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 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 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 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 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 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_652_5,1) (f_566_5,2) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX2 < 100000 && oldX2 > 0 && oldX3 = oldX4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; x4 := oldX5; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX2; x4 := oldX5; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); oldX6 := nondet(); 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); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX6; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); oldX6 := nondet(); assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 > oldX3); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX6; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); oldX6 := nondet(); assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 < oldX3); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX5; x4 := oldX6; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: - Rank function 1: RF for loc. 6: -2*x2 RF for loc. 7: -2*x2 RF for loc. 8: -1-2*x2 RF for loc. 12: -1-2*x2 Bound for (chained) transitions 5: -199999 Bound for (chained) transitions 7: -199997 Bound for (chained) transitions 20: -199999 Bound for (chained) transitions 21: -199997 - Rank function 2: RF for loc. 6: -2*x2 RF for loc. 7: 0 RF for loc. 8: -1-2*x2 RF for loc. 12: -1 Bound for (chained) transitions 6: -199997 Bound for (chained) transitions 17: 0 - Rank function 3: RF for loc. 6: 0 RF for loc. 8: -1 Bound for (chained) transitions 2: 0 ---------------------------------------- (20) YES