/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/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, 178 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 12.7 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 137 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 1 ms] (11) IntTRS (12) RankingReductionPairProof [EQUIVALENT, 24 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 173 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 973 ms] (20) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/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 %a = alloca [100000 x i32], align 16 %b = alloca [100000 x i32], align 16 %i = alloca i32, align 4 %rv = alloca i32, align 4 %x = alloca i32, align 4 store 0, %1 store 0, %i store 1, %rv br %2 2: %3 = load %i %4 = icmp slt %3 100000 br %4, %5, %19 5: %6 = load %i %7 = sext i32 %6 to i64 %8 = getelementptr %a, 0, %7 %9 = load %8 %10 = load %i %11 = sext i32 %10 to i64 %12 = getelementptr %b, 0, %11 %13 = load %12 %14 = icmp ne %9 %13 br %14, %15, %16 15: store 0, %rv br %16 16: %17 = load %i %18 = add %17 1 store %18, %i br %2 19: %20 = load %rv %21 = icmp ne %20 0 br %21, %22, %41 22: store 0, %x br %23 23: %24 = load %x %25 = icmp slt %24 100000 br %25, %26, %40 26: %27 = load %x %28 = sext i32 %27 to i64 %29 = getelementptr %a, 0, %28 %30 = load %29 %31 = load %x %32 = sext i32 %31 to i64 %33 = getelementptr %b, 0, %32 %34 = load %33 %35 = icmp eq %30 %34 %36 = zext i1 %35 to i32 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assert(i32 %36) br %37 37: %38 = load %x %39 = add %38 1 store %39, %x br %23 40: br %41 41: 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_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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 1 rulesP rules: 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 Filtered unneeded arguments: 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) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 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 ---------------------------------------- (9) Obligation: Rules: 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 ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: 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 ---------------------------------------- (12) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_870 ] = -1*f_870_3 The following rules are decreasing: 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 The following rules are bounded: 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 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 55 rulesP rules: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Combined rules. Obtained 6 rulesP rules: 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 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 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 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 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 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 Filtered unneeded arguments: 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) 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) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 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 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 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 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 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 ---------------------------------------- (16) Obligation: Rules: 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 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 f_626(x7, x8, x9, x10, x11) -> f_541(x7, x8, 1 + x9, x9) :|: x9 < 100000 && x9 > 0 && x10 = x11 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 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 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_626_5,1) (f_541_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(); 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; 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; ---------------------------------------- (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: -199999 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: 1 RF for loc. 8: 0 Bound for (chained) transitions 2: 1 ---------------------------------------- (20) YES