85.38/23.62 YES 85.38/23.63 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 85.38/23.63 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 85.38/23.63 85.38/23.63 85.38/23.63 Termination of the given C Problem could be proven: 85.38/23.63 85.38/23.63 (0) C Problem 85.38/23.63 (1) CToLLVMProof [EQUIVALENT, 165 ms] 85.38/23.63 (2) LLVM problem 85.38/23.63 (3) LLVMToTerminationGraphProof [EQUIVALENT, 4164 ms] 85.38/23.63 (4) LLVM Symbolic Execution Graph 85.38/23.63 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 85.38/23.63 (6) AND 85.38/23.63 (7) LLVM Symbolic Execution SCC 85.38/23.63 (8) SCC2IRS [SOUND, 102 ms] 85.38/23.63 (9) IntTRS 85.38/23.63 (10) IRS2T2 [EQUIVALENT, 3 ms] 85.38/23.63 (11) T2IntSys 85.38/23.63 (12) T2 [EQUIVALENT, 0 ms] 85.38/23.63 (13) YES 85.38/23.63 (14) LLVM Symbolic Execution SCC 85.38/23.63 (15) SCC2IRS [SOUND, 116 ms] 85.38/23.63 (16) IntTRS 85.38/23.63 (17) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (18) T2IntSys 85.38/23.63 (19) T2 [EQUIVALENT, 1 ms] 85.38/23.63 (20) YES 85.38/23.63 (21) LLVM Symbolic Execution SCC 85.38/23.63 (22) SCC2IRS [SOUND, 107 ms] 85.38/23.63 (23) IntTRS 85.38/23.63 (24) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (25) T2IntSys 85.38/23.63 (26) T2 [EQUIVALENT, 2 ms] 85.38/23.63 (27) YES 85.38/23.63 (28) LLVM Symbolic Execution SCC 85.38/23.63 (29) SCC2IRS [SOUND, 101 ms] 85.38/23.63 (30) IntTRS 85.38/23.63 (31) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (32) T2IntSys 85.38/23.63 (33) T2 [EQUIVALENT, 0 ms] 85.38/23.63 (34) YES 85.38/23.63 (35) LLVM Symbolic Execution SCC 85.38/23.63 (36) SCC2IRS [SOUND, 134 ms] 85.38/23.63 (37) IntTRS 85.38/23.63 (38) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (39) T2IntSys 85.38/23.63 (40) T2 [EQUIVALENT, 3 ms] 85.38/23.63 (41) YES 85.38/23.63 (42) LLVM Symbolic Execution SCC 85.38/23.63 (43) SCC2IRS [SOUND, 94 ms] 85.38/23.63 (44) IntTRS 85.38/23.63 (45) IRS2T2 [EQUIVALENT, 1 ms] 85.38/23.63 (46) T2IntSys 85.38/23.63 (47) T2 [EQUIVALENT, 0 ms] 85.38/23.63 (48) YES 85.38/23.63 (49) LLVM Symbolic Execution SCC 85.38/23.63 (50) SCC2IRS [SOUND, 112 ms] 85.38/23.63 (51) IntTRS 85.38/23.63 (52) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (53) T2IntSys 85.38/23.63 (54) T2 [EQUIVALENT, 0 ms] 85.38/23.63 (55) YES 85.38/23.63 (56) LLVM Symbolic Execution SCC 85.38/23.63 (57) SCC2IRS [SOUND, 79 ms] 85.38/23.63 (58) IntTRS 85.38/23.63 (59) IRS2T2 [EQUIVALENT, 0 ms] 85.38/23.63 (60) T2IntSys 85.38/23.63 (61) T2 [EQUIVALENT, 0 ms] 85.38/23.63 (62) YES 85.38/23.63 (63) LLVM Symbolic Execution SCC 85.38/23.63 (64) SCC2IRS [SOUND, 92 ms] 85.38/23.63 (65) IntTRS 85.38/23.63 (66) RankingReductionPairProof [EQUIVALENT, 0 ms] 85.38/23.63 (67) YES 85.38/23.63 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (0) 85.38/23.63 Obligation: 85.38/23.63 c file /export/starexec/sandbox/benchmark/theBenchmark.c 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (1) CToLLVMProof (EQUIVALENT) 85.38/23.63 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (2) 85.38/23.63 Obligation: 85.38/23.63 LLVM Problem 85.38/23.63 85.38/23.63 Aliases: 85.38/23.63 85.38/23.63 Data layout: 85.38/23.63 85.38/23.63 "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" 85.38/23.63 85.38/23.63 Machine: 85.38/23.63 85.38/23.63 "x86_64-pc-linux-gnu" 85.38/23.63 85.38/23.63 Type definitions: 85.38/23.63 85.38/23.63 Global variables: 85.38/23.63 85.38/23.63 Function declarations and definitions: 85.38/23.63 85.38/23.63 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 85.38/23.63 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 85.38/23.63 0: 85.38/23.63 %1 = alloca i32, align 4 85.38/23.63 %i = alloca i32, align 4 85.38/23.63 %j = alloca i32, align 4 85.38/23.63 %an = alloca i32, align 4 85.38/23.63 %bn = alloca i32, align 4 85.38/23.63 store 0, %1 85.38/23.63 %2 = call i32 @__VERIFIER_nondet_int() 85.38/23.63 store %2, %i 85.38/23.63 %3 = call i32 @__VERIFIER_nondet_int() 85.38/23.63 store %3, %j 85.38/23.63 %4 = call i32 @__VERIFIER_nondet_int() 85.38/23.63 store %4, %an 85.38/23.63 %5 = call i32 @__VERIFIER_nondet_int() 85.38/23.63 store %5, %bn 85.38/23.63 br %6 85.38/23.63 6: 85.38/23.63 %7 = load %an 85.38/23.63 %8 = load %i 85.38/23.63 %9 = icmp sge %7 %8 85.38/23.63 br %9, %10, %14 85.38/23.63 10: 85.38/23.63 %11 = load %bn 85.38/23.63 %12 = load %j 85.38/23.63 %13 = icmp sge %11 %12 85.38/23.63 br %13, %32, %14 85.38/23.63 14: 85.38/23.63 %15 = load %an 85.38/23.63 %16 = load %i 85.38/23.63 %17 = icmp sge %15 %16 85.38/23.63 br %17, %18, %22 85.38/23.63 18: 85.38/23.63 %19 = load %bn 85.38/23.63 %20 = load %j 85.38/23.63 %21 = icmp sle %19 %20 85.38/23.63 br %21, %32, %22 85.38/23.63 22: 85.38/23.63 %23 = load %an 85.38/23.63 %24 = load %i 85.38/23.63 %25 = icmp sle %23 %24 85.38/23.63 br %25, %26, %30 85.38/23.63 26: 85.38/23.63 %27 = load %bn 85.38/23.63 %28 = load %j 85.38/23.63 %29 = icmp sge %27 %28 85.38/23.63 br %30 85.38/23.63 30: 85.38/23.63 %31 = phi [0, %22], [%29, %26] 85.38/23.63 br %32 85.38/23.63 32: 85.38/23.63 %33 = phi [1, %18], [1, %10], [%31, %30] 85.38/23.63 br %33, %34, %77 85.38/23.63 34: 85.38/23.63 %35 = load %an 85.38/23.63 %36 = load %i 85.38/23.63 %37 = icmp sge %35 %36 85.38/23.63 br %37, %38, %52 85.38/23.63 38: 85.38/23.63 %39 = load %bn 85.38/23.63 %40 = load %j 85.38/23.63 %41 = icmp sge %39 %40 85.38/23.63 br %41, %42, %52 85.38/23.63 42: 85.38/23.63 %43 = call i32 @__VERIFIER_nondet_int() 85.38/23.63 %44 = icmp ne %43 0 85.38/23.63 br %44, %45, %48 85.38/23.63 45: 85.38/23.63 %46 = load %j 85.38/23.63 %47 = add %46 1 85.38/23.63 store %47, %j 85.38/23.63 br %51 85.38/23.63 48: 85.38/23.63 %49 = load %i 85.38/23.63 %50 = add %49 1 85.38/23.63 store %50, %i 85.38/23.63 br %51 85.38/23.63 51: 85.38/23.63 br %76 85.38/23.63 52: 85.38/23.63 %53 = load %an 85.38/23.63 %54 = load %i 85.38/23.63 %55 = icmp sge %53 %54 85.38/23.63 br %55, %56, %63 85.38/23.63 56: 85.38/23.63 %57 = load %bn 85.38/23.63 %58 = load %j 85.38/23.63 %59 = icmp sle %57 %58 85.38/23.63 br %59, %60, %63 85.38/23.63 60: 85.38/23.63 %61 = load %i 85.38/23.63 %62 = add %61 1 85.38/23.63 store %62, %i 85.38/23.63 br %75 85.38/23.63 63: 85.38/23.63 %64 = load %an 85.38/23.63 %65 = load %i 85.38/23.63 %66 = icmp sle %64 %65 85.38/23.63 br %66, %67, %74 85.38/23.63 67: 85.38/23.63 %68 = load %bn 85.38/23.63 %69 = load %j 85.38/23.63 %70 = icmp sge %68 %69 85.38/23.63 br %70, %71, %74 85.38/23.63 71: 85.38/23.63 %72 = load %j 85.38/23.63 %73 = add %72 1 85.38/23.63 store %73, %j 85.38/23.63 br %74 85.38/23.63 74: 85.38/23.63 br %75 85.38/23.63 75: 85.38/23.63 br %76 85.38/23.63 76: 85.38/23.63 br %6 85.38/23.63 77: 85.38/23.63 ret 0 85.38/23.63 85.38/23.63 85.38/23.63 Analyze Termination of all function calls matching the pattern: 85.38/23.63 main() 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (3) LLVMToTerminationGraphProof (EQUIVALENT) 85.38/23.63 Constructed symbolic execution graph for LLVM program and proved memory safety. 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (4) 85.38/23.63 Obligation: 85.38/23.63 SE Graph 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (5) SymbolicExecutionGraphToSCCProof (SOUND) 85.38/23.63 Splitted symbolic execution graph to 9 SCCs. 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (6) 85.38/23.63 Complex Obligation (AND) 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (7) 85.38/23.63 Obligation: 85.38/23.63 SCC 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (8) SCC2IRS (SOUND) 85.38/23.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.63 Generated rules. Obtained 41 rulesP rules: 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 Combined rules. Obtained 1 rulesP rules: 85.38/23.63 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 85.38/23.63 Filtered unneeded arguments: 85.38/23.63 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) 85.38/23.63 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.63 f_1897(v30283:0, v30292:0) -> f_1897(v30283:0, 1 + v30292:0) :|: v30292:0 <= v30283:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (9) 85.38/23.63 Obligation: 85.38/23.63 Rules: 85.38/23.63 f_1897(v30283:0, v30292:0) -> f_1897(v30283:0, 1 + v30292:0) :|: v30292:0 <= v30283:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (10) IRS2T2 (EQUIVALENT) 85.38/23.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.63 85.38/23.63 (f_1897_2,1) 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (11) 85.38/23.63 Obligation: 85.38/23.63 START: 0; 85.38/23.63 85.38/23.63 FROM: 0; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 FROM: 1; 85.38/23.63 oldX0 := x0; 85.38/23.63 oldX1 := x1; 85.38/23.63 assume(oldX1 <= oldX0); 85.38/23.63 x0 := oldX0; 85.38/23.63 x1 := 1 + oldX1; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (12) T2 (EQUIVALENT) 85.38/23.63 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.63 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.63 - Rank function 1: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 4: 0 85.38/23.63 - Rank function 2: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 3: 0 85.38/23.63 - Rank function 3: 85.38/23.63 RF for loc. 5: 1 85.38/23.63 RF for loc. 6: 0 85.38/23.63 Bound for (chained) transitions 1: 1 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (13) 85.38/23.63 YES 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (14) 85.38/23.63 Obligation: 85.38/23.63 SCC 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (15) SCC2IRS (SOUND) 85.38/23.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.63 Generated rules. Obtained 44 rulesP rules: 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 Combined rules. Obtained 1 rulesP rules: 85.38/23.63 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 85.38/23.63 Filtered unneeded arguments: 85.38/23.63 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) 85.38/23.63 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.63 f_1758(v25384:0, v25391:0) -> f_1758(v25384:0, 1 + v25391:0) :|: v25391:0 <= v25384:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (16) 85.38/23.63 Obligation: 85.38/23.63 Rules: 85.38/23.63 f_1758(v25384:0, v25391:0) -> f_1758(v25384:0, 1 + v25391:0) :|: v25391:0 <= v25384:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (17) IRS2T2 (EQUIVALENT) 85.38/23.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.63 85.38/23.63 (f_1758_2,1) 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (18) 85.38/23.63 Obligation: 85.38/23.63 START: 0; 85.38/23.63 85.38/23.63 FROM: 0; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 FROM: 1; 85.38/23.63 oldX0 := x0; 85.38/23.63 oldX1 := x1; 85.38/23.63 assume(oldX1 <= oldX0); 85.38/23.63 x0 := oldX0; 85.38/23.63 x1 := 1 + oldX1; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (19) T2 (EQUIVALENT) 85.38/23.63 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.63 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.63 - Rank function 1: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 4: 0 85.38/23.63 - Rank function 2: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 3: 0 85.38/23.63 - Rank function 3: 85.38/23.63 RF for loc. 5: 1 85.38/23.63 RF for loc. 6: 0 85.38/23.63 Bound for (chained) transitions 1: 1 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (20) 85.38/23.63 YES 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (21) 85.38/23.63 Obligation: 85.38/23.63 SCC 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (22) SCC2IRS (SOUND) 85.38/23.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.63 Generated rules. Obtained 43 rulesP rules: 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 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 85.38/23.63 Combined rules. Obtained 1 rulesP rules: 85.38/23.63 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 85.38/23.63 Filtered unneeded arguments: 85.38/23.63 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) 85.38/23.63 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.63 f_1675(v22699:0, v22704:0) -> f_1675(v22699:0, 1 + v22704:0) :|: v22704:0 <= v22699:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (23) 85.38/23.63 Obligation: 85.38/23.63 Rules: 85.38/23.63 f_1675(v22699:0, v22704:0) -> f_1675(v22699:0, 1 + v22704:0) :|: v22704:0 <= v22699:0 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (24) IRS2T2 (EQUIVALENT) 85.38/23.63 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.63 85.38/23.63 (f_1675_2,1) 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (25) 85.38/23.63 Obligation: 85.38/23.63 START: 0; 85.38/23.63 85.38/23.63 FROM: 0; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 FROM: 1; 85.38/23.63 oldX0 := x0; 85.38/23.63 oldX1 := x1; 85.38/23.63 assume(oldX1 <= oldX0); 85.38/23.63 x0 := oldX0; 85.38/23.63 x1 := 1 + oldX1; 85.38/23.63 TO: 1; 85.38/23.63 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (26) T2 (EQUIVALENT) 85.38/23.63 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.63 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.63 - Rank function 1: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 4: 0 85.38/23.63 - Rank function 2: 85.38/23.63 RF for loc. 5: 1+2*x0-2*x1 85.38/23.63 RF for loc. 6: 2*x0-2*x1 85.38/23.63 Bound for (chained) transitions 3: 0 85.38/23.63 - Rank function 3: 85.38/23.63 RF for loc. 5: 1 85.38/23.63 RF for loc. 6: 0 85.38/23.63 Bound for (chained) transitions 1: 1 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (27) 85.38/23.63 YES 85.38/23.63 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (28) 85.38/23.63 Obligation: 85.38/23.63 SCC 85.38/23.63 ---------------------------------------- 85.38/23.63 85.38/23.63 (29) SCC2IRS (SOUND) 85.38/23.63 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.63 Generated rules. Obtained 41 rulesP rules: 85.38/23.63 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 1 rulesP rules: 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.64 f_1649(v22016:0, v22023:0) -> f_1649(v22016:0, 1 + v22023:0) :|: v22023:0 <= v22016:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (30) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 f_1649(v22016:0, v22023:0) -> f_1649(v22016:0, 1 + v22023:0) :|: v22023:0 <= v22016:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (31) IRS2T2 (EQUIVALENT) 85.38/23.64 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.64 85.38/23.64 (f_1649_2,1) 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (32) 85.38/23.64 Obligation: 85.38/23.64 START: 0; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 assume(oldX1 <= oldX0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := 1 + oldX1; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (33) T2 (EQUIVALENT) 85.38/23.64 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.64 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.64 - Rank function 1: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 4: 0 85.38/23.64 - Rank function 2: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 3: 0 85.38/23.64 - Rank function 3: 85.38/23.64 RF for loc. 5: 1 85.38/23.64 RF for loc. 6: 0 85.38/23.64 Bound for (chained) transitions 1: 1 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (34) 85.38/23.64 YES 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (35) 85.38/23.64 Obligation: 85.38/23.64 SCC 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (36) SCC2IRS (SOUND) 85.38/23.64 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.64 Generated rules. Obtained 67 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 6 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (37) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 f_1153(x, x1, x2, x3) -> f_1153(x, x1, x2, 1 + x3) :|: x1 >= 1 + x3 85.38/23.64 f_1378(x4, x5, x6, x7, x8) -> f_1153(x4, x5, x6, x7) :|: x8 < 0 85.38/23.64 f_1378(x9, x10, x11, x12, x13) -> f_1153(x9, x10, x11, x12) :|: x13 > 0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (38) IRS2T2 (EQUIVALENT) 85.38/23.64 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.64 85.38/23.64 (f_1378_5,1) 85.38/23.64 (f_1153_5,2) 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (39) 85.38/23.64 Obligation: 85.38/23.64 START: 0; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 2; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 oldX2 := x2; 85.38/23.64 oldX3 := x3; 85.38/23.64 oldX4 := x4; 85.38/23.64 oldX5 := nondet(); 85.38/23.64 assume(oldX0 >= 1 + oldX2 && oldX4 = 0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := oldX1; 85.38/23.64 x2 := 1 + oldX2; 85.38/23.64 x3 := oldX3; 85.38/23.64 x4 := oldX5; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 2; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 oldX2 := x2; 85.38/23.64 oldX3 := x3; 85.38/23.64 oldX4 := x4; 85.38/23.64 oldX5 := nondet(); 85.38/23.64 assume(oldX0 >= 1 + oldX2 && oldX1 >= 1 + oldX3); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := oldX1; 85.38/23.64 x2 := 1 + oldX2; 85.38/23.64 x3 := 1 + oldX3; 85.38/23.64 x4 := oldX5; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 2; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 oldX2 := x2; 85.38/23.64 oldX3 := x3; 85.38/23.64 oldX4 := x4; 85.38/23.64 oldX5 := nondet(); 85.38/23.64 assume(oldX1 >= 1 + oldX3); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := oldX1; 85.38/23.64 x2 := oldX2; 85.38/23.64 x3 := 1 + oldX3; 85.38/23.64 x4 := oldX5; 85.38/23.64 TO: 2; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 oldX2 := x2; 85.38/23.64 oldX3 := x3; 85.38/23.64 oldX4 := x4; 85.38/23.64 oldX5 := nondet(); 85.38/23.64 assume(oldX4 < 0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := oldX1; 85.38/23.64 x2 := oldX2; 85.38/23.64 x3 := oldX3; 85.38/23.64 x4 := oldX5; 85.38/23.64 TO: 2; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 oldX2 := x2; 85.38/23.64 oldX3 := x3; 85.38/23.64 oldX4 := x4; 85.38/23.64 oldX5 := nondet(); 85.38/23.64 assume(oldX4 > 0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := oldX1; 85.38/23.64 x2 := oldX2; 85.38/23.64 x3 := oldX3; 85.38/23.64 x4 := oldX5; 85.38/23.64 TO: 2; 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (40) T2 (EQUIVALENT) 85.38/23.64 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.64 * Removed transitions 2, 5, 6, 7, 17, 20, 21 using the following rank functions: 85.38/23.64 - Rank function 1: 85.38/23.64 RF for loc. 6: 3+2*x0+2*x1-2*x2-2*x3 85.38/23.64 RF for loc. 7: 1+2*x0+2*x1-2*x2-2*x3 85.38/23.64 RF for loc. 8: 2+2*x0+2*x1-2*x2-2*x3 85.38/23.64 RF for loc. 12: 2*x0+2*x1-2*x2-2*x3 85.38/23.64 Bound for (chained) transitions 20: 4 85.38/23.64 - Rank function 2: 85.38/23.64 RF for loc. 6: 1+3*x1-3*x3 85.38/23.64 RF for loc. 7: 3*x1-3*x3 85.38/23.64 RF for loc. 8: 1+3*x1-3*x3 85.38/23.64 RF for loc. 12: -1+3*x1-3*x3 85.38/23.64 Bound for (chained) transitions 21: 2 85.38/23.64 - Rank function 3: 85.38/23.64 RF for loc. 6: 0 85.38/23.64 RF for loc. 7: -1 85.38/23.64 RF for loc. 8: 0 85.38/23.64 RF for loc. 12: -2 85.38/23.64 Bound for (chained) transitions 6: 0 85.38/23.64 Bound for (chained) transitions 7: 0 85.38/23.64 Bound for (chained) transitions 17: -1 85.38/23.64 - Rank function 4: 85.38/23.64 RF for loc. 6: 2*x0-2*x2 85.38/23.64 RF for loc. 8: -1+2*x0-2*x2 85.38/23.64 Bound for (chained) transitions 5: 1 85.38/23.64 - Rank function 5: 85.38/23.64 RF for loc. 6: 0 85.38/23.64 RF for loc. 8: -1 85.38/23.64 Bound for (chained) transitions 2: 0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (41) 85.38/23.64 YES 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (42) 85.38/23.64 Obligation: 85.38/23.64 SCC 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (43) SCC2IRS (SOUND) 85.38/23.64 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.64 Generated rules. Obtained 43 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 1 rulesP rules: 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.64 f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (44) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 f_1052(v5751:0, v5755:0) -> f_1052(v5751:0, 1 + v5755:0) :|: v5755:0 <= v5751:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (45) IRS2T2 (EQUIVALENT) 85.38/23.64 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.64 85.38/23.64 (f_1052_2,1) 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (46) 85.38/23.64 Obligation: 85.38/23.64 START: 0; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 assume(oldX1 <= oldX0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := 1 + oldX1; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (47) T2 (EQUIVALENT) 85.38/23.64 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.64 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.64 - Rank function 1: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 4: 0 85.38/23.64 - Rank function 2: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 3: 0 85.38/23.64 - Rank function 3: 85.38/23.64 RF for loc. 5: 1 85.38/23.64 RF for loc. 6: 0 85.38/23.64 Bound for (chained) transitions 1: 1 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (48) 85.38/23.64 YES 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (49) 85.38/23.64 Obligation: 85.38/23.64 SCC 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (50) SCC2IRS (SOUND) 85.38/23.64 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.64 Generated rules. Obtained 41 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 1 rulesP rules: 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.64 f_1007(v4961:0, v4966:0) -> f_1007(v4961:0, 1 + v4966:0) :|: v4966:0 <= v4961:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (51) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 f_1007(v4961:0, v4966:0) -> f_1007(v4961:0, 1 + v4966:0) :|: v4966:0 <= v4961:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (52) IRS2T2 (EQUIVALENT) 85.38/23.64 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.64 85.38/23.64 (f_1007_2,1) 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (53) 85.38/23.64 Obligation: 85.38/23.64 START: 0; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 assume(oldX1 <= oldX0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := 1 + oldX1; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (54) T2 (EQUIVALENT) 85.38/23.64 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.64 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.64 - Rank function 1: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 4: 0 85.38/23.64 - Rank function 2: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 3: 0 85.38/23.64 - Rank function 3: 85.38/23.64 RF for loc. 5: 1 85.38/23.64 RF for loc. 6: 0 85.38/23.64 Bound for (chained) transitions 1: 1 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (55) 85.38/23.64 YES 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (56) 85.38/23.64 Obligation: 85.38/23.64 SCC 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (57) SCC2IRS (SOUND) 85.38/23.64 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.64 Generated rules. Obtained 29 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 2 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.64 f_756(v2806:0, v2810:0) -> f_756(v2806:0, 1 + v2810:0) :|: v2810:0 <= v2806:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (58) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 f_756(v2806:0, v2810:0) -> f_756(v2806:0, 1 + v2810:0) :|: v2810:0 <= v2806:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (59) IRS2T2 (EQUIVALENT) 85.38/23.64 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 85.38/23.64 85.38/23.64 (f_756_2,1) 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (60) 85.38/23.64 Obligation: 85.38/23.64 START: 0; 85.38/23.64 85.38/23.64 FROM: 0; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 FROM: 1; 85.38/23.64 oldX0 := x0; 85.38/23.64 oldX1 := x1; 85.38/23.64 assume(oldX1 <= oldX0); 85.38/23.64 x0 := oldX0; 85.38/23.64 x1 := 1 + oldX1; 85.38/23.64 TO: 1; 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (61) T2 (EQUIVALENT) 85.38/23.64 Initially, performed program simplifications using lexicographic rank functions: 85.38/23.64 * Removed transitions 1, 3, 4 using the following rank functions: 85.38/23.64 - Rank function 1: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 4: 0 85.38/23.64 - Rank function 2: 85.38/23.64 RF for loc. 5: 1+2*x0-2*x1 85.38/23.64 RF for loc. 6: 2*x0-2*x1 85.38/23.64 Bound for (chained) transitions 3: 0 85.38/23.64 - Rank function 3: 85.38/23.64 RF for loc. 5: 1 85.38/23.64 RF for loc. 6: 0 85.38/23.64 Bound for (chained) transitions 1: 1 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (62) 85.38/23.64 YES 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (63) 85.38/23.64 Obligation: 85.38/23.64 SCC 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (64) SCC2IRS (SOUND) 85.38/23.64 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 85.38/23.64 Generated rules. Obtained 29 rulesP rules: 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 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 85.38/23.64 Combined rules. Obtained 1 rulesP rules: 85.38/23.64 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 85.38/23.64 Filtered unneeded arguments: 85.38/23.64 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) 85.38/23.64 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 85.38/23.64 f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (65) 85.38/23.64 Obligation: 85.38/23.64 Rules: 85.38/23.64 f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (66) RankingReductionPairProof (EQUIVALENT) 85.38/23.64 Interpretation: 85.38/23.64 [ f_746 ] = -1*f_746_2 + f_746_1 85.38/23.64 85.38/23.64 The following rules are decreasing: 85.38/23.64 f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 85.38/23.64 85.38/23.64 The following rules are bounded: 85.38/23.64 f_746(v2628:0, v2633:0) -> f_746(v2628:0, 1 + v2633:0) :|: v2633:0 <= v2628:0 85.38/23.64 85.38/23.64 85.38/23.64 ---------------------------------------- 85.38/23.64 85.38/23.64 (67) 85.38/23.64 YES 85.63/23.69 EOF