/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 177 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 14.2 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 104 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 963 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 126 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 913 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 62 ms] (23) IntTRS (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IntTRS (26) RankingReductionPairProof [EQUIVALENT, 0 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 62 ms] (30) IntTRS (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] (32) IntTRS (33) RankingReductionPairProof [EQUIVALENT, 0 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 52 ms] (37) IntTRS (38) IntTRSCompressionProof [EQUIVALENT, 0 ms] (39) IntTRS (40) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (41) YES (42) LLVM Symbolic Execution SCC (43) SCC2IRS [SOUND, 77 ms] (44) IntTRS (45) IntTRSCompressionProof [EQUIVALENT, 0 ms] (46) IntTRS (47) RankingReductionPairProof [EQUIVALENT, 0 ms] (48) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %i = alloca i32, align 4 %j = alloca i32, align 4 %k = alloca i32, align 4 %n = alloca i32, align 4 %m = alloca i32, align 4 %N = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %i %3 = call i32 @__VERIFIER_nondet_int() store %3, %j %4 = call i32 @__VERIFIER_nondet_int() store %4, %k %5 = call i32 @__VERIFIER_nondet_int() store %5, %n %6 = call i32 @__VERIFIER_nondet_int() store %6, %m %7 = call i32 @__VERIFIER_nondet_int() store %7, %N %8 = load %n %9 = icmp sle 0 %8 br %9, %10, %43 10: %11 = load %m %12 = icmp sle 0 %11 br %12, %13, %43 13: %14 = load %N %15 = icmp sle 0 %14 br %15, %16, %43 16: store 0, %i br %17 17: %18 = load %i %19 = load %n %20 = icmp slt %18 %19 br %20, %21, %42 21: store 0, %j br %22 22: %23 = load %j %24 = load %m %25 = icmp slt %23 %24 br %25, %26, %39 26: %27 = load %j %28 = add %27 1 store %28, %j %29 = load %i store %29, %k br %30 30: %31 = load %k %32 = load %N %33 = icmp slt %31 %32 br %33, %34, %37 34: %35 = load %k %36 = add %35 1 store %36, %k br %30 37: %38 = load %k store %38, %i br %22 39: %40 = load %i %41 = add %40 1 store %41, %i br %17 42: br %43 43: ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 6 SCCs. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC ---------------------------------------- (8) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 39 rulesP rules: f_1518(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) -> f_1519(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) :|: 0 = 0 f_1519(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) -> f_1520(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) :|: 0 = 0 f_1520(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) -> f_1521(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) :|: TRUE f_1521(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) -> f_1522(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, 0, v12407, v12403, v12408, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) :|: TRUE f_1522(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12509, v12510, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1523(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12510, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1523(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12510, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1524(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: v12520 = 1 + v12508 && 1 <= v12520 f_1524(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1525(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1525(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1526(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1526(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1527(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1527(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1528(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1528(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1529(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1529(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1530(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1530(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1531(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1531(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1532(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1532(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12511, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1533(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1533(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1534(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1534(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1535(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1535(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12508, v12520, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1536(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1536(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1537(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1537(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1538(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: v12520 < v12504 && 2 <= v12504 f_1537(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1539(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: v12504 <= v12520 && v12504 = v12520 f_1538(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1540(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1540(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1542(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1542(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1522(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12504, 0, 1, v12507, v12520, v12508, v12520, v12507, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1539(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1541(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1541(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1543(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1543(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12512, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1544(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1544(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1545(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: v12847 = 1 + v12507 && 2 <= v12847 f_1545(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1546(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1546(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1547(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1547(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12507, v12508, v12847, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1548(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1548(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1549(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: 0 = 0 f_1549(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) -> f_1550(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) :|: v12847 < v12503 && 3 <= v12503 f_1550(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) -> f_1552(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) :|: 0 = 0 f_1552(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) -> f_1554(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) :|: TRUE f_1554(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) -> f_1556(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) :|: TRUE f_1556(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) -> f_1558(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) :|: TRUE f_1558(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 4, 2) -> f_1517(v12493, v12494, v12495, v12496, v12497, v12498, v12499, v12500, v12501, v12502, v12503, v12520, 0, 1, v12847, v12508, v12507, v12513, v12514, v12515, v12516, v12517, v12518, v12519, 3, 2, 4) :|: TRUE f_1517(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) -> f_1518(v12392, v12393, v12394, v12395, v12396, v12397, v12398, v12399, v12400, v12401, v12402, v12403, 0, 1, v12406, v12407, v12408, v12409, v12410, v12411, v12412, v12413, v12414, v12415, 3, 2, 4) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_1537(v12493:0, v12494:0, v12495:0, v12496:0, v12497:0, v12498:0, v12499:0, v12500:0, v12501:0, v12502:0, v12503:0, v12504:0, 0, 1, v12507:0, v12504:0, v12508:0, v12512:0, v12513:0, v12514:0, v12515:0, v12516:0, v12517:0, v12518:0, v12519:0, 3, 2, 4) -> f_1537(v12493:0, v12494:0, v12495:0, v12496:0, v12497:0, v12498:0, v12499:0, v12500:0, v12501:0, v12502:0, v12503:0, v12504:0, 0, 1, 1 + v12507:0, 1, 0, v12507:0, v12513:0, v12514:0, v12515:0, v12516:0, v12517:0, v12518:0, v12519:0, 3, 2, 4) :|: v12507:0 > 0 && v12503:0 > 1 + v12507:0 && v12503:0 > 2 f_1537(v12493:0, v12494:0, v12495:0, v12496:0, v12497:0, v12498:0, v12499:0, v12500:0, v12501:0, v12502:0, v12503:0, v12504:0, 0, 1, v12507:0, v12520:0, v12508:0, v12512:0, v12513:0, v12514:0, v12515:0, v12516:0, v12517:0, v12518:0, v12519:0, 3, 2, 4) -> f_1537(v12493:0, v12494:0, v12495:0, v12496:0, v12497:0, v12498:0, v12499:0, v12500:0, v12501:0, v12502:0, v12503:0, v12504:0, 0, 1, v12507:0, 1 + v12520:0, v12520:0, v12512:0, v12513:0, v12514:0, v12515:0, v12516:0, v12517:0, v12518:0, v12519:0, 3, 2, 4) :|: v12520:0 > -1 && v12520:0 < v12504:0 && v12504:0 > 1 Filtered unneeded arguments: f_1537(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_1537(x11, x12, x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_1537(v12503:0, v12504:0, v12507:0, v12504:01) -> f_1537(v12503:0, v12504:0, 1 + v12507:0, 1) :|: v12503:0 > 1 + v12507:0 && v12503:0 > 2 && v12507:0 > 0 && v12504:0 = v12504:01 f_1537(v12503:0, v12504:0, v12507:0, v12520:0) -> f_1537(v12503:0, v12504:0, v12507:0, 1 + v12520:0) :|: v12520:0 < v12504:0 && v12504:0 > 1 && v12520:0 > -1 ---------------------------------------- (9) Obligation: Rules: f_1537(v12503:0, v12504:0, v12507:0, v12504:01) -> f_1537(v12503:0, v12504:0, 1 + v12507:0, 1) :|: v12503:0 > 1 + v12507:0 && v12503:0 > 2 && v12507:0 > 0 && v12504:0 = v12504:01 f_1537(x, x1, x2, x3) -> f_1537(x, x1, x2, 1 + x3) :|: x3 < x1 && x1 > 1 && x3 > -1 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1537_4,1) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX0 > 1 + oldX2 && oldX0 > 2 && oldX2 > 0 && oldX1 = oldX3); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX2; x3 := 1; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX3 < oldX1 && oldX1 > 1 && oldX3 > -1); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := 1 + oldX3; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 4, 5 using the following rank functions: - Rank function 1: RF for loc. 5: 2*x0-2*x2 RF for loc. 6: 2*x0-2*x2 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 2*x1-2*x3 RF for loc. 6: -1+2*x1-2*x3 Bound for (chained) transitions 5: 1 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 39 rulesP rules: f_1317(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9029, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1319(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: v9065 = 1 + v9027 && 1 <= v9065 f_1319(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1321(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1321(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1323(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1323(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1325(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1325(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1327(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1327(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1329(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1329(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1331(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1331(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1333(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1333(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1335(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1335(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9031, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1337(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1337(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1339(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1339(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1341(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1341(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9065, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1344(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1344(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1347(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1347(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1350(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: v9065 < v9023 && 2 <= v9023 f_1347(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1351(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: v9023 <= v9065 && v9023 = v9065 f_1350(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1353(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1353(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1356(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1356(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1315(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9065, v9027, v9065, v9026, v9026, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1315(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9028, v9029, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1317(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9023, v9024, 1, v9026, v9027, v9029, v9030, v9031, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1351(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, v9027, 0, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1354(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1354(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1357(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1357(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9034, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1359(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1359(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1361(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: v9715 = 1 + v9026 && 3 <= v9715 f_1361(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1363(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1363(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1365(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1365(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9026, 0, v9027, v9033, v9715, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1368(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1368(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1371(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: 0 = 0 f_1371(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) -> f_1374(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) :|: v9715 < v9022 && 4 <= v9022 f_1374(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) -> f_1378(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) :|: 0 = 0 f_1378(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) -> f_1382(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) :|: TRUE f_1382(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) -> f_1385(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) :|: TRUE f_1385(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) -> f_1388(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) :|: TRUE f_1388(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 4, 2) -> f_1389(v9012, v9013, v9014, v9015, v9016, v9017, v9018, v9019, v9020, v9021, v9022, v9065, v9024, 1, v9715, 0, v9027, v9026, v9026, v9033, v9035, v9036, v9037, v9038, v9039, v9040, v9041, 3, 2, 4) :|: TRUE f_1389(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) -> f_1391(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) :|: 0 = 0 f_1391(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) -> f_1394(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) :|: 0 = 0 f_1394(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) -> f_1396(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) :|: 0 = 0 f_1396(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) -> f_1398(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) :|: TRUE f_1398(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10283, v10284, v10285, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) -> f_1315(v10266, v10267, v10268, v10269, v10270, v10271, v10272, v10273, v10274, v10275, v10276, v10277, v10278, 1, v10280, 0, v10282, v10277, v10283, v10284, 0, v10285, v10284, v10286, v10287, v10288, v10289, v10290, v10291, v10292, 3, 2, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_1317(v9012:0, v9013:0, v9014:0, v9015:0, v9016:0, v9017:0, v9018:0, v9019:0, v9020:0, v9021:0, v9022:0, v9023:0, v9024:0, 1, v9026:0, v9027:0, v9029:0, v9030:0, v9031:0, 0, v9033:0, v9034:0, v9035:0, v9036:0, v9037:0, v9038:0, v9039:0, v9040:0, v9041:0, 3, 2, 4) -> f_1317(v9012:0, v9013:0, v9014:0, v9015:0, v9016:0, v9017:0, v9018:0, v9019:0, v9020:0, v9021:0, v9022:0, v9023:0, v9024:0, 1, v9026:0, 1 + v9027:0, 1 + v9027:0, v9026:0, v9026:0, 0, v9033:0, v9034:0, v9035:0, v9036:0, v9037:0, v9038:0, v9039:0, v9040:0, v9041:0, 3, 2, 4) :|: v9027:0 > -1 && v9023:0 > 1 + v9027:0 && v9023:0 > 1 f_1317(v9012:0, v9013:0, v9014:0, v9015:0, v9016:0, v9017:0, v9018:0, v9019:0, v9020:0, v9021:0, v9022:0, 1 + v9027:0, v9024:0, 1, v9026:0, v9027:0, v9029:0, v9030:0, v9031:0, 0, v9033:0, v9034:0, v9035:0, v9036:0, v9037:0, v9038:0, v9039:0, v9040:0, v9041:0, 3, 2, 4) -> f_1317(v9012:0, v9013:0, v9014:0, v9015:0, v9016:0, v9017:0, v9018:0, v9019:0, v9020:0, v9021:0, v9022:0, 1 + v9027:0, v9024:0, 1, 1 + v9026:0, 0, 1 + v9027:0, v9026:0, v9026:0, 0, v9033:0, v9026:0, v9035:0, v9036:0, v9037:0, v9038:0, v9039:0, v9040:0, v9041:0, 3, 2, 4) :|: v9027:0 > -1 && v9026:0 > 1 && v9022:0 > 1 + v9026:0 && v9022:0 > 3 Filtered unneeded arguments: f_1317(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32) -> f_1317(x11, x12, x15, x16) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_1317(v9022:0, v9023:0, v9026:0, v9027:0) -> f_1317(v9022:0, v9023:0, v9026:0, 1 + v9027:0) :|: v9023:0 > 1 + v9027:0 && v9023:0 > 1 && v9027:0 > -1 f_1317(v9022:0, sum~cons_1~v9027:0, v9026:0, v9027:0) -> f_1317(v9022:0, 1 + v9027:0, 1 + v9026:0, 0) :|: v9026:0 > 1 && v9027:0 > -1 && v9022:0 > 3 && v9022:0 > 1 + v9026:0 && sum~cons_1~v9027:0 = 1 + v9027:0 ---------------------------------------- (16) Obligation: Rules: f_1317(v9022:0, v9023:0, v9026:0, v9027:0) -> f_1317(v9022:0, v9023:0, v9026:0, 1 + v9027:0) :|: v9023:0 > 1 + v9027:0 && v9023:0 > 1 && v9027:0 > -1 f_1317(x, x1, x2, x3) -> f_1317(x, 1 + x3, 1 + x2, 0) :|: x2 > 1 && x3 > -1 && x > 3 && x > 1 + x2 && x1 = 1 + x3 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1317_4,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX1 > 1 + oldX3 && oldX1 > 1 && oldX3 > -1); x0 := oldX0; x1 := oldX1; x2 := oldX2; x3 := 1 + oldX3; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; assume(oldX2 > 1 && oldX3 > -1 && oldX0 > 3 && oldX0 > 1 + oldX2 && oldX1 = 1 + oldX3); x0 := oldX0; x1 := 1 + oldX3; x2 := 1 + oldX2; x3 := 0; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 4, 5 using the following rank functions: - Rank function 1: RF for loc. 5: 2*x0-2*x2 RF for loc. 6: 2*x0-2*x2 Bound for (chained) transitions 5: 4 - Rank function 2: RF for loc. 5: x1-x3 RF for loc. 6: x1-x3 Bound for (chained) transitions 4: 2 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_955(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) -> f_958(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) :|: 0 = 0 f_958(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) -> f_961(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: v4290 < v4285 && 2 <= v4285 f_961(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_964(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_964(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_967(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_967(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_970(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_970(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_973(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: v4423 = 1 + v4290 && 2 <= v4423 f_973(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_976(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_976(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_979(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_979(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_982(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_982(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_985(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_985(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_988(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_988(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_992(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_992(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_996(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_996(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_1000(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_1000(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_1004(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: 0 = 0 f_1004(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_1007(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_1007(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_1010(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) :|: TRUE f_1010(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 2, 4) -> f_952(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4423, v4286, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) :|: TRUE f_952(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4289, v4290, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) -> f_955(v4274, v4275, v4276, v4277, v4278, v4279, v4280, v4281, v4282, v4283, v4284, v4285, v4286, 1, 0, v4290, v4289, v4291, v4292, v4293, v4294, v4295, v4296, v4297, v4298, v4299, 3, 4) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_955(v4274:0, v4275:0, v4276:0, v4277:0, v4278:0, v4279:0, v4280:0, v4281:0, v4282:0, v4283:0, v4284:0, v4285:0, v4286:0, 1, 0, v4290:0, v4289:0, v4291:0, v4292:0, v4293:0, v4294:0, v4295:0, v4296:0, v4297:0, v4298:0, v4299:0, 3, 4) -> f_955(v4274:0, v4275:0, v4276:0, v4277:0, v4278:0, v4279:0, v4280:0, v4281:0, v4282:0, v4283:0, v4284:0, v4285:0, v4286:0, 1, 0, 1 + v4290:0, v4290:0, v4286:0, v4292:0, v4293:0, v4294:0, v4295:0, v4296:0, v4297:0, v4298:0, v4299:0, 3, 4) :|: v4285:0 > 1 && v4290:0 > 0 && v4290:0 < v4285:0 Filtered unneeded arguments: f_955(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_955(x12, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_955(v4285:0, v4290:0) -> f_955(v4285:0, 1 + v4290:0) :|: v4290:0 > 0 && v4290:0 < v4285:0 && v4285:0 > 1 ---------------------------------------- (23) Obligation: Rules: f_955(v4285:0, v4290:0) -> f_955(v4285:0, 1 + v4290:0) :|: v4290:0 > 0 && v4290:0 < v4285:0 && v4285:0 > 1 ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f_955(v4285:0:0, v4290:0:0) -> f_955(v4285:0:0, 1 + v4290:0:0) :|: v4290:0:0 > 0 && v4290:0:0 < v4285:0:0 && v4285:0:0 > 1 ---------------------------------------- (26) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_955 ] = -1*f_955_2 + f_955_1 The following rules are decreasing: f_955(v4285:0:0, v4290:0:0) -> f_955(v4285:0:0, 1 + v4290:0:0) :|: v4290:0:0 > 0 && v4290:0:0 < v4285:0:0 && v4285:0:0 > 1 The following rules are bounded: f_955(v4285:0:0, v4290:0:0) -> f_955(v4285:0:0, 1 + v4290:0:0) :|: v4290:0:0 > 0 && v4290:0:0 < v4285:0:0 && v4285:0:0 > 1 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_764(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) -> f_766(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) :|: 0 = 0 f_766(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) -> f_769(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: v2524 < v2520 && 2 <= v2520 f_769(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_773(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_773(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_777(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_777(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_781(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_781(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_785(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: v2627 = 1 + v2524 && 2 <= v2627 f_785(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_789(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_789(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_793(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_793(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_797(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_797(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_801(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_801(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_806(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_806(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_812(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_812(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_818(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_818(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_824(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_824(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_829(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: 0 = 0 f_829(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_833(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_833(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_837(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) :|: TRUE f_837(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 2, 4) -> f_762(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2627, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) :|: TRUE f_762(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2523, v2524, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) -> f_764(v2509, v2510, v2511, v2512, v2513, v2514, v2515, v2516, v2517, v2518, v2519, v2520, 0, 1, v2524, v2523, v2525, v2526, v2527, v2528, v2529, v2530, v2531, 3, 4) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_764(v2509:0, v2510:0, v2511:0, v2512:0, v2513:0, v2514:0, v2515:0, v2516:0, v2517:0, v2518:0, v2519:0, v2520:0, 0, 1, v2524:0, v2523:0, v2525:0, v2526:0, v2527:0, v2528:0, v2529:0, v2530:0, v2531:0, 3, 4) -> f_764(v2509:0, v2510:0, v2511:0, v2512:0, v2513:0, v2514:0, v2515:0, v2516:0, v2517:0, v2518:0, v2519:0, v2520:0, 0, 1, 1 + v2524:0, v2524:0, v2525:0, v2526:0, v2527:0, v2528:0, v2529:0, v2530:0, v2531:0, 3, 4) :|: v2520:0 > 1 && v2524:0 > 0 && v2524:0 < v2520:0 Filtered unneeded arguments: f_764(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_764(x12, x15) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_764(v2520:0, v2524:0) -> f_764(v2520:0, 1 + v2524:0) :|: v2524:0 > 0 && v2524:0 < v2520:0 && v2520:0 > 1 ---------------------------------------- (30) Obligation: Rules: f_764(v2520:0, v2524:0) -> f_764(v2520:0, 1 + v2524:0) :|: v2524:0 > 0 && v2524:0 < v2520:0 && v2520:0 > 1 ---------------------------------------- (31) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (32) Obligation: Rules: f_764(v2520:0:0, v2524:0:0) -> f_764(v2520:0:0, 1 + v2524:0:0) :|: v2524:0:0 > 0 && v2524:0:0 < v2520:0:0 && v2520:0:0 > 1 ---------------------------------------- (33) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_764 ] = -1*f_764_2 + f_764_1 The following rules are decreasing: f_764(v2520:0:0, v2524:0:0) -> f_764(v2520:0:0, 1 + v2524:0:0) :|: v2524:0:0 > 0 && v2524:0:0 < v2520:0:0 && v2520:0:0 > 1 The following rules are bounded: f_764(v2520:0:0, v2524:0:0) -> f_764(v2520:0:0, 1 + v2524:0:0) :|: v2524:0:0 > 0 && v2524:0:0 < v2520:0:0 && v2520:0:0 > 1 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 16 rulesP rules: f_638(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) -> f_645(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) :|: 0 = 0 f_645(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) -> f_652(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: v1440 < v1435 && 2 <= v1435 f_652(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_660(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: 0 = 0 f_660(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_666(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_666(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_672(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_672(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_678(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_678(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_681(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: 0 = 0 f_681(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_684(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: 0 = 0 f_684(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_689(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: 0 = 0 f_689(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_694(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_694(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_699(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: 0 = 0 f_699(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_704(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: v1995 = 1 + v1440 && 2 <= v1995 f_704(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_709(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_709(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_714(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) :|: TRUE f_714(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 2, 4) -> f_631(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1995, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) :|: TRUE f_631(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) -> f_638(v1425, v1426, v1427, v1428, v1429, v1430, v1431, v1432, v1433, v1434, v1435, 0, v1437, 1, v1440, v1439, v1441, v1442, v1443, v1444, v1445, v1446, v1447, 3, 4) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_638(v1425:0, v1426:0, v1427:0, v1428:0, v1429:0, v1430:0, v1431:0, v1432:0, v1433:0, v1434:0, v1435:0, 0, v1437:0, 1, v1440:0, v1439:0, v1441:0, v1442:0, v1443:0, v1444:0, v1445:0, v1446:0, v1447:0, 3, 4) -> f_638(v1425:0, v1426:0, v1427:0, v1428:0, v1429:0, v1430:0, v1431:0, v1432:0, v1433:0, v1434:0, v1435:0, 0, v1437:0, 1, 1 + v1440:0, v1440:0, v1441:0, v1442:0, v1443:0, v1444:0, v1445:0, v1446:0, v1447:0, 3, 4) :|: v1435:0 > 1 && v1440:0 > 0 && v1440:0 < v1435:0 Filtered unneeded arguments: f_638(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_638(x11, x15) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_638(v1435:0, v1440:0) -> f_638(v1435:0, 1 + v1440:0) :|: v1440:0 > 0 && v1440:0 < v1435:0 && v1435:0 > 1 ---------------------------------------- (37) Obligation: Rules: f_638(v1435:0, v1440:0) -> f_638(v1435:0, 1 + v1440:0) :|: v1440:0 > 0 && v1440:0 < v1435:0 && v1435:0 > 1 ---------------------------------------- (38) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (39) Obligation: Rules: f_638(v1435:0:0, v1440:0:0) -> f_638(v1435:0:0, 1 + v1440:0:0) :|: v1440:0:0 > 0 && v1440:0:0 < v1435:0:0 && v1435:0:0 > 1 ---------------------------------------- (40) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f_638(x, x1)] = x - x1 The following rules are decreasing: f_638(v1435:0:0, v1440:0:0) -> f_638(v1435:0:0, 1 + v1440:0:0) :|: v1440:0:0 > 0 && v1440:0:0 < v1435:0:0 && v1435:0:0 > 1 The following rules are bounded: f_638(v1435:0:0, v1440:0:0) -> f_638(v1435:0:0, 1 + v1440:0:0) :|: v1440:0:0 > 0 && v1440:0:0 < v1435:0:0 && v1435:0:0 > 1 ---------------------------------------- (41) YES ---------------------------------------- (42) Obligation: SCC ---------------------------------------- (43) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 10 rulesP rules: f_532(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 4) -> f_536(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 4) :|: 0 = 0 f_536(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 4) -> f_541(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: v989 < v985 && 2 <= v985 f_541(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_547(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: 0 = 0 f_547(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_554(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: TRUE f_554(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_560(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: 0 = 0 f_560(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_565(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: v1144 = 1 + v989 && 2 <= v1144 f_565(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_571(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: TRUE f_571(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_577(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) :|: TRUE f_577(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 2, 4) -> f_528(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v1144, v990, v991, v992, v993, v994, v995, v996, 3, 4) :|: TRUE f_528(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v988, v989, v990, v991, v992, v993, v994, v995, v996, 3, 4) -> f_532(v973, v974, v975, v976, v977, v978, v979, v980, v981, v982, v983, v984, v985, 1, 0, v989, v988, v990, v991, v992, v993, v994, v995, v996, 3, 4) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_532(v973:0, v974:0, v975:0, v976:0, v977:0, v978:0, v979:0, v980:0, v981:0, v982:0, v983:0, v984:0, v985:0, 1, 0, v989:0, v988:0, v990:0, v991:0, v992:0, v993:0, v994:0, v995:0, v996:0, 3, 4) -> f_532(v973:0, v974:0, v975:0, v976:0, v977:0, v978:0, v979:0, v980:0, v981:0, v982:0, v983:0, v984:0, v985:0, 1, 0, 1 + v989:0, v989:0, v990:0, v991:0, v992:0, v993:0, v994:0, v995:0, v996:0, 3, 4) :|: v985:0 > 1 && v989:0 > 0 && v989:0 < v985:0 Filtered unneeded arguments: f_532(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26) -> f_532(x13, x16) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_532(v985:0, v989:0) -> f_532(v985:0, 1 + v989:0) :|: v989:0 > 0 && v989:0 < v985:0 && v985:0 > 1 ---------------------------------------- (44) Obligation: Rules: f_532(v985:0, v989:0) -> f_532(v985:0, 1 + v989:0) :|: v989:0 > 0 && v989:0 < v985:0 && v985:0 > 1 ---------------------------------------- (45) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (46) Obligation: Rules: f_532(v985:0:0, v989:0:0) -> f_532(v985:0:0, 1 + v989:0:0) :|: v989:0:0 > 0 && v989:0:0 < v985:0:0 && v985:0:0 > 1 ---------------------------------------- (47) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_532 ] = -1*f_532_2 + f_532_1 The following rules are decreasing: f_532(v985:0:0, v989:0:0) -> f_532(v985:0:0, 1 + v989:0:0) :|: v989:0:0 > 0 && v989:0:0 < v985:0:0 && v985:0:0 > 1 The following rules are bounded: f_532(v985:0:0, v989:0:0) -> f_532(v985:0:0, 1 + v989:0:0) :|: v989:0:0 > 0 && v989:0:0 < v985:0:0 && v985:0:0 > 1 ---------------------------------------- (48) YES