/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 175 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 4323 ms] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 74 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 1 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 5 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 72 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 3 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 66 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 2 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 77 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 353 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 104 ms] (37) IntTRS (38) IRS2T2 [EQUIVALENT, 0 ms] (39) T2IntSys (40) T2 [EQUIVALENT, 873 ms] (41) YES (42) LLVM Symbolic Execution SCC (43) SCC2IRS [SOUND, 58 ms] (44) IntTRS (45) RankingReductionPairProof [EQUIVALENT, 14 ms] (46) YES (47) LLVM Symbolic Execution SCC (48) SCC2IRS [SOUND, 61 ms] (49) IntTRS (50) IRS2T2 [EQUIVALENT, 0 ms] (51) T2IntSys (52) T2 [EQUIVALENT, 3 ms] (53) YES (54) LLVM Symbolic Execution SCC (55) SCC2IRS [SOUND, 40 ms] (56) IntTRS (57) IRS2T2 [EQUIVALENT, 0 ms] (58) T2IntSys (59) T2 [EQUIVALENT, 802 ms] (60) YES (61) LLVM Symbolic Execution SCC (62) SCC2IRS [SOUND, 74 ms] (63) IntTRS (64) IRS2T2 [EQUIVALENT, 4 ms] (65) T2IntSys (66) T2 [EQUIVALENT, 352 ms] (67) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %i = alloca i32, align 4 %j = alloca i32, align 4 %an = alloca i32, align 4 %bn = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %i %3 = call i32 @__VERIFIER_nondet_int() store %3, %j %4 = call i32 @__VERIFIER_nondet_int() store %4, %an %5 = call i32 @__VERIFIER_nondet_int() store %5, %bn br %6 6: %7 = load %an %8 = load %i %9 = icmp sge %7 %8 br %9, %10, %14 10: %11 = load %bn %12 = load %j %13 = icmp sge %11 %12 br %13, %32, %14 14: %15 = load %an %16 = load %i %17 = icmp sge %15 %16 br %17, %18, %22 18: %19 = load %bn %20 = load %j %21 = icmp sle %19 %20 br %21, %32, %22 22: %23 = load %an %24 = load %i %25 = icmp sle %23 %24 br %25, %26, %30 26: %27 = load %bn %28 = load %j %29 = icmp sge %27 %28 br %30 30: %31 = phi [0, %22], [%29, %26] br %32 32: %33 = phi [1, %18], [1, %10], [%31, %30] br %33, %34, %77 34: %35 = load %an %36 = load %i %37 = icmp sge %35 %36 br %37, %38, %52 38: %39 = load %bn %40 = load %j %41 = icmp sge %39 %40 br %41, %42, %52 42: %43 = call i32 @__VERIFIER_nondet_int() %44 = icmp ne %43 0 br %44, %45, %48 45: %46 = load %j %47 = add %46 1 store %47, %j br %51 48: %49 = load %i %50 = add %49 1 store %50, %i br %51 51: br %76 52: %53 = load %an %54 = load %i %55 = icmp sge %53 %54 br %55, %56, %63 56: %57 = load %bn %58 = load %j %59 = icmp sle %57 %58 br %59, %60, %63 60: %61 = load %i %62 = add %61 1 store %62, %i br %75 63: %64 = load %an %65 = load %i %66 = icmp sle %64 %65 br %66, %67, %74 67: %68 = load %bn %69 = load %j %70 = icmp sge %68 %69 br %70, %71, %74 71: %72 = load %j %73 = add %72 1 store %73, %j br %74 74: br %75 75: br %76 76: br %6 77: 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 9 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 41 rulesP rules: f_1897(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1899(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1899(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1901(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1901(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1903(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1903(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1905(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: v30292 <= v30283 f_1905(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1909(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1909(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1912(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1912(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1915(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1915(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1917(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1917(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1919(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1919(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1921(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1921(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1923(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1923(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1925(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1925(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1927(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1927(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1929(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1929(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1931(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1931(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1933(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1933(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1935(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1935(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1937(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1937(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1939(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1939(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1941(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1941(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30285, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1943(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1943(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1944(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1944(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1945(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1945(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1946(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1946(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1947(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1947(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1948(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1948(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1949(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1949(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1950(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1950(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1951(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1951(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1952(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1952(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1953(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1953(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1954(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1954(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1955(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1955(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1956(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1956(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1957(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1957(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30285, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1958(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: 0 = 0 f_1958(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1959(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: v32697 = 1 + v30292 f_1959(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1960(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1960(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1961(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1961(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1895(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30292, 1, v30287, 0, v30289, v30290, v30291, v32697, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE f_1895(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) -> f_1897(v30276, v30277, v30278, v30279, v30280, v30281, v30282, v30283, v30284, v30285, 1, v30287, 0, v30289, v30290, v30291, v30292, v30293, v30294, v30295, v30296, v30297, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1897(v30276:0, v30277:0, v30278:0, v30279:0, v30280:0, v30281:0, v30282:0, v30283:0, v30284:0, v30285:0, 1, v30287:0, 0, v30289:0, v30290:0, v30291:0, v30292:0, v30293:0, v30294:0, v30295:0, v30296:0, v30297:0, 3, 4) -> f_1897(v30276:0, v30277:0, v30278:0, v30279:0, v30280:0, v30281:0, v30282:0, v30283:0, v30284:0, v30292:0, 1, v30287:0, 0, v30289:0, v30290:0, v30291:0, 1 + v30292:0, v30293:0, v30294:0, v30295:0, v30296:0, v30297:0, 3, 4) :|: v30292:0 <= v30283:0 Filtered unneeded arguments: f_1897(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24) -> f_1897(x8, x17) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1897(v30283:0, v30292:0) -> f_1897(v30283:0, 1 + v30292:0) :|: v30292:0 <= v30283:0 ---------------------------------------- (9) Obligation: Rules: f_1897(v30283:0, v30292:0) -> f_1897(v30283:0, 1 + v30292:0) :|: v30292:0 <= v30283:0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1897_2,1) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 44 rulesP rules: f_1758(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1763(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1763(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1769(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1769(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1775(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1775(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1781(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1781(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1787(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1787(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1793(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1793(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1798(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1798(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1803(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1803(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1808(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1808(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1813(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1813(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1818(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1818(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1823(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1823(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1828(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1828(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1833(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1833(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1838(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: v25391 <= v25384 f_1838(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1843(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1843(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1848(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1848(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1853(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1853(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1857(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1857(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1861(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1861(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1864(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1864(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1867(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1867(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1870(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1870(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1873(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1873(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1876(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1876(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1879(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1879(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1881(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1881(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1883(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1883(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1885(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1885(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1887(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1887(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1889(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1889(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1891(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1891(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1893(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1893(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1896(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1896(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1898(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1898(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25390, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1900(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: 0 = 0 f_1900(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1902(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: v30591 = 1 + v25391 f_1902(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1904(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1904(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1907(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1907(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1908(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25391, v30591, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE f_1908(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) -> f_1911(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) :|: TRUE f_1911(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) -> f_1914(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) :|: TRUE f_1914(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) -> f_1753(v30643, v30644, v30645, v30646, v30647, v30648, v30649, v30650, v30651, v30652, 0, v30654, 1, v30656, v30657, v30658, v30659, v30660, v30661, v30662, v30663, 3, 4) :|: TRUE f_1753(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) -> f_1758(v25376, v25377, v25378, v25379, v25380, v25381, v25382, v25383, v25384, v25385, 0, v25387, 1, v25389, v25390, v25391, v25392, v25393, v25394, v25395, v25396, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1758(v25376:0, v25377:0, v25378:0, v25379:0, v25380:0, v25381:0, v25382:0, v25383:0, v25384:0, v25385:0, 0, v25387:0, 1, v25389:0, v25390:0, v25391:0, v25392:0, v25393:0, v25394:0, v25395:0, v25396:0, 3, 4) -> f_1758(v25376:0, v25377:0, v25378:0, v25379:0, v25380:0, v25381:0, v25382:0, v25383:0, v25384:0, v25385:0, 0, v25387:0, 1, v25389:0, v25391:0, 1 + v25391:0, v25392:0, v25393:0, v25394:0, v25395:0, v25396:0, 3, 4) :|: v25391:0 <= v25384:0 Filtered unneeded arguments: f_1758(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1758(x9, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1758(v25384:0, v25391:0) -> f_1758(v25384:0, 1 + v25391:0) :|: v25391:0 <= v25384:0 ---------------------------------------- (16) Obligation: Rules: f_1758(v25384:0, v25391:0) -> f_1758(v25384:0, 1 + v25391:0) :|: v25391:0 <= v25384:0 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1758_2,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 43 rulesP rules: f_1675(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1680(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1680(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1685(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1685(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1690(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1690(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1695(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1695(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1700(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1700(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1705(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1705(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1710(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1710(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1715(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1715(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1720(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1720(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1726(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1726(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1731(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1731(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1736(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1736(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1742(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1742(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1747(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1747(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1754(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1754(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1759(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1759(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1764(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: v22704 <= v22699 f_1764(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1770(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1770(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1776(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1776(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1782(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1782(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1788(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1788(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1794(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1794(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1799(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1799(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1804(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1804(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1809(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1809(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1814(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1814(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1819(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1819(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1824(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1824(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1829(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1829(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1834(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1834(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1840(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1840(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1845(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1845(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1850(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1850(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1855(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1855(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1859(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1859(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1862(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1862(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1865(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1865(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22703, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1868(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: 0 = 0 f_1868(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1871(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: v29934 = 1 + v22704 f_1871(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1874(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1874(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1877(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1877(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1670(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22704, v29934, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE f_1670(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) -> f_1675(v22691, v22692, v22693, v22694, v22695, v22696, v22697, v22698, v22699, v22700, 0, 1, v22703, v22704, v22705, v22706, v22707, v22708, v22709, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1675(v22691:0, v22692:0, v22693:0, v22694:0, v22695:0, v22696:0, v22697:0, v22698:0, v22699:0, v22700:0, 0, 1, v22703:0, v22704:0, v22705:0, v22706:0, v22707:0, v22708:0, v22709:0, 3, 4) -> f_1675(v22691:0, v22692:0, v22693:0, v22694:0, v22695:0, v22696:0, v22697:0, v22698:0, v22699:0, v22700:0, 0, 1, v22704:0, 1 + v22704:0, v22705:0, v22706:0, v22707:0, v22708:0, v22709:0, 3, 4) :|: v22704:0 <= v22699:0 Filtered unneeded arguments: f_1675(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_1675(x9, x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1675(v22699:0, v22704:0) -> f_1675(v22699:0, 1 + v22704:0) :|: v22704:0 <= v22699:0 ---------------------------------------- (23) Obligation: Rules: f_1675(v22699:0, v22704:0) -> f_1675(v22699:0, 1 + v22704:0) :|: v22704:0 <= v22699:0 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1675_2,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (26) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 41 rulesP rules: f_1649(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1653(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1653(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1657(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1657(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1661(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1661(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1665(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: v22023 <= v22016 f_1665(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1671(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1671(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1676(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1676(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1681(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1681(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1686(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1686(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1691(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1691(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1696(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1696(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1701(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1701(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1706(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1706(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1711(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1711(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1716(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1716(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1721(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1721(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1727(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1727(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1732(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1732(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1737(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1737(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1743(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1743(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1748(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1748(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22018, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1755(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1755(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1760(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1760(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1766(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1766(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1772(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1772(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1778(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1778(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1784(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1784(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1790(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1790(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1795(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1795(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1800(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1800(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1805(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1805(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1810(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1810(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1815(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1815(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1820(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1820(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1825(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1825(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1830(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1830(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22018, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1835(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: 0 = 0 f_1835(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1841(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: v28412 = 1 + v22023 f_1841(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1846(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1846(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1851(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1851(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1645(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22023, 1, v22020, 0, v22022, v28412, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE f_1645(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) -> f_1649(v22009, v22010, v22011, v22012, v22013, v22014, v22015, v22016, v22017, v22018, 1, v22020, 0, v22022, v22023, v22024, v22025, v22026, v22027, v22028, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1649(v22009:0, v22010:0, v22011:0, v22012:0, v22013:0, v22014:0, v22015:0, v22016:0, v22017:0, v22018:0, 1, v22020:0, 0, v22022:0, v22023:0, v22024:0, v22025:0, v22026:0, v22027:0, v22028:0, 3, 4) -> f_1649(v22009:0, v22010:0, v22011:0, v22012:0, v22013:0, v22014:0, v22015:0, v22016:0, v22017:0, v22023:0, 1, v22020:0, 0, v22022:0, 1 + v22023:0, v22024:0, v22025:0, v22026:0, v22027:0, v22028:0, 3, 4) :|: v22023:0 <= v22016:0 Filtered unneeded arguments: f_1649(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1649(x8, x15) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1649(v22016:0, v22023:0) -> f_1649(v22016:0, 1 + v22023:0) :|: v22023:0 <= v22016:0 ---------------------------------------- (30) Obligation: Rules: f_1649(v22016:0, v22023:0) -> f_1649(v22016:0, 1 + v22023:0) :|: v22023:0 <= v22016:0 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1649_2,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (33) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 67 rulesP rules: f_1153(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) -> f_1163(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) :|: v7700 = 1 + v7436 f_1163(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) -> f_1173(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) :|: TRUE f_1173(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) -> f_1183(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) :|: TRUE f_1183(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7700, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) -> f_1184(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7439, v7700, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) :|: TRUE f_1184(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1193(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1193(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1202(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1202(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1210(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1210(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1220(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1220(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1230(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1230(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1240(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1240(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1250(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1250(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7974, v7975, v7976, v7977, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1260(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1260(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1268(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: v7977 <= v7971 f_1268(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1277(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1277(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1286(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1286(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1295(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1295(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1304(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1304(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1313(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1313(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1322(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1322(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1331(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1331(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1340(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1340(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7974, v7975, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1349(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1349(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1358(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1358(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1367(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1367(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v7975, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1376(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1376(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1385(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: v13262 != 0 f_1376(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1386(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) :|: v13262 = 0 f_1385(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1395(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: 0 = 0 f_1395(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1406(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1406(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) -> f_1142(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, v13262, v7974, v7976, v7978, v7979, v7980, v7981, v7982, 0, 3, 4) :|: TRUE f_1142(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7438, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) -> f_1153(v7425, v7426, v7427, v7428, v7429, v7430, v7431, v7432, v7433, v7434, 1, v7436, v7437, v7439, v7440, v7441, v7442, v7443, v7444, 0, 3, 4) :|: 0 = 0 f_1386(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) -> f_1396(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) :|: 0 = 0 f_1396(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) -> f_1407(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) :|: TRUE f_1407(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7976, v7974, v7978, v7979, v7980, v7981, v7982, 3, 4) -> f_1144(v7963, v7964, v7965, v7966, v7967, v7968, v7969, v7970, v7971, v7972, 1, v7977, 0, v7974, v7976, v7978, v7979, v7980, v7981, v7982, 3, 4) :|: TRUE f_1144(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7488, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1154(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1154(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1164(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: v7701 = 1 + v7483 f_1164(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1174(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1174(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1185(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1185(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1194(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1194(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1203(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1203(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1211(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1211(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7483, 1, v7485, 0, v7487, v7701, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1221(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1221(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1231(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: v7701 <= v7481 f_1231(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1241(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1241(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1251(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1251(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1261(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1261(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1270(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1270(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1279(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1279(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1288(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1288(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1297(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1297(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1306(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1306(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v7483, 0, v7487, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1315(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1315(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1324(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1324(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1333(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1333(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1342(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1342(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1351(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1351(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1360(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1360(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1369(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1369(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1378(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1378(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1388(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: v13263 != 0 f_1378(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1389(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: v13263 = 0 f_1388(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1398(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 0, 3, 4) :|: 0 = 0 f_1398(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 0, 3, 4) -> f_1409(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 0, 3, 4) :|: TRUE f_1409(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 0, 3, 4) -> f_1142(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, v13263, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 0, 3, 4) :|: TRUE f_1389(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1399(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: 0 = 0 f_1399(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1410(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE f_1410(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) -> f_1144(v7474, v7475, v7476, v7477, v7478, v7479, v7480, v7481, v7482, v7701, 1, v7485, 0, v7487, v7483, v7489, v7490, v7491, v7492, v7493, 3, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_1378(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, v7701:0, 1, v7485:0, 0, 0, v7487:0, v7483:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 3, 4) -> f_1378(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, 1 + v7701:0, 1, v7485:0, v13263:1, 0, v7487:0, v7701:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 3, 4) :|: v7481:0 >= 1 + v7701:0 f_1153(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, v7434:0, 1, v7436:0, v7437:0, v7439:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 0, 3, 4) -> f_1378(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, 1 + v7434:0, 1, 1 + v7436:0, v13263:0, 0, v7436:0, v7434:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 3, 4) :|: v7432:0 >= 1 + v7434:0 && v7433:0 >= 1 + v7436:0 f_1153(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, v7434:0, 1, v7436:0, v7437:0, v7439:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 0, 3, 4) -> f_1153(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, v7434:0, 1, 1 + v7436:0, v13262:0, v7439:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 0, 3, 4) :|: v13262:0 < 0 && v7433:0 >= 1 + v7436:0 f_1153(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, v7434:0, 1, v7436:0, v7437:0, v7439:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 0, 3, 4) -> f_1153(v7425:0, v7426:0, v7427:0, v7428:0, v7429:0, v7430:0, v7431:0, v7432:0, v7433:0, v7434:0, 1, 1 + v7436:0, v13262:0, v7439:0, v7440:0, v7441:0, v7442:0, v7443:0, v7444:0, 0, 3, 4) :|: v13262:0 > 0 && v7433:0 >= 1 + v7436:0 f_1378(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, v7701:0, 1, v7485:0, v13263:0, 0, v7487:0, v7483:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 3, 4) -> f_1153(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, v7701:0, 1, v7485:0, v13263:0, v7483:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 0, 3, 4) :|: v13263:0 < 0 f_1378(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, v7701:0, 1, v7485:0, v13263:0, 0, v7487:0, v7483:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 3, 4) -> f_1153(v7474:0, v7475:0, v7476:0, v7477:0, v7478:0, v7479:0, v7480:0, v7481:0, v7482:0, v7701:0, 1, v7485:0, v13263:0, v7483:0, v7489:0, v7490:0, v7491:0, v7492:0, v7493:0, 0, 3, 4) :|: v13263:0 > 0 Filtered unneeded arguments: f_1378(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_1378(x8, x9, x10, x12, x13) f_1153(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_1153(x8, x9, x10, x12) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_1378(v7481:0, v7482:0, v7701:0, v7485:0, cons_0) -> f_1378(v7481:0, v7482:0, 1 + v7701:0, v7485:0, v13263:1) :|: v7481:0 >= 1 + v7701:0 && cons_0 = 0 f_1153(v7432:0, v7433:0, v7434:0, v7436:0) -> f_1378(v7432:0, v7433:0, 1 + v7434:0, 1 + v7436:0, v13263:0) :|: v7432:0 >= 1 + v7434:0 && v7433:0 >= 1 + v7436:0 f_1153(v7432:0, v7433:0, v7434:0, v7436:0) -> f_1153(v7432:0, v7433:0, v7434:0, 1 + v7436:0) :|: v7433:0 >= 1 + v7436:0 f_1378(v7481:0, v7482:0, v7701:0, v7485:0, v13263:0) -> f_1153(v7481:0, v7482:0, v7701:0, v7485:0) :|: v13263:0 < 0 f_1378(v7481:0, v7482:0, v7701:0, v7485:0, v13263:0) -> f_1153(v7481:0, v7482:0, v7701:0, v7485:0) :|: v13263:0 > 0 ---------------------------------------- (37) Obligation: Rules: f_1378(v7481:0, v7482:0, v7701:0, v7485:0, cons_0) -> f_1378(v7481:0, v7482:0, 1 + v7701:0, v7485:0, v13263:1) :|: v7481:0 >= 1 + v7701:0 && cons_0 = 0 f_1153(v7432:0, v7433:0, v7434:0, v7436:0) -> f_1378(v7432:0, v7433:0, 1 + v7434:0, 1 + v7436:0, v13263:0) :|: v7432:0 >= 1 + v7434:0 && v7433:0 >= 1 + v7436:0 f_1153(x, x1, x2, x3) -> f_1153(x, x1, x2, 1 + x3) :|: x1 >= 1 + x3 f_1378(x4, x5, x6, x7, x8) -> f_1153(x4, x5, x6, x7) :|: x8 < 0 f_1378(x9, x10, x11, x12, x13) -> f_1153(x9, x10, x11, x12) :|: x13 > 0 ---------------------------------------- (38) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1378_5,1) (f_1153_5,2) ---------------------------------------- (39) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX0 >= 1 + oldX2 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := oldX3; x4 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX0 >= 1 + oldX2 && oldX1 >= 1 + oldX3); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := 1 + oldX3; x4 := oldX5; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX1 >= 1 + oldX3); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := 1 + oldX3; x4 := oldX5; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 < 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := nondet(); assume(oldX4 > 0); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := oldX3; x4 := oldX5; TO: 2; ---------------------------------------- (40) 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: 3+2*x0+2*x1-2*x2-2*x3 RF for loc. 7: 1+2*x0+2*x1-2*x2-2*x3 RF for loc. 8: 2+2*x0+2*x1-2*x2-2*x3 RF for loc. 12: 2*x0+2*x1-2*x2-2*x3 Bound for (chained) transitions 20: 4 - Rank function 2: RF for loc. 6: 1+3*x1-3*x3 RF for loc. 7: 3*x1-3*x3 RF for loc. 8: 1+3*x1-3*x3 RF for loc. 12: -1+3*x1-3*x3 Bound for (chained) transitions 21: 2 - Rank function 3: RF for loc. 6: 0 RF for loc. 7: -1 RF for loc. 8: 0 RF for loc. 12: -2 Bound for (chained) transitions 6: 0 Bound for (chained) transitions 7: 0 Bound for (chained) transitions 17: -1 - Rank function 4: RF for loc. 6: 2*x0-2*x2 RF for loc. 8: -1+2*x0-2*x2 Bound for (chained) transitions 5: 1 - Rank function 5: RF for loc. 6: 0 RF for loc. 8: -1 Bound for (chained) transitions 2: 0 ---------------------------------------- (41) YES ---------------------------------------- (42) Obligation: SCC ---------------------------------------- (43) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 43 rulesP rules: f_1052(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1061(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1061(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1071(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1071(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1081(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1081(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1091(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1091(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1101(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1101(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1111(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1111(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1123(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1123(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1135(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1135(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1149(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1149(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1159(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1159(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1169(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1169(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1179(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1179(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1189(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1189(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1198(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1198(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1206(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1206(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1215(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: v5755 <= v5751 f_1215(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1225(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1225(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1236(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1236(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1246(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1246(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1256(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1256(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1265(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1265(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1274(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1274(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1283(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1283(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1292(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1292(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1301(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1301(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1310(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1310(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1319(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1319(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1328(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1328(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1337(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1337(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1346(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1346(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1355(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1355(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1364(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1364(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1373(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1373(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1382(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1382(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1392(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1392(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1402(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1402(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5754, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1413(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: 0 = 0 f_1413(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1419(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: v14203 = 1 + v5755 f_1419(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1425(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1425(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1432(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1432(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1438(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1438(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1043(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5755, v14203, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE f_1043(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) -> f_1052(v5743, v5744, v5745, v5746, v5747, v5748, v5749, v5750, v5751, 0, 1, v5754, v5755, v5756, v5757, v5758, v5759, v5760, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1052(v5743:0, v5744:0, v5745:0, v5746:0, v5747:0, v5748:0, v5749:0, v5750:0, v5751:0, 0, 1, v5754:0, v5755:0, v5756:0, v5757:0, v5758:0, v5759:0, v5760:0, 3, 4) -> f_1052(v5743:0, v5744:0, v5745:0, v5746:0, v5747:0, v5748:0, v5749:0, v5750:0, v5751:0, 0, 1, v5755:0, 1 + v5755:0, v5756:0, v5757:0, v5758:0, v5759:0, v5760:0, 3, 4) :|: v5755:0 <= v5751:0 Filtered unneeded arguments: f_1052(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_1052(x9, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 ---------------------------------------- (44) Obligation: Rules: f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 ---------------------------------------- (45) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_1052 ] = -1*f_1052_2 + f_1052_1 The following rules are decreasing: f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 The following rules are bounded: f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: SCC ---------------------------------------- (48) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 41 rulesP rules: f_1007(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4963, 1, 0, v4966, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1015(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4963, 1, 0, v4966, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1015(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4963, 1, 0, v4966, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1023(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1023(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1031(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: v4966 <= v4961 f_1031(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1040(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1040(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1050(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1050(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1059(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1059(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1069(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1069(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1079(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1079(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1089(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1089(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1099(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1099(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1109(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1109(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1121(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1121(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1133(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1133(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1147(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1147(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1157(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1157(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1167(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1167(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1177(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1177(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1187(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1187(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1196(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1196(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1205(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1205(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1214(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1214(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1224(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1224(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1235(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1235(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1245(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1245(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1255(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1255(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1264(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1264(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1273(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1273(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1282(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1282(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1291(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1291(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1300(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1300(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1309(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1309(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1318(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1318(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1327(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1327(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1336(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1336(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4963, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1345(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: 0 = 0 f_1345(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1354(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: v12270 = 1 + v4966 f_1354(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1363(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1363(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1372(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1372(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1381(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_1381(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_999(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4966, 1, 0, v12270, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE f_999(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4963, 1, 0, v4966, v4967, v4968, v4969, v4970, v4971, 3, 4) -> f_1007(v4954, v4955, v4956, v4957, v4958, v4959, v4960, v4961, v4962, v4963, 1, 0, v4966, v4967, v4968, v4969, v4970, v4971, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_1007(v4954:0, v4955:0, v4956:0, v4957:0, v4958:0, v4959:0, v4960:0, v4961:0, v4962:0, v4963:0, 1, 0, v4966:0, v4967:0, v4968:0, v4969:0, v4970:0, v4971:0, 3, 4) -> f_1007(v4954:0, v4955:0, v4956:0, v4957:0, v4958:0, v4959:0, v4960:0, v4961:0, v4962:0, v4966:0, 1, 0, 1 + v4966:0, v4967:0, v4968:0, v4969:0, v4970:0, v4971:0, 3, 4) :|: v4966:0 <= v4961:0 Filtered unneeded arguments: f_1007(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_1007(x8, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1007(v4961:0, v4966:0) -> f_1007(v4961:0, 1 + v4966:0) :|: v4966:0 <= v4961:0 ---------------------------------------- (49) Obligation: Rules: f_1007(v4961:0, v4966:0) -> f_1007(v4961:0, 1 + v4966:0) :|: v4966:0 <= v4961:0 ---------------------------------------- (50) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1007_2,1) ---------------------------------------- (51) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (52) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (53) YES ---------------------------------------- (54) Obligation: SCC ---------------------------------------- (55) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 29 rulesP rules: f_756(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_761(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_761(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_766(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_766(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_772(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_772(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_778(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_778(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_784(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_784(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_790(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: v2810 <= v2806 f_790(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_797(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_797(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_804(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_804(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_811(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_811(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_818(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_818(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_825(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_825(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_832(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_832(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_839(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_839(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_846(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_846(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2808, v2809, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_854(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_854(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_861(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_861(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_868(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_868(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v2809, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_875(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_875(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_882(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: v4003 != 0 f_882(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_890(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_890(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_898(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_898(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2808, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_906(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 f_906(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_914(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: v4272 = 1 + v2810 f_914(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_922(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_922(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_930(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_930(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_938(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_938(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_945(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_945(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_751(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2810, v4003, v4272, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: TRUE f_751(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) -> f_756(v2798, v2799, v2800, v2801, v2802, v2803, v2804, v2805, v2806, 1, v2808, v2809, v2810, v2811, v2812, v2813, v2814, v2815, 0, 3, 4) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_756(v2798:0, v2799:0, v2800:0, v2801:0, v2802:0, v2803:0, v2804:0, v2805:0, v2806:0, 1, v2808:0, v2809:0, v2810:0, v2811:0, v2812:0, v2813:0, v2814:0, v2815:0, 0, 3, 4) -> f_756(v2798:0, v2799:0, v2800:0, v2801:0, v2802:0, v2803:0, v2804:0, v2805:0, v2806:0, 1, v2810:0, v4003:0, 1 + v2810:0, v2811:0, v2812:0, v2813:0, v2814:0, v2815:0, 0, 3, 4) :|: v4003:0 < 0 && v2810:0 <= v2806:0 f_756(v2798:0, v2799:0, v2800:0, v2801:0, v2802:0, v2803:0, v2804:0, v2805:0, v2806:0, 1, v2808:0, v2809:0, v2810:0, v2811:0, v2812:0, v2813:0, v2814:0, v2815:0, 0, 3, 4) -> f_756(v2798:0, v2799:0, v2800:0, v2801:0, v2802:0, v2803:0, v2804:0, v2805:0, v2806:0, 1, v2810:0, v4003:0, 1 + v2810:0, v2811:0, v2812:0, v2813:0, v2814:0, v2815:0, 0, 3, 4) :|: v4003:0 > 0 && v2810:0 <= v2806:0 Filtered unneeded arguments: f_756(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_756(x9, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_756(v2806:0, v2810:0) -> f_756(v2806:0, 1 + v2810:0) :|: v2810:0 <= v2806:0 ---------------------------------------- (56) Obligation: Rules: f_756(v2806:0, v2810:0) -> f_756(v2806:0, 1 + v2810:0) :|: v2810:0 <= v2806:0 ---------------------------------------- (57) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_756_2,1) ---------------------------------------- (58) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (59) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (60) YES ---------------------------------------- (61) Obligation: SCC ---------------------------------------- (62) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 29 rulesP rules: f_746(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_752(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_752(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_757(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_757(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_762(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_762(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_767(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: v2633 <= v2628 f_767(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_773(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_773(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_779(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_779(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_785(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_785(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_792(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_792(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_799(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_799(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_806(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_806(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_813(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_813(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_820(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_820(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v2630, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_827(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_827(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_834(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_834(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_841(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_841(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_848(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_848(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_856(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_856(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_863(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_863(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_870(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_870(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_877(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v4004, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_877(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, v4004, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_886(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: v4004 = 0 f_886(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_894(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_894(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_902(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_902(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2630, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_910(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: 0 = 0 f_910(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_918(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: v4275 = 1 + v2633 f_918(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_926(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_926(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_934(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_934(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_739(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2633, 1, 0, v4275, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE f_739(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) -> f_746(v2621, v2622, v2623, v2624, v2625, v2626, v2627, v2628, v2629, v2630, 1, 0, v2633, v2634, v2635, v2636, v2637, v2638, 3, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_746(v2621:0, v2622:0, v2623:0, v2624:0, v2625:0, v2626:0, v2627:0, v2628:0, v2629:0, v2630:0, 1, 0, v2633:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, 3, 4) -> f_746(v2621:0, v2622:0, v2623:0, v2624:0, v2625:0, v2626:0, v2627:0, v2628:0, v2629:0, v2633:0, 1, 0, 1 + v2633:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, 3, 4) :|: v2633:0 <= v2628:0 Filtered unneeded arguments: f_746(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_746(x8, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 ---------------------------------------- (63) Obligation: Rules: f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 ---------------------------------------- (64) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_746_2,1) ---------------------------------------- (65) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; assume(oldX1 <= oldX0); x0 := oldX0; x1 := 1 + oldX1; TO: 1; ---------------------------------------- (66) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 4: 0 - Rank function 2: RF for loc. 5: 1+2*x0-2*x1 RF for loc. 6: 2*x0-2*x1 Bound for (chained) transitions 3: 0 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (67) YES