52.85/16.78 YES 52.90/16.79 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 52.90/16.79 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 52.90/16.79 52.90/16.79 52.90/16.79 Termination of the given C Problem could be proven: 52.90/16.79 52.90/16.79 (0) C Problem 52.90/16.79 (1) CToLLVMProof [EQUIVALENT, 173 ms] 52.90/16.79 (2) LLVM problem 52.90/16.79 (3) LLVMToTerminationGraphProof [EQUIVALENT, 10.3 s] 52.90/16.79 (4) LLVM Symbolic Execution Graph 52.90/16.79 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 52.90/16.79 (6) AND 52.90/16.79 (7) LLVM Symbolic Execution SCC 52.90/16.79 (8) SCC2IRS [SOUND, 174 ms] 52.90/16.79 (9) IntTRS 52.90/16.79 (10) IntTRSCompressionProof [EQUIVALENT, 1 ms] 52.90/16.79 (11) IntTRS 52.90/16.79 (12) RankingReductionPairProof [EQUIVALENT, 23 ms] 52.90/16.79 (13) YES 52.90/16.79 (14) LLVM Symbolic Execution SCC 52.90/16.79 (15) SCC2IRS [SOUND, 134 ms] 52.90/16.79 (16) IntTRS 52.90/16.79 (17) IRS2T2 [EQUIVALENT, 0 ms] 52.90/16.79 (18) T2IntSys 52.90/16.79 (19) T2 [EQUIVALENT, 1385 ms] 52.90/16.79 (20) YES 52.90/16.79 52.90/16.79 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (0) 52.90/16.79 Obligation: 52.90/16.79 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (1) CToLLVMProof (EQUIVALENT) 52.90/16.79 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (2) 52.90/16.79 Obligation: 52.90/16.79 LLVM Problem 52.90/16.79 52.90/16.79 Aliases: 52.90/16.79 52.90/16.79 Data layout: 52.90/16.79 52.90/16.79 "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" 52.90/16.79 52.90/16.79 Machine: 52.90/16.79 52.90/16.79 "x86_64-pc-linux-gnu" 52.90/16.79 52.90/16.79 Type definitions: 52.90/16.79 52.90/16.79 Global variables: 52.90/16.79 52.90/16.79 Function declarations and definitions: 52.90/16.79 52.90/16.79 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 52.90/16.79 *BasicFunctionTypename: "__VERIFIER_assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (cond i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 52.90/16.79 0: 52.90/16.79 %1 = alloca i32, align 4 52.90/16.79 store %cond, %1 52.90/16.79 %2 = load %1 52.90/16.79 %3 = icmp ne %2 0 52.90/16.79 br %3, %6, %4 52.90/16.79 4: 52.90/16.79 br %5 52.90/16.79 5: 52.90/16.79 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 52.90/16.79 unreachable 52.90/16.79 6: 52.90/16.79 ret void 52.90/16.79 52.90/16.79 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 52.90/16.79 0: 52.90/16.79 %1 = alloca i32, align 4 52.90/16.79 %a = alloca [100000 x i32], align 16 52.90/16.79 %b = alloca [100000 x i32], align 16 52.90/16.79 %i = alloca i32, align 4 52.90/16.79 %rv = alloca i32, align 4 52.90/16.79 %x = alloca i32, align 4 52.90/16.79 store 0, %1 52.90/16.79 store 0, %i 52.90/16.79 store 1, %rv 52.90/16.79 br %2 52.90/16.79 2: 52.90/16.79 %3 = load %i 52.90/16.79 %4 = icmp slt %3 100000 52.90/16.79 br %4, %5, %19 52.90/16.79 5: 52.90/16.79 %6 = load %i 52.90/16.79 %7 = sext i32 %6 to i64 52.90/16.79 %8 = getelementptr %a, 0, %7 52.90/16.79 %9 = load %8 52.90/16.79 %10 = load %i 52.90/16.79 %11 = sext i32 %10 to i64 52.90/16.79 %12 = getelementptr %b, 0, %11 52.90/16.79 %13 = load %12 52.90/16.79 %14 = icmp ne %9 %13 52.90/16.79 br %14, %15, %16 52.90/16.79 15: 52.90/16.79 store 0, %rv 52.90/16.79 br %16 52.90/16.79 16: 52.90/16.79 %17 = load %i 52.90/16.79 %18 = add %17 1 52.90/16.79 store %18, %i 52.90/16.79 br %2 52.90/16.79 19: 52.90/16.79 %20 = load %rv 52.90/16.79 %21 = icmp ne %20 0 52.90/16.79 br %21, %22, %41 52.90/16.79 22: 52.90/16.79 store 0, %x 52.90/16.79 br %23 52.90/16.79 23: 52.90/16.79 %24 = load %x 52.90/16.79 %25 = icmp slt %24 100000 52.90/16.79 br %25, %26, %40 52.90/16.79 26: 52.90/16.79 %27 = load %x 52.90/16.79 %28 = sext i32 %27 to i64 52.90/16.79 %29 = getelementptr %a, 0, %28 52.90/16.79 %30 = load %29 52.90/16.79 %31 = load %x 52.90/16.79 %32 = sext i32 %31 to i64 52.90/16.79 %33 = getelementptr %b, 0, %32 52.90/16.79 %34 = load %33 52.90/16.79 %35 = icmp eq %30 %34 52.90/16.79 %36 = zext i1 %35 to i32 52.90/16.79 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %36) 52.90/16.79 br %37 52.90/16.79 37: 52.90/16.79 %38 = load %x 52.90/16.79 %39 = add %38 1 52.90/16.79 store %39, %x 52.90/16.79 br %23 52.90/16.79 40: 52.90/16.79 br %41 52.90/16.79 41: 52.90/16.79 ret 0 52.90/16.79 52.90/16.79 52.90/16.79 Analyze Termination of all function calls matching the pattern: 52.90/16.79 main() 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (3) LLVMToTerminationGraphProof (EQUIVALENT) 52.90/16.79 Constructed symbolic execution graph for LLVM program and proved memory safety. 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (4) 52.90/16.79 Obligation: 52.90/16.79 SE Graph 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (5) SymbolicExecutionGraphToSCCProof (SOUND) 52.90/16.79 Splitted symbolic execution graph to 2 SCCs. 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (6) 52.90/16.79 Complex Obligation (AND) 52.90/16.79 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (7) 52.90/16.79 Obligation: 52.90/16.79 SCC 52.90/16.79 ---------------------------------------- 52.90/16.79 52.90/16.79 (8) SCC2IRS (SOUND) 52.90/16.79 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 52.90/16.79 Generated rules. Obtained 28 rulesP rules: 52.90/16.79 f_870(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 4, 400000) -> f_871(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) :|: v1927 < 100000 && v1923 <= 99998 52.90/16.79 f_871(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) -> f_873(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) :|: 0 = 0 52.90/16.79 f_873(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) -> f_875(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) :|: TRUE 52.90/16.79 f_875(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) -> f_877(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) :|: 0 = 0 52.90/16.79 f_877(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) -> f_879(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1924, v1925, v1923, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) :|: 0 = 0 52.90/16.79 f_879(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1924, v1925, v1923, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 99998, 4, 400000) -> f_880(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1925, v1923, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) :|: v1973 = v1911 + 4 * v1927 && 5 <= v1973 52.90/16.79 f_880(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1925, v1923, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) -> f_881(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1923, v1926, v1925, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.79 f_881(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1923, v1926, v1925, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) -> f_882(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1923, v1926, v1925, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.79 f_882(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1923, v1926, v1925, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) -> f_883(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1926, v1925, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.79 f_883(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1926, v1925, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, 3, 399999, 4, 99998, 400000, 5) -> f_884(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1976, v1925, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1926, 3, 399999, 4, 99998, 400000, 5) :|: v1976 = v1912 + 4 * v1927 && 5 <= v1976 52.90/16.79 f_884(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1976, v1925, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_885(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1976, v1977, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.79 f_885(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1974, v1976, v1977, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_886(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: v1974 = v1977 52.90/16.79 f_886(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_888(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.79 f_888(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_890(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.80 f_890(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_892(1, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.80 f_892(1, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_894(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: 1 <= v1992 && v1993 = 3 + v1992 && 4 <= v1993 52.90/16.80 f_894(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_896(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.80 f_896(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_898(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.80 f_898(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_900(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: 0 = 0 52.90/16.80 f_900(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_902(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.80 f_902(1, v1992, v1910, v1928, v1911, v1929, v1912, v1930, v1913, v1931, v1914, v1932, v1915, v1933, v1993, 0, v1934, 100000, v1927, v1919, v1920, v1921, v1924, v1925, v1926, v1973, v1977, v1976, 99999, v1923, 3, 399999, 4, 99998, 400000, 5) -> f_904(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.80 f_904(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_906(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) :|: TRUE 52.90/16.80 f_906(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1923, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 99998, 400000, 5) -> f_908(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5) :|: 0 = 0 52.90/16.80 f_908(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5) -> f_909(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) :|: v1996 = 1 + v1927 && 2 <= v1996 && v1996 <= 100000 52.90/16.80 f_909(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) -> f_910(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) :|: TRUE 52.90/16.80 f_910(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) -> f_911(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) :|: TRUE 52.90/16.80 f_911(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, v1924, v1925, v1926, 3, 399999, 4, 400000, 5, 2) -> f_869(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1973, v1977, v1976, v1996, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 4, 400000) :|: TRUE 52.90/16.80 f_869(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1923, v1924, v1925, v1926, v1927, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 4, 400000) -> f_870(v1910, v1911, v1912, v1913, v1914, v1915, 100000, 0, 99999, v1919, v1920, v1921, 1, v1927, v1923, v1924, v1925, v1926, v1928, v1929, v1930, v1931, v1932, v1933, v1934, 3, 399999, 4, 400000) :|: 0 = 0 52.90/16.80 Combined rules. Obtained 1 rulesP rules: 52.90/16.80 f_870(v1910:0, v1911:0, v1912:0, v1913:0, v1914:0, v1915:0, 100000, 0, 99999, v1919:0, v1920:0, v1921:0, 1, v1927:0, v1923:0, v1924:0, v1925:0, v1926:0, v1928:0, v1929:0, v1930:0, v1931:0, v1932:0, v1933:0, v1934:0, 3, 399999, 4, 400000) -> f_870(v1910:0, v1911:0, v1912:0, v1913:0, v1914:0, v1915:0, 100000, 0, 99999, v1919:0, v1920:0, v1921:0, 1, 1 + v1927:0, v1927:0, v1911:0 + 4 * v1927:0, v1974:0, v1912:0 + 4 * v1927:0, v1928:0, v1929:0, v1930:0, v1931:0, v1932:0, v1933:0, v1934:0, 3, 399999, 4, 400000) :|: v1923:0 < 99999 && v1927:0 < 100000 && v1911:0 + 4 * v1927:0 > 4 && v1912:0 + 4 * v1927:0 > 4 && v1992:0 > 0 && v1927:0 > 0 52.90/16.80 Filtered unneeded arguments: 52.90/16.80 f_870(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_870(x2, x3, x14, x15) 52.90/16.80 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 52.90/16.80 f_870(v1911:0, v1912:0, v1927:0, v1923:0) -> f_870(v1911:0, v1912:0, 1 + v1927:0, v1927:0) :|: v1927:0 < 100000 && v1923:0 < 99999 && v1911:0 + 4 * v1927:0 > 4 && v1927:0 > 0 && v1912:0 + 4 * v1927:0 > 4 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (9) 52.90/16.80 Obligation: 52.90/16.80 Rules: 52.90/16.80 f_870(v1911:0, v1912:0, v1927:0, v1923:0) -> f_870(v1911:0, v1912:0, 1 + v1927:0, v1927:0) :|: v1927:0 < 100000 && v1923:0 < 99999 && v1911:0 + 4 * v1927:0 > 4 && v1927:0 > 0 && v1912:0 + 4 * v1927:0 > 4 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (10) IntTRSCompressionProof (EQUIVALENT) 52.90/16.80 Compressed rules. 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (11) 52.90/16.80 Obligation: 52.90/16.80 Rules: 52.90/16.80 f_870(v1911:0:0, v1912:0:0, v1927:0:0, v1923:0:0) -> f_870(v1911:0:0, v1912:0:0, 1 + v1927:0:0, v1927:0:0) :|: v1927:0:0 > 0 && v1912:0:0 + 4 * v1927:0:0 > 4 && v1911:0:0 + 4 * v1927:0:0 > 4 && v1923:0:0 < 99999 && v1927:0:0 < 100000 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (12) RankingReductionPairProof (EQUIVALENT) 52.90/16.80 Interpretation: 52.90/16.80 [ f_870 ] = -1*f_870_3 52.90/16.80 52.90/16.80 The following rules are decreasing: 52.90/16.80 f_870(v1911:0:0, v1912:0:0, v1927:0:0, v1923:0:0) -> f_870(v1911:0:0, v1912:0:0, 1 + v1927:0:0, v1927:0:0) :|: v1927:0:0 > 0 && v1912:0:0 + 4 * v1927:0:0 > 4 && v1911:0:0 + 4 * v1927:0:0 > 4 && v1923:0:0 < 99999 && v1927:0:0 < 100000 52.90/16.80 52.90/16.80 The following rules are bounded: 52.90/16.80 f_870(v1911:0:0, v1912:0:0, v1927:0:0, v1923:0:0) -> f_870(v1911:0:0, v1912:0:0, 1 + v1927:0:0, v1927:0:0) :|: v1927:0:0 > 0 && v1912:0:0 + 4 * v1927:0:0 > 4 && v1911:0:0 + 4 * v1927:0:0 > 4 && v1923:0:0 < 99999 && v1927:0:0 < 100000 52.90/16.80 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (13) 52.90/16.80 YES 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (14) 52.90/16.80 Obligation: 52.90/16.80 SCC 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (15) SCC2IRS (SOUND) 52.90/16.80 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 52.90/16.80 Generated rules. Obtained 55 rulesP rules: 52.90/16.80 f_541(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99999, 100000, 4, 400000) -> f_544(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) :|: v1056 < 100000 && v1050 <= 99998 52.90/16.80 f_544(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) -> f_548(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_548(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) -> f_552(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) :|: TRUE 52.90/16.80 f_552(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) -> f_556(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_556(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) -> f_560(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1052, v1053, v1050, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_560(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1052, v1053, v1050, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99998, 99999, 4, 400000) -> f_565(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1053, v1050, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1119 = v1045 + 4 * v1056 && 5 <= v1119 52.90/16.80 f_565(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1053, v1050, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_570(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1050, v1054, v1053, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_570(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1050, v1054, v1053, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_574(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1050, v1054, v1053, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_574(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1050, v1054, v1053, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_578(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1054, v1053, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_578(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1054, v1053, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_581(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1053, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1192 = v1046 + 4 * v1056 && 5 <= v1192 52.90/16.80 f_581(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1053, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_585(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_585(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_589(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1155 != v1193 52.90/16.80 f_585(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_590(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1155 = v1193 52.90/16.80 f_589(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_594(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, v1050, v1057, v1058, v1059, v1060, v1061, v1062, 0, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_594(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, v1050, v1057, v1058, v1059, v1060, v1061, v1062, 0, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_599(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, v1050, v1057, v1058, v1059, v1060, v1061, v1062, 0, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_599(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, v1050, v1057, v1058, v1059, v1060, v1061, v1062, 0, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_638(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1155, v1192, v1193, v1050, v1057, v1058, v1059, v1060, v1061, v1062, 0, v1063, v1064, v1065, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 52.90/16.80 f_638(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, v1358, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_642(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 52.90/16.80 f_642(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_646(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 52.90/16.80 f_646(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1348, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 99998, 400000) -> f_650(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000) :|: 0 = 0 52.90/16.80 f_650(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000) -> f_654(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: v1423 = 1 + v1342 && 2 <= v1423 && v1423 <= 100000 52.90/16.80 f_654(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_658(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: TRUE 52.90/16.80 f_658(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_661(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) :|: TRUE 52.90/16.80 f_661(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 4, 99999, 5, 400000, 2, 100000) -> f_577(v1336, v1337, v1338, v1339, v1340, v1341, v1342, 1, v1344, v1345, v1346, v1347, v1423, v1349, v1350, v1351, v1352, v1353, v1354, 0, v1356, v1357, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 52.90/16.80 f_577(v1158, v1159, v1160, v1161, v1162, v1163, v1164, 1, v1166, v1167, v1168, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99999, 100000, 4, 400000) -> f_580(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99999, 100000, 4, 400000) :|: 0 = 0 52.90/16.80 f_580(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99999, 100000, 4, 400000) -> f_583(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) :|: v1170 < 100000 && v1164 <= 99998 52.90/16.80 f_583(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) -> f_587(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_587(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) -> f_592(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) :|: TRUE 52.90/16.80 f_592(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) -> f_597(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_597(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1164, v1166, v1167, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) -> f_602(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1166, v1167, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) :|: 0 = 0 52.90/16.80 f_602(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1166, v1167, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 3, 399999, 99998, 99999, 4, 400000) -> f_607(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1167, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1227 = v1159 + 4 * v1170 && 5 <= v1227 52.90/16.80 f_607(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1167, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_612(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_612(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_616(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_616(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1164, v1168, v1169, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_620(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1168, v1169, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_620(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1168, v1169, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_623(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1169, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1299 = v1160 + 4 * v1170 && 5 <= v1299 52.90/16.80 f_623(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1169, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_626(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_626(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_629(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1260 != v1334 52.90/16.80 f_626(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_630(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1260 = v1334 52.90/16.80 f_629(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_633(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_633(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_637(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_637(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_638(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1260, v1299, v1334, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, 0, 3, 399999, 4, 99999, 5, 99998, 400000) :|: TRUE 52.90/16.80 f_630(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, v1164, v1171, v1172, v1173, v1174, v1175, v1176, 0, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_634(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1164, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_634(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1164, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_639(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1164, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_639(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1164, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_643(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_643(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5) -> f_647(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: v1421 = 1 + v1170 && 2 <= v1421 && v1421 <= 100000 52.90/16.80 f_647(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_651(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 52.90/16.80 f_651(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_655(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 52.90/16.80 f_655(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, v1166, v1167, v1168, v1169, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_539(v1158, v1159, v1160, v1161, v1162, v1163, v1170, 1, v1227, v1334, v1299, 0, v1421, v1171, v1172, v1173, v1174, v1175, v1176, v1178, v1179, 0, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 52.90/16.80 f_539(v1044, v1045, v1046, v1047, v1048, v1049, v1050, 1, v1052, v1053, v1054, 0, v1056, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99999, 100000, 4, 400000) -> f_541(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1050, v1052, v1053, v1054, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99999, 100000, 4, 400000) :|: 0 = 0 52.90/16.80 f_590(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_595(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_595(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_600(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) :|: TRUE 52.90/16.80 f_600(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1050, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_605(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5) :|: 0 = 0 52.90/16.80 f_605(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5) -> f_610(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: v1259 = 1 + v1056 && 2 <= v1259 && v1259 <= 100000 52.90/16.80 f_610(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_614(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 52.90/16.80 f_614(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_618(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) :|: TRUE 52.90/16.80 f_618(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, v1052, v1053, v1054, 3, 399999, 4, 99999, 400000, 5, 2, 100000) -> f_539(v1044, v1045, v1046, v1047, v1048, v1049, v1056, 1, v1119, v1193, v1192, 0, v1259, v1057, v1058, v1059, v1060, v1061, v1062, v1063, v1064, v1065, 3, 399999, 99999, 100000, 4, 400000) :|: TRUE 52.90/16.80 Combined rules. Obtained 6 rulesP rules: 52.90/16.80 f_626(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, v1170:0, 1, v1227:0, v1260:0, v1299:0, v1334:0, v1164:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, 0, v1178:0, v1179:0, v1166:0, v1167:0, v1168:0, v1169:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_626(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, 1 + v1170:0, 1, v1159:0 + 4 * (1 + v1170:0), v1260:1, v1160:0 + 4 * (1 + v1170:0), v1334:1, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, 0, v1178:0, v1179:0, v1227:0, v1260:0, v1299:0, v1334:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1170:0 > 0 && v1170:0 < 100000 && v1170:0 < 99999 && v1159:0 + 4 * (1 + v1170:0) > 4 && v1334:0 > v1260:0 && v1160:0 + 4 * (1 + v1170:0) > 4 52.90/16.80 f_626(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, v1170:0, 1, v1227:0, v1260:0, v1299:0, v1334:0, v1164:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, 0, v1178:0, v1179:0, v1166:0, v1167:0, v1168:0, v1169:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_626(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, 1 + v1170:0, 1, v1159:0 + 4 * (1 + v1170:0), v1260:1, v1160:0 + 4 * (1 + v1170:0), v1334:1, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, 0, v1178:0, v1179:0, v1227:0, v1260:0, v1299:0, v1334:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1170:0 > 0 && v1170:0 < 100000 && v1170:0 < 99999 && v1159:0 + 4 * (1 + v1170:0) > 4 && v1334:0 < v1260:0 && v1160:0 + 4 * (1 + v1170:0) > 4 52.90/16.80 f_626(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, v1170:0, 1, v1227:0, v1260:0, v1299:0, v1260:0, v1164:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, 0, v1178:0, v1179:0, v1166:0, v1167:0, v1168:0, v1169:0, 3, 399999, 4, 99998, 99999, 400000, 5) -> f_541(v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, 1 + v1170:0, 1, v1170:0, v1227:0, v1260:0, v1299:0, 0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, v1178:0, v1179:0, 0, 3, 399999, 99999, 100000, 4, 400000) :|: v1170:0 < 100000 && v1170:0 > 0 52.90/16.80 f_541(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, v1056:0, 1, v1050:0, v1052:0, v1053:0, v1054:0, 0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, v1063:0, v1064:0, v1065:0, 3, 399999, 99999, 100000, 4, 400000) -> f_541(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, 1 + v1056:0, 1, v1056:0, v1045:0 + 4 * v1056:0, v1155:0, v1046:0 + 4 * v1056:0, 0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, v1063:0, v1064:0, v1065:0, 3, 399999, 99999, 100000, 4, 400000) :|: v1050:0 < 99999 && v1056:0 < 100000 && v1045:0 + 4 * v1056:0 > 4 && v1046:0 + 4 * v1056:0 > 4 && v1056:0 > 0 52.90/16.80 f_541(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, v1056:0, 1, v1050:0, v1052:0, v1053:0, v1054:0, 0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, v1063:0, v1064:0, v1065:0, 3, 399999, 99999, 100000, 4, 400000) -> f_626(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, 1 + v1056:0, 1, v1045:0 + 4 * (1 + v1056:0), v1260:0, v1046:0 + 4 * (1 + v1056:0), v1334:0, v1056:0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, 0, v1063:0, v1064:0, v1045:0 + 4 * v1056:0, v1155:0, v1046:0 + 4 * v1056:0, v1193:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1050:0 < 99999 && v1056:0 < 100000 && v1045:0 + 4 * v1056:0 > 4 && v1046:0 + 4 * v1056:0 > 4 && v1193:0 > v1155:0 && v1056:0 > 0 && v1056:0 < 99999 && v1046:0 + 4 * (1 + v1056:0) > 4 && v1045:0 + 4 * (1 + v1056:0) > 4 52.90/16.80 f_541(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, v1056:0, 1, v1050:0, v1052:0, v1053:0, v1054:0, 0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, v1063:0, v1064:0, v1065:0, 3, 399999, 99999, 100000, 4, 400000) -> f_626(v1044:0, v1045:0, v1046:0, v1047:0, v1048:0, v1049:0, 1 + v1056:0, 1, v1045:0 + 4 * (1 + v1056:0), v1260:0, v1046:0 + 4 * (1 + v1056:0), v1334:0, v1056:0, v1057:0, v1058:0, v1059:0, v1060:0, v1061:0, v1062:0, 0, v1063:0, v1064:0, v1045:0 + 4 * v1056:0, v1155:0, v1046:0 + 4 * v1056:0, v1193:0, 3, 399999, 4, 99998, 99999, 400000, 5) :|: v1050:0 < 99999 && v1056:0 < 100000 && v1045:0 + 4 * v1056:0 > 4 && v1046:0 + 4 * v1056:0 > 4 && v1193:0 < v1155:0 && v1056:0 > 0 && v1056:0 < 99999 && v1046:0 + 4 * (1 + v1056:0) > 4 && v1045:0 + 4 * (1 + v1056:0) > 4 52.90/16.80 Filtered unneeded arguments: 52.90/16.80 f_626(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_626(x2, x3, x7, x10, x12) 52.90/16.80 f_541(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_541(x2, x3, x7, x9) 52.90/16.80 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 52.90/16.80 f_626(v1159:0, v1160:0, v1170:0, v1260:0, v1334:0) -> f_626(v1159:0, v1160:0, 1 + v1170:0, v1260:1, v1334:1) :|: v1170:0 < 100000 && v1170:0 > 0 && v1170:0 < 99999 && v1159:0 + (4 + 4 * v1170:0) > 4 && v1160:0 + (4 + 4 * v1170:0) > 4 && v1334:0 > v1260:0 52.90/16.80 f_626(v1159:0, v1160:0, v1170:0, v1260:0, v1334:0) -> f_626(v1159:0, v1160:0, 1 + v1170:0, v1260:1, v1334:1) :|: v1170:0 < 100000 && v1170:0 > 0 && v1170:0 < 99999 && v1159:0 + (4 + 4 * v1170:0) > 4 && v1160:0 + (4 + 4 * v1170:0) > 4 && v1334:0 < v1260:0 52.90/16.80 f_626(v1159:0, v1160:0, v1170:0, v1260:0, v1260:01) -> f_541(v1159:0, v1160:0, 1 + v1170:0, v1170:0) :|: v1170:0 < 100000 && v1170:0 > 0 && v1260:0 = v1260:01 52.90/16.80 f_541(v1045:0, v1046:0, v1056:0, v1050:0) -> f_541(v1045:0, v1046:0, 1 + v1056:0, v1056:0) :|: v1056:0 < 100000 && v1050:0 < 99999 && v1045:0 + 4 * v1056:0 > 4 && v1056:0 > 0 && v1046:0 + 4 * v1056:0 > 4 52.90/16.80 f_541(v1045:0, v1046:0, v1056:0, v1050:0) -> f_626(v1045:0, v1046:0, 1 + v1056:0, v1260:0, v1334:0) :|: v1056:0 < 100000 && v1050:0 < 99999 && v1045:0 + 4 * v1056:0 > 4 && v1046:0 + 4 * v1056:0 > 4 && v1056:0 > 0 && v1056:0 < 99999 && v1045:0 + (4 + 4 * v1056:0) > 4 && v1046:0 + (4 + 4 * v1056:0) > 4 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (16) 52.90/16.80 Obligation: 52.90/16.80 Rules: 52.90/16.80 f_626(v1159:0, v1160:0, v1170:0, v1260:0, v1334:0) -> f_626(v1159:0, v1160:0, 1 + v1170:0, v1260:1, v1334:1) :|: v1170:0 < 100000 && v1170:0 > 0 && v1170:0 < 99999 && v1159:0 + (4 + 4 * v1170:0) > 4 && v1160:0 + (4 + 4 * v1170:0) > 4 && v1334:0 > v1260:0 52.90/16.80 f_626(x, x1, x2, x3, x4) -> f_626(x, x1, 1 + x2, x5, x6) :|: x2 < 100000 && x2 > 0 && x2 < 99999 && x + (4 + 4 * x2) > 4 && x1 + (4 + 4 * x2) > 4 && x4 < x3 52.90/16.80 f_626(x7, x8, x9, x10, x11) -> f_541(x7, x8, 1 + x9, x9) :|: x9 < 100000 && x9 > 0 && x10 = x11 52.90/16.80 f_541(v1045:0, v1046:0, v1056:0, v1050:0) -> f_541(v1045:0, v1046:0, 1 + v1056:0, v1056:0) :|: v1056:0 < 100000 && v1050:0 < 99999 && v1045:0 + 4 * v1056:0 > 4 && v1056:0 > 0 && v1046:0 + 4 * v1056:0 > 4 52.90/16.80 f_541(x12, x13, x14, x15) -> f_626(x12, x13, 1 + x14, x16, x17) :|: x14 < 100000 && x15 < 99999 && x12 + 4 * x14 > 4 && x13 + 4 * x14 > 4 && x14 > 0 && x14 < 99999 && x12 + (4 + 4 * x14) > 4 && x13 + (4 + 4 * x14) > 4 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (17) IRS2T2 (EQUIVALENT) 52.90/16.80 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 52.90/16.80 52.90/16.80 (f_626_5,1) 52.90/16.80 (f_541_5,2) 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (18) 52.90/16.80 Obligation: 52.90/16.80 START: 0; 52.90/16.80 52.90/16.80 FROM: 0; 52.90/16.80 TO: 1; 52.90/16.80 52.90/16.80 FROM: 0; 52.90/16.80 TO: 2; 52.90/16.80 52.90/16.80 FROM: 1; 52.90/16.80 oldX0 := x0; 52.90/16.80 oldX1 := x1; 52.90/16.80 oldX2 := x2; 52.90/16.80 oldX3 := x3; 52.90/16.80 oldX4 := x4; 52.90/16.80 oldX5 := nondet(); 52.90/16.80 oldX6 := nondet(); 52.90/16.80 assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 > oldX3); 52.90/16.80 x0 := oldX0; 52.90/16.80 x1 := oldX1; 52.90/16.80 x2 := 1 + oldX2; 52.90/16.80 x3 := oldX5; 52.90/16.80 x4 := oldX6; 52.90/16.80 TO: 1; 52.90/16.80 52.90/16.80 FROM: 1; 52.90/16.80 oldX0 := x0; 52.90/16.80 oldX1 := x1; 52.90/16.80 oldX2 := x2; 52.90/16.80 oldX3 := x3; 52.90/16.80 oldX4 := x4; 52.90/16.80 oldX5 := nondet(); 52.90/16.80 oldX6 := nondet(); 52.90/16.80 assume(oldX2 < 100000 && oldX2 > 0 && oldX2 < 99999 && oldX0 + (4 + 4 * oldX2) > 4 && oldX1 + (4 + 4 * oldX2) > 4 && oldX4 < oldX3); 52.90/16.80 x0 := oldX0; 52.90/16.80 x1 := oldX1; 52.90/16.80 x2 := 1 + oldX2; 52.90/16.80 x3 := oldX5; 52.90/16.80 x4 := oldX6; 52.90/16.80 TO: 1; 52.90/16.80 52.90/16.80 FROM: 1; 52.90/16.80 oldX0 := x0; 52.90/16.80 oldX1 := x1; 52.90/16.80 oldX2 := x2; 52.90/16.80 oldX3 := x3; 52.90/16.80 oldX4 := x4; 52.90/16.80 oldX5 := nondet(); 52.90/16.80 assume(oldX2 < 100000 && oldX2 > 0 && oldX3 = oldX4); 52.90/16.80 x0 := oldX0; 52.90/16.80 x1 := oldX1; 52.90/16.80 x2 := 1 + oldX2; 52.90/16.80 x3 := oldX2; 52.90/16.80 x4 := oldX5; 52.90/16.80 TO: 2; 52.90/16.80 52.90/16.80 FROM: 2; 52.90/16.80 oldX0 := x0; 52.90/16.80 oldX1 := x1; 52.90/16.80 oldX2 := x2; 52.90/16.80 oldX3 := x3; 52.90/16.80 oldX4 := x4; 52.90/16.80 oldX5 := nondet(); 52.90/16.80 assume(oldX2 < 100000 && oldX3 < 99999 && oldX0 + 4 * oldX2 > 4 && oldX2 > 0 && oldX1 + 4 * oldX2 > 4); 52.90/16.80 x0 := oldX0; 52.90/16.80 x1 := oldX1; 52.90/16.80 x2 := 1 + oldX2; 52.90/16.80 x3 := oldX2; 52.90/16.80 x4 := oldX5; 52.90/16.80 TO: 2; 52.90/16.80 52.90/16.80 FROM: 2; 52.90/16.80 oldX0 := x0; 52.90/16.80 oldX1 := x1; 52.90/16.80 oldX2 := x2; 52.90/16.80 oldX3 := x3; 52.90/16.80 oldX4 := x4; 52.90/16.80 oldX5 := nondet(); 52.90/16.80 oldX6 := nondet(); 52.90/16.80 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); 52.90/16.80 x0 := oldX0; 52.90/16.80 x1 := oldX1; 52.90/16.80 x2 := 1 + oldX2; 52.90/16.80 x3 := oldX5; 52.90/16.80 x4 := oldX6; 52.90/16.80 TO: 1; 52.90/16.80 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (19) T2 (EQUIVALENT) 52.90/16.80 Initially, performed program simplifications using lexicographic rank functions: 52.90/16.80 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 52.90/16.80 - Rank function 1: 52.90/16.80 RF for loc. 6: -2*x2 52.90/16.80 RF for loc. 7: -2*x2 52.90/16.80 RF for loc. 8: -1-2*x2 52.90/16.80 RF for loc. 12: -1-2*x2 52.90/16.80 Bound for (chained) transitions 5: -199999 52.90/16.80 Bound for (chained) transitions 7: -199999 52.90/16.80 Bound for (chained) transitions 20: -199999 52.90/16.80 Bound for (chained) transitions 21: -199997 52.90/16.80 - Rank function 2: 52.90/16.80 RF for loc. 6: -2*x2 52.90/16.80 RF for loc. 7: 0 52.90/16.80 RF for loc. 8: -1-2*x2 52.90/16.80 RF for loc. 12: -1 52.90/16.80 Bound for (chained) transitions 6: -199997 52.90/16.80 Bound for (chained) transitions 17: 0 52.90/16.80 - Rank function 3: 52.90/16.80 RF for loc. 6: 1 52.90/16.80 RF for loc. 8: 0 52.90/16.80 Bound for (chained) transitions 2: 1 52.90/16.80 52.90/16.80 ---------------------------------------- 52.90/16.80 52.90/16.80 (20) 52.90/16.80 YES 52.96/16.84 EOF