/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 179 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 32.8 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 284 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 834 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 89 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 0 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 572 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 132 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 863 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 60 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 753 ms] (34) YES (35) LLVM Symbolic Execution SCC (36) SCC2IRS [SOUND, 65 ms] (37) IntTRS (38) IRS2T2 [EQUIVALENT, 0 ms] (39) T2IntSys (40) T2 [EQUIVALENT, 802 ms] (41) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %x = alloca i32, align 4 %y = alloca i32, align 4 %z = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %x %3 = call i32 @__VERIFIER_nondet_int() store %3, %y br %4 4: %5 = load %y %6 = icmp sgt %5 0 br %6, %7, %10 7: %8 = load %x %9 = icmp sgt %8 0 br %10 10: %11 = phi [0, %4], [%9, %7] br %11, %12, %42 12: %13 = load %x %14 = load %y %15 = icmp sgt %13 %14 br %15, %16, %18 16: %17 = load %y store %17, %z br %20 18: %19 = load %x store %19, %z br %20 20: %21 = call i32 @__VERIFIER_nondet_int() %22 = icmp ne %21 0 br %22, %23, %32 23: %24 = load %y %25 = load %x %26 = add %24 %25 store %26, %y %27 = load %z %28 = sub %27 1 store %28, %x %29 = load %y %30 = load %z %31 = add %29 %30 store %31, %z br %41 32: %33 = load %y %34 = load %x %35 = add %33 %34 store %35, %x %36 = load %z %37 = sub %36 1 store %37, %y %38 = load %x %39 = load %z %40 = add %38 %39 store %40, %z br %41 41: br %4 42: %43 = load %1 ret %43 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 5 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 142 rulesP rules: f_1186(v9728, v9729, v9730, v9731, v9732, v9733, v9734, 1, v9736, v9737, v9738, v9739, v9740, v9741, v9742, v9743, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1190(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) :|: 0 = 0 f_1190(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1194(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) :|: 0 = 0 f_1194(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1200(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) :|: TRUE f_1200(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1206(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) :|: 0 = 0 f_1206(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1212(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: 0 < v9744 && 2 <= v9734 && 3 <= v9741 && 7 <= v9742 && 6 <= v9743 && 8 <= v9745 && 3 <= v9732 && 3 <= v9737 && 3 <= v9733 f_1212(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1220(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: 0 = 0 f_1220(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1228(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: 0 = 0 f_1228(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1234(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: TRUE f_1234(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9736, v9734, v9737, v9738, v9739, v9740, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1240(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9734, v9737, v9738, v9739, v9740, v9736, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: 0 = 0 f_1240(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9734, v9737, v9738, v9739, v9740, v9736, v9741, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1246(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) :|: 0 = 0 f_1246(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 7, 6, 8) -> f_1250(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, 0, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 3, 2, 4, 7, 6, 8) :|: 0 = 0 f_1250(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, 0, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 3, 2, 4, 7, 6, 8) -> f_1254(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, 0, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 3, 2, 4, 7, 6, 8) :|: TRUE f_1254(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, 0, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9745, v9746, v9747, v9748, v9749, 3, 2, 4, 7, 6, 8) -> f_1386(v9728, v9729, v9730, v9731, v9732, v9733, v9743, 1, v9744, 0, v9737, v9738, v9739, v9740, v9736, v9741, v9734, v9742, v9734, v9736, v9734, v9745, v9746, v9747, v9748, v9749, 3, 6, 2, 4, 7, 8) :|: TRUE f_1386(v16495, v16496, v16497, v16498, v16499, v16500, v16501, 1, v16503, 0, v16505, v16506, v16507, v16508, v16509, v16510, v16511, v16512, v16513, v16514, v16515, v16516, v16517, v16518, v16519, v16520, 3, 6, 2, 4, 7, 8) -> f_1562(v16495, v16496, v16497, v16498, v16499, v16500, v16501, 1, v16503, 0, v16505, v16506, v16507, v16508, v16509, v16510, v16511, v16512, v16513, v16514, v16515, v16516, v16517, v16518, v16519, v16520, 3, 6, 2, 4, 7, 8) :|: TRUE f_1562(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20937, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) -> f_1567(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1567(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) -> f_1571(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) :|: TRUE f_1571(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) -> f_1575(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) :|: TRUE f_1575(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20938, v20939, v20940, v20941, v20942, v20943, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) -> f_1576(v20927, v20928, v20929, v20930, v20931, v20932, v20933, 1, v20935, 0, v20943, v20938, v20939, v20940, v20941, v20942, v20944, v20945, v20946, v20947, v20948, v20949, v20950, v20951, v20952, 3, 6, 2, 4, 7, 8) :|: TRUE f_1576(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21262, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1579(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1579(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1581(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: v21439 != 0 f_1579(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1582(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: v21439 = 0 f_1581(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1585(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1585(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1589(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1589(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1593(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1593(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1597(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1597(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1601(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: v21666 = v21257 + v21259 && 7 <= v21666 f_1601(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1605(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1605(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1609(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1609(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1613(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 1 + v21674 = v21259 && 0 <= v21674 f_1613(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1617(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1617(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1621(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1621(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1625(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1625(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1629(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: v21682 = v21666 + v21259 && 8 <= v21682 f_1629(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1633(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1633(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1637(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1637(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1641(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1641(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21666, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1644(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1644(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1647(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1647(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1652(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1652(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21674, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1657(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1657(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1662(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 < v21674 && 2 <= v21259 && 8 <= v21666 && 10 <= v21682 && 4 <= v21266 && 3 <= v21261 && 8 <= v21267 && 4 <= v21255 && 4 <= v21256 f_1662(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1668(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 = 0 f_1668(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1674(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 = 0 f_1674(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1678(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: TRUE f_1678(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21259, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1682(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 = 0 f_1682(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, v21257, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1686(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 = 0 f_1686(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1689(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: 0 = 0 f_1689(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1692(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) :|: TRUE f_1692(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21261, v21439, v21263, v21264, v21265, v21266, v21267, v21257, v21259, v21682, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 8, 10) -> f_1562(v21251, v21252, v21253, v21254, v21255, v21256, v21666, 1, v21674, 0, v21259, v21439, v21263, v21264, v21265, v21266, v21261, v21267, v21257, v21259, v21259, v21682, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1582(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1586(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1586(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1590(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1590(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21263, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1594(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1594(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21264, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1598(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1598(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1602(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21266, v21265, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: v21667 = v21257 + v21259 && 7 <= v21667 f_1602(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21266, v21265, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1606(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21266, v21265, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1606(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21266, v21265, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1610(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 0 = 0 f_1610(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1614(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: 1 + v21675 = v21259 && 0 <= v21675 f_1614(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1618(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) :|: TRUE f_1618(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21265, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 4, 7, 8) -> f_1622(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 7, 8, 4) :|: 0 = 0 f_1622(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21266, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 7, 8, 4) -> f_1626(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 7, 8, 4) :|: 0 = 0 f_1626(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21267, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 7, 8, 4) -> f_1630(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) :|: v21683 = v21667 + v21259 && 8 <= v21683 f_1630(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) -> f_1634(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) :|: TRUE f_1634(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) -> f_1638(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) :|: TRUE f_1638(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) -> f_1642(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) :|: TRUE f_1642(v21251, v21252, v21253, v21254, v21255, v21256, v21257, 1, v21259, 0, v21261, v21667, v21675, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) -> f_1645(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) :|: 0 = 0 f_1645(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 6, 2, 8, 4, 7) -> f_1648(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 < v21675 && 2 <= v21259 && 3 <= v21270 && 9 <= v21271 && 8 <= v21667 && 10 <= v21683 && 3 <= v21261 && 4 <= v21255 && 4 <= v21256 f_1648(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1653(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1653(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1658(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: TRUE f_1658(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21259, v21257, 0, v21261, v21667, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1664(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1664(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1670(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1670(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1676(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1676(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1680(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: TRUE f_1680(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21259, v21257, 0, v21261, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1684(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21257, 0, v21261, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1684(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21257, 0, v21261, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1687(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21261, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1687(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21261, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1690(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21261, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1690(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21261, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1693(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21261, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: TRUE f_1693(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, v21261, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1696(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: 0 = 0 f_1696(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1698(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: TRUE f_1698(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1700(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) :|: TRUE f_1700(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21257, v21259, v21683, v21268, v21269, v21270, v21271, v21272, v21273, v21274, v21275, 3, 4, 6, 2, 9, 8, 10) -> f_1701(v21251, v21252, v21253, v21254, v21255, v21256, v21675, 1, v21667, 0, v21268, v21269, v21257, v21270, v21259, v21271, v21257, v21259, v21259, v21683, v21272, v21273, v21274, v21275, 3, 4, 7, 2, 5, 8, 9) :|: TRUE f_1701(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1703(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) :|: TRUE f_1703(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1705(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) :|: v24826 != 0 f_1703(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1706(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) :|: v24826 = 0 f_1705(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1709(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 0, 3, 4, 7, 2, 5, 8, 9) :|: 0 = 0 f_1709(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 0, 3, 4, 7, 2, 5, 8, 9) -> f_1713(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 0, 3, 4, 7, 2, 5, 8, 9) :|: TRUE f_1713(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 0, 3, 4, 7, 2, 5, 8, 9) -> f_1714(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, v24826, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 0, 3, 6, 4, 2, 7, 8) :|: TRUE f_1714(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v24894, v24895, v24896, v24897, v24898, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1717(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v24895, v24896, v24897, v24898, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1717(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v24895, v24896, v24897, v24898, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1719(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v24896, v24897, v24898, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1719(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v24896, v24897, v24898, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1721(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24897, v24898, v24896, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: v25007 = v24890 + v24892 && 7 <= v25007 f_1721(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24897, v24898, v24896, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1723(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24897, v24898, v24896, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: TRUE f_1723(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24897, v24898, v24896, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1725(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24898, v24896, v24897, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1725(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v24898, v24896, v24897, v24899, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1727(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24896, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: 1 + v25011 = v24890 && 0 <= v25011 f_1727(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24896, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1729(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24896, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) :|: TRUE f_1729(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24896, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 4, 2, 7, 8) -> f_1731(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 7, 8, 4) :|: 0 = 0 f_1731(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24897, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 7, 8, 4) -> f_1733(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 7, 8, 4) :|: 0 = 0 f_1733(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v24899, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 7, 8, 4) -> f_1735(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) :|: v25015 = v25007 + v24890 && 8 <= v25015 f_1735(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) -> f_1737(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) :|: TRUE f_1737(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) -> f_1739(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) :|: TRUE f_1739(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24893, v25007, v25011, v25015, v24898, v24900, v24901, v24902, v24903, v24904, v24905, v24906, v24907, 0, 3, 6, 2, 8, 4, 7) -> f_1182(v24884, v24885, v24886, v24887, v24888, v24889, v24890, 1, v24892, v24898, v24893, v24900, v24901, v24902, v24903, v25007, v25011, v25015, v24904, v24905, v24906, v24907, 0, 3, 2, 4, 6, 5) :|: TRUE f_1182(v9728, v9729, v9730, v9731, v9732, v9733, v9734, 1, v9736, v9737, v9738, v9739, v9740, v9741, v9742, v9743, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) -> f_1186(v9728, v9729, v9730, v9731, v9732, v9733, v9734, 1, v9736, v9737, v9738, v9739, v9740, v9741, v9742, v9743, v9744, v9745, v9746, v9747, v9748, v9749, 0, 3, 2, 4, 6, 5) :|: TRUE f_1706(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1710(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) :|: 0 = 0 f_1710(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1715(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) :|: TRUE f_1715(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 4, 7, 2, 5, 8, 9) -> f_1716(v24733, v24734, v24735, v24736, v24737, v24738, v24739, 1, v24741, 0, v24743, v24744, v24745, v24746, v24747, v24748, v24749, v24750, v24751, v24752, v24753, v24754, v24755, v24756, 3, 6, 4, 2, 7, 8) :|: TRUE f_1716(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24990, v24991, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1718(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24991, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1718(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24991, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1720(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1720(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1722(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: v25008 = v24980 + v24982 && 7 <= v25008 f_1722(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1724(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: TRUE f_1724(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1726(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1726(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1728(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 1 + v25012 = v24980 && 0 <= v25012 f_1728(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1730(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: TRUE f_1730(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1732(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1732(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24992, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1734(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1734(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v24993, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1736(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: v25016 = v25008 + v24980 && 8 <= v25016 f_1736(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1738(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: TRUE f_1738(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1740(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: TRUE f_1740(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1741(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: TRUE f_1741(v24974, v24975, v24976, v24977, v24978, v24979, v24980, 1, v24982, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25012, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1742(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1742(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 6, 4, 2, 7, 8) -> f_1743(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 < v25012 && 2 <= v24980 && 8 <= v25008 && 10 <= v25016 && 4 <= v24987 && 3 <= v24988 && 8 <= v24989 && 4 <= v24978 && 4 <= v24979 f_1743(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1745(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1745(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1747(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: TRUE f_1747(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25008, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1749(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1749(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1751(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1751(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1753(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1753(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1754(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: TRUE f_1754(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24982, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1755(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1755(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1756(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1756(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1757(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: 0 = 0 f_1757(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1758(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) :|: TRUE f_1758(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24982, v25016, v24994, v24995, v24996, v24997, 3, 4, 2, 6, 8, 10) -> f_1759(v24974, v24975, v24976, v24977, v24978, v24979, v25012, 1, v25008, v24980, 0, v24984, v24985, v24986, v24987, v24988, v24989, v24980, v24982, v24980, v25016, v24994, v24995, v24996, v24997, 3, 4, 7, 2, 8, 9) :|: TRUE f_1759(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, v26259, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) -> f_1760(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) :|: 0 = 0 f_1760(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) -> f_1761(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) :|: TRUE f_1761(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) -> f_1762(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) :|: TRUE f_1762(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 4, 7, 2, 8, 9) -> f_1763(v26250, v26251, v26252, v26253, v26254, v26255, v26256, 1, v26258, 0, v26261, v26262, v26263, v26264, v26265, v26266, v26267, v26268, v26269, v26270, v26271, v26272, v26273, v26274, 3, 6, 4, 2, 7, 8) :|: TRUE f_1763(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1764(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: TRUE f_1764(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1765(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: v26414 != 0 f_1764(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1766(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: v26414 = 0 f_1765(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1767(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 0, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1767(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 0, 3, 6, 4, 2, 7, 8) -> f_1769(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 0, 3, 6, 4, 2, 7, 8) :|: TRUE f_1769(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 0, 3, 6, 4, 2, 7, 8) -> f_1714(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, v26414, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 0, 3, 6, 4, 2, 7, 8) :|: TRUE f_1766(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1768(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: 0 = 0 f_1768(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1770(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: TRUE f_1770(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) -> f_1716(v26357, v26358, v26359, v26360, v26361, v26362, v26363, 1, v26365, 0, v26367, v26368, v26369, v26370, v26371, v26372, v26373, v26374, v26375, v26376, v26377, v26378, v26379, v26380, 3, 6, 4, 2, 7, 8) :|: TRUE Combined rules. Obtained 8 rulesP rules: f_1764(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, 1 + v25011:0, 1, v26365:0, v26414:0, 0, v26367:0, v26368:0, v26369:0, v26370:0, v26371:0, v26372:0, v26373:0, v26374:0, v26375:0, v26376:0, v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 4, 2, 7, 8) -> f_1579(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, 1 + v25011:0 + v26365:0, 1, v25011:0, 0, 1 + v25011:0, v21439:0, v26373:0, v26374:0, v26365:0, v26375:0, v26376:0, 1 + v25011:0, v26365:0, 1 + v25011:0, 1 + v25011:0 + v26365:0 + (1 + v25011:0), v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 2, 4, 7, 8) :|: v25011:0 > 0 && 6 < 1 + v25011:0 + v26365:0 && v26375:0 > 2 && v26376:0 > 6 && 7 < 1 + v25011:0 + v26365:0 + (1 + v25011:0) && v26361:0 > 2 && v26371:0 > 2 && v26362:0 > 2 && v26414:0 < 0 f_1764(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, 1 + v25011:0, 1, v26365:0, v26414:0, 0, v26367:0, v26368:0, v26369:0, v26370:0, v26371:0, v26372:0, v26373:0, v26374:0, v26375:0, v26376:0, v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 4, 2, 7, 8) -> f_1579(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, 1 + v25011:0 + v26365:0, 1, v25011:0, 0, 1 + v25011:0, v21439:0, v26373:0, v26374:0, v26365:0, v26375:0, v26376:0, 1 + v25011:0, v26365:0, 1 + v25011:0, 1 + v25011:0 + v26365:0 + (1 + v25011:0), v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 2, 4, 7, 8) :|: v25011:0 > 0 && 6 < 1 + v25011:0 + v26365:0 && v26375:0 > 2 && v26376:0 > 6 && 7 < 1 + v25011:0 + v26365:0 + (1 + v25011:0) && v26361:0 > 2 && v26371:0 > 2 && v26362:0 > 2 && v26414:0 > 0 f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0, 1, 1 + v21674:0, 0, v21261:0, v21439:0, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21268:0, v21269:0, v21270:0, v21271:0, v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) -> f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0 + (1 + v21674:0), 1, v21674:0, 0, v21261:0, v21439:1, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21257:0, 1 + v21674:0, 1 + v21674:0, v21257:0 + (1 + v21674:0) + (1 + v21674:0), v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) :|: v21674:0 > 0 && v21257:0 + (1 + v21674:0) > 7 && v21257:0 + (1 + v21674:0) + (1 + v21674:0) > 9 && v21439:0 < 0 && v21266:0 > 3 && v21261:0 > 2 && v21267:0 > 7 && v21256:0 > 3 && v21255:0 > 3 f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0, 1, 1 + v21674:0, 0, v21261:0, v21439:0, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21268:0, v21269:0, v21270:0, v21271:0, v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) -> f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0 + (1 + v21674:0), 1, v21674:0, 0, v21261:0, v21439:1, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21257:0, 1 + v21674:0, 1 + v21674:0, v21257:0 + (1 + v21674:0) + (1 + v21674:0), v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) :|: v21674:0 > 0 && v21257:0 + (1 + v21674:0) > 7 && v21257:0 + (1 + v21674:0) + (1 + v21674:0) > 9 && v21439:0 > 0 && v21266:0 > 3 && v21261:0 > 2 && v21267:0 > 7 && v21256:0 > 3 && v21255:0 > 3 f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0, 1, 1 + (1 + v25012:0), 0, v21261:0, 0, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21268:0, v21269:0, v21270:0, v21271:0, v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) -> f_1764(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v25012:0, 1, 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))), v26414:0, 0, v21268:0, v21269:0, v21257:0, v21270:0, 1 + (1 + v25012:0), v21271:0, 1 + v25012:0, v21257:0 + (1 + (1 + v25012:0)), 1 + v25012:0, 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) + (1 + v25012:0), v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 4, 2, 7, 8) :|: v25012:0 > 0 && v21271:0 > 8 && v21257:0 + (1 + (1 + v25012:0)) > 7 && v21257:0 + (1 + (1 + v25012:0)) + (1 + (1 + v25012:0)) > 9 && 7 < 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) && 9 < 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) + (1 + v25012:0) && v21270:0 > 3 && v21261:0 > 2 && v21255:0 > 3 && v21256:0 > 3 f_1764(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, 1 + v25012:0, 1, v26365:0, 0, 0, v26367:0, v26368:0, v26369:0, v26370:0, v26371:0, v26372:0, v26373:0, v26374:0, v26375:0, v26376:0, v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 4, 2, 7, 8) -> f_1764(v26357:0, v26358:0, v26359:0, v26360:0, v26361:0, v26362:0, v25012:0, 1, 1 + v25012:0 + v26365:0, v26414:1, 0, v26367:0, v26368:0, v26369:0, v26370:0, v26371:0, v26372:0, 1 + v25012:0, v26365:0, 1 + v25012:0, 1 + v25012:0 + v26365:0 + (1 + v25012:0), v26377:0, v26378:0, v26379:0, v26380:0, 3, 6, 4, 2, 7, 8) :|: v25012:0 > 0 && 7 < 1 + v25012:0 + v26365:0 && 9 < 1 + v25012:0 + v26365:0 + (1 + v25012:0) && v26370:0 > 3 && v26371:0 > 2 && v26372:0 > 7 && v26362:0 > 3 && v26361:0 > 3 f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0, 1, 1 + (1 + v25011:0), 0, v21261:0, 0, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21268:0, v21269:0, v21270:0, v21271:0, v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) -> f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))), 1, v25011:0, 0, 1 + v25011:0, v21439:1, v21257:0, 1 + (1 + v25011:0), v21257:0 + (1 + (1 + v25011:0)), 1 + (1 + v25011:0), v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)), 1 + v25011:0, v21257:0 + (1 + (1 + v25011:0)), 1 + v25011:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0), v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) :|: v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)) > 9 && v25011:0 > 0 && v21257:0 + (1 + (1 + v25011:0)) > 7 && v21255:0 > 3 && v21256:0 > 3 && 6 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) && v21270:0 > 2 && v21271:0 > 8 && v21261:0 > 2 && 7 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0) && v24826:0 < 0 f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, v21257:0, 1, 1 + (1 + v25011:0), 0, v21261:0, 0, v21263:0, v21264:0, v21265:0, v21266:0, v21267:0, v21268:0, v21269:0, v21270:0, v21271:0, v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) -> f_1579(v21251:0, v21252:0, v21253:0, v21254:0, v21255:0, v21256:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))), 1, v25011:0, 0, 1 + v25011:0, v21439:1, v21257:0, 1 + (1 + v25011:0), v21257:0 + (1 + (1 + v25011:0)), 1 + (1 + v25011:0), v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)), 1 + v25011:0, v21257:0 + (1 + (1 + v25011:0)), 1 + v25011:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0), v21272:0, v21273:0, v21274:0, v21275:0, 3, 6, 2, 4, 7, 8) :|: v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)) > 9 && v25011:0 > 0 && v21257:0 + (1 + (1 + v25011:0)) > 7 && v21255:0 > 3 && v21256:0 > 3 && 6 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) && v21270:0 > 2 && v21271:0 > 8 && v21261:0 > 2 && 7 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0) && v24826:0 > 0 Filtered unneeded arguments: f_1764(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) -> f_1764(x5, x6, x7, x9, x10, x15, x16, x17, x20, x21) f_1579(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) -> f_1579(x5, x6, x7, x9, x11, x12, x16, x17, x20, x21) Removed division, modulo operations, cleaned up constraints. Obtained 7 rules.P rules: f_1764(v26361:0, v26362:0, sum~cons_1~v25011:0, v26365:0, v26414:0, v26370:0, v26371:0, v26372:0, v26375:0, v26376:0) -> f_1579(v26361:0, v26362:0, 1 + v25011:0 + v26365:0, v25011:0, 1 + v25011:0, v21439:0, v26375:0, v26376:0, 1 + v25011:0, 1 + v25011:0 + v26365:0 + (1 + v25011:0)) :|: 6 < 1 + v25011:0 + v26365:0 && v25011:0 > 0 && v26375:0 > 2 && v26376:0 > 6 && 7 < 1 + v25011:0 + v26365:0 + (1 + v25011:0) && v26361:0 > 2 && v26371:0 > 2 && v26414:0 < 0 && v26362:0 > 2 && sum~cons_1~v25011:0 = 1 + v25011:0 f_1764(v26361:0, v26362:0, sum~cons_1~v25011:0, v26365:0, v26414:0, v26370:0, v26371:0, v26372:0, v26375:0, v26376:0) -> f_1579(v26361:0, v26362:0, 1 + v25011:0 + v26365:0, v25011:0, 1 + v25011:0, v21439:0, v26375:0, v26376:0, 1 + v25011:0, 1 + v25011:0 + v26365:0 + (1 + v25011:0)) :|: 6 < 1 + v25011:0 + v26365:0 && v25011:0 > 0 && v26375:0 > 2 && v26376:0 > 6 && 7 < 1 + v25011:0 + v26365:0 + (1 + v25011:0) && v26361:0 > 2 && v26371:0 > 2 && v26414:0 > 0 && v26362:0 > 2 && sum~cons_1~v25011:0 = 1 + v25011:0 f_1579(v21255:0, v21256:0, v21257:0, sum~cons_1~v21674:0, v21261:0, v21439:0, v21266:0, v21267:0, v21270:0, v21271:0) -> f_1579(v21255:0, v21256:0, v21257:0 + (1 + v21674:0), v21674:0, v21261:0, v21439:1, v21266:0, v21267:0, 1 + v21674:0, v21257:0 + (1 + v21674:0) + (1 + v21674:0)) :|: v21257:0 + (1 + v21674:0) > 7 && v21674:0 > 0 && v21257:0 + (1 + v21674:0) + (1 + v21674:0) > 9 && v21439:0 < 0 && v21266:0 > 3 && v21261:0 > 2 && v21267:0 > 7 && v21255:0 > 3 && v21256:0 > 3 && sum~cons_1~v21674:0 = 1 + v21674:0 f_1579(v21255:0, v21256:0, v21257:0, sum~cons_1~v21674:0, v21261:0, v21439:0, v21266:0, v21267:0, v21270:0, v21271:0) -> f_1579(v21255:0, v21256:0, v21257:0 + (1 + v21674:0), v21674:0, v21261:0, v21439:1, v21266:0, v21267:0, 1 + v21674:0, v21257:0 + (1 + v21674:0) + (1 + v21674:0)) :|: v21257:0 + (1 + v21674:0) > 7 && v21674:0 > 0 && v21257:0 + (1 + v21674:0) + (1 + v21674:0) > 9 && v21439:0 > 0 && v21266:0 > 3 && v21261:0 > 2 && v21267:0 > 7 && v21255:0 > 3 && v21256:0 > 3 && sum~cons_1~v21674:0 = 1 + v21674:0 f_1579(v21255:0, v21256:0, v21257:0, sum~cons_1~sum~cons_1~v25012:0, v21261:0, cons_0, v21266:0, v21267:0, v21270:0, v21271:0) -> f_1764(v21255:0, v21256:0, v25012:0, 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))), v26414:0, v21270:0, 1 + (1 + v25012:0), v21271:0, 1 + v25012:0, 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) + (1 + v25012:0)) :|: v21271:0 > 8 && v25012:0 > 0 && v21257:0 + (1 + (1 + v25012:0)) > 7 && v21257:0 + (1 + (1 + v25012:0)) + (1 + (1 + v25012:0)) > 9 && 7 < 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) && 9 < 1 + v25012:0 + (v21257:0 + (1 + (1 + v25012:0))) + (1 + v25012:0) && v21270:0 > 3 && v21261:0 > 2 && v21256:0 > 3 && v21255:0 > 3 && sum~cons_1~sum~cons_1~v25012:0 = 1 + (1 + v25012:0) && cons_0 = 0 f_1764(v26361:0, v26362:0, sum~cons_1~v25012:0, v26365:0, cons_0, v26370:0, v26371:0, v26372:0, v26375:0, v26376:0) -> f_1764(v26361:0, v26362:0, v25012:0, 1 + v25012:0 + v26365:0, v26414:1, v26370:0, v26371:0, v26372:0, 1 + v25012:0, 1 + v25012:0 + v26365:0 + (1 + v25012:0)) :|: 7 < 1 + v25012:0 + v26365:0 && v25012:0 > 0 && 9 < 1 + v25012:0 + v26365:0 + (1 + v25012:0) && v26370:0 > 3 && v26371:0 > 2 && v26372:0 > 7 && v26361:0 > 3 && v26362:0 > 3 && sum~cons_1~v25012:0 = 1 + v25012:0 && cons_0 = 0 f_1579(v21255:0, v21256:0, v21257:0, sum~cons_1~sum~cons_1~v25011:0, v21261:0, cons_0, v21266:0, v21267:0, v21270:0, v21271:0) -> f_1579(v21255:0, v21256:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))), v25011:0, 1 + v25011:0, v21439:1, 1 + (1 + v25011:0), v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)), 1 + v25011:0, 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0)) :|: v25011:0 > 0 && v21257:0 + (1 + (1 + v25011:0)) + (1 + (1 + v25011:0)) > 9 && v21257:0 + (1 + (1 + v25011:0)) > 7 && v21255:0 > 3 && v21256:0 > 3 && 6 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) && v21270:0 > 2 && v21271:0 > 8 && 7 < 1 + v25011:0 + (v21257:0 + (1 + (1 + v25011:0))) + (1 + v25011:0) && v21261:0 > 2 && sum~cons_1~sum~cons_1~v25011:0 = 1 + (1 + v25011:0) && cons_0 = 0 ---------------------------------------- (9) Obligation: Rules: f_1764(v26361:0, v26362:0, sum~cons_1~v25011:0, v26365:0, v26414:0, v26370:0, v26371:0, v26372:0, v26375:0, v26376:0) -> f_1579(v26361:0, v26362:0, 1 + v25011:0 + v26365:0, v25011:0, 1 + v25011:0, v21439:0, v26375:0, v26376:0, 1 + v25011:0, 1 + v25011:0 + v26365:0 + (1 + v25011:0)) :|: 6 < 1 + v25011:0 + v26365:0 && v25011:0 > 0 && v26375:0 > 2 && v26376:0 > 6 && 7 < 1 + v25011:0 + v26365:0 + (1 + v25011:0) && v26361:0 > 2 && v26371:0 > 2 && v26414:0 < 0 && v26362:0 > 2 && sum~cons_1~v25011:0 = 1 + v25011:0 f_1764(x, x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f_1579(x, x1, 1 + x10 + x3, x10, 1 + x10, x11, x8, x9, 1 + x10, 1 + x10 + x3 + (1 + x10)) :|: 6 < 1 + x10 + x3 && x10 > 0 && x8 > 2 && x9 > 6 && 7 < 1 + x10 + x3 + (1 + x10) && x > 2 && x6 > 2 && x4 > 0 && x1 > 2 && x2 = 1 + x10 f_1579(x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_1579(x12, x13, x14 + (1 + x22), x22, x16, x23, x18, x19, 1 + x22, x14 + (1 + x22) + (1 + x22)) :|: x14 + (1 + x22) > 7 && x22 > 0 && x14 + (1 + x22) + (1 + x22) > 9 && x17 < 0 && x18 > 3 && x16 > 2 && x19 > 7 && x12 > 3 && x13 > 3 && x15 = 1 + x22 f_1579(x24, x25, x26, x27, x28, x29, x30, x31, x32, x33) -> f_1579(x24, x25, x26 + (1 + x34), x34, x28, x35, x30, x31, 1 + x34, x26 + (1 + x34) + (1 + x34)) :|: x26 + (1 + x34) > 7 && x34 > 0 && x26 + (1 + x34) + (1 + x34) > 9 && x29 > 0 && x30 > 3 && x28 > 2 && x31 > 7 && x24 > 3 && x25 > 3 && x27 = 1 + x34 f_1579(x36, x37, x38, x39, x40, x41, x42, x43, x44, x45) -> f_1764(x36, x37, x46, 1 + x46 + (x38 + (1 + (1 + x46))), x47, x44, 1 + (1 + x46), x45, 1 + x46, 1 + x46 + (x38 + (1 + (1 + x46))) + (1 + x46)) :|: x45 > 8 && x46 > 0 && x38 + (1 + (1 + x46)) > 7 && x38 + (1 + (1 + x46)) + (1 + (1 + x46)) > 9 && 7 < 1 + x46 + (x38 + (1 + (1 + x46))) && 9 < 1 + x46 + (x38 + (1 + (1 + x46))) + (1 + x46) && x44 > 3 && x40 > 2 && x37 > 3 && x36 > 3 && x39 = 1 + (1 + x46) && x41 = 0 f_1764(x48, x49, x50, x51, x52, x53, x54, x55, x56, x57) -> f_1764(x48, x49, x58, 1 + x58 + x51, x59, x53, x54, x55, 1 + x58, 1 + x58 + x51 + (1 + x58)) :|: 7 < 1 + x58 + x51 && x58 > 0 && 9 < 1 + x58 + x51 + (1 + x58) && x53 > 3 && x54 > 2 && x55 > 7 && x48 > 3 && x49 > 3 && x50 = 1 + x58 && x52 = 0 f_1579(x60, x61, x62, x63, x64, x65, x66, x67, x68, x69) -> f_1579(x60, x61, 1 + x70 + (x62 + (1 + (1 + x70))), x70, 1 + x70, x71, 1 + (1 + x70), x62 + (1 + (1 + x70)) + (1 + (1 + x70)), 1 + x70, 1 + x70 + (x62 + (1 + (1 + x70))) + (1 + x70)) :|: x70 > 0 && x62 + (1 + (1 + x70)) + (1 + (1 + x70)) > 9 && x62 + (1 + (1 + x70)) > 7 && x60 > 3 && x61 > 3 && 6 < 1 + x70 + (x62 + (1 + (1 + x70))) && x68 > 2 && x69 > 8 && 7 < 1 + x70 + (x62 + (1 + (1 + x70))) + (1 + x70) && x64 > 2 && x63 = 1 + (1 + x70) && x65 = 0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1764_10,1) (f_1579_10,2) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX2 - 1; oldX11 := nondet(); assume(6 < 1 + oldX10 + oldX3 && oldX10 > 0 && oldX8 > 2 && oldX9 > 6 && 7 < 1 + oldX10 + oldX3 + (1 + oldX10) && oldX0 > 2 && oldX6 > 2 && oldX4 < 0 && oldX1 > 2 && oldX2 = 1 + oldX10); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX10 + oldX3; x3 := oldX2 - 1; x4 := 1 + oldX10; x5 := oldX11; x6 := oldX8; x7 := oldX9; x8 := 1 + oldX10; x9 := 1 + oldX10 + oldX3 + (1 + oldX10); TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX2 - 1; oldX11 := nondet(); assume(6 < 1 + oldX10 + oldX3 && oldX10 > 0 && oldX8 > 2 && oldX9 > 6 && 7 < 1 + oldX10 + oldX3 + (1 + oldX10) && oldX0 > 2 && oldX6 > 2 && oldX4 > 0 && oldX1 > 2 && oldX2 = 1 + oldX10); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX10 + oldX3; x3 := oldX2 - 1; x4 := 1 + oldX10; x5 := oldX11; x6 := oldX8; x7 := oldX9; x8 := 1 + oldX10; x9 := 1 + oldX10 + oldX3 + (1 + oldX10); TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX3 - 1; oldX11 := nondet(); assume(oldX2 + (1 + oldX10) > 7 && oldX10 > 0 && oldX2 + (1 + oldX10) + (1 + oldX10) > 9 && oldX5 < 0 && oldX6 > 3 && oldX4 > 2 && oldX7 > 7 && oldX0 > 3 && oldX1 > 3 && oldX3 = 1 + oldX10); x0 := oldX0; x1 := oldX1; x2 := oldX2 + (1 + oldX10); x3 := oldX3 - 1; x4 := oldX4; x5 := oldX11; x6 := oldX6; x7 := oldX7; x8 := 1 + oldX10; x9 := oldX2 + (1 + oldX10) + (1 + oldX10); TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX3 - 1; oldX11 := nondet(); assume(oldX2 + (1 + oldX10) > 7 && oldX10 > 0 && oldX2 + (1 + oldX10) + (1 + oldX10) > 9 && oldX5 > 0 && oldX6 > 3 && oldX4 > 2 && oldX7 > 7 && oldX0 > 3 && oldX1 > 3 && oldX3 = 1 + oldX10); x0 := oldX0; x1 := oldX1; x2 := oldX2 + (1 + oldX10); x3 := oldX3 - 1; x4 := oldX4; x5 := oldX11; x6 := oldX6; x7 := oldX7; x8 := 1 + oldX10; x9 := oldX2 + (1 + oldX10) + (1 + oldX10); TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX3 - 2; oldX11 := nondet(); assume(oldX9 > 8 && oldX10 > 0 && oldX2 + (1 + (1 + oldX10)) > 7 && oldX2 + (1 + (1 + oldX10)) + (1 + (1 + oldX10)) > 9 && 7 < 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) && 9 < 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) + (1 + oldX10) && oldX8 > 3 && oldX4 > 2 && oldX1 > 3 && oldX0 > 3 && oldX3 = 1 + (1 + oldX10) && oldX5 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX3 - 2; x3 := 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))); x4 := oldX11; x5 := oldX8; x6 := 1 + (1 + oldX10); x7 := oldX9; x8 := 1 + oldX10; x9 := 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) + (1 + oldX10); TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX2 - 1; oldX11 := nondet(); assume(7 < 1 + oldX10 + oldX3 && oldX10 > 0 && 9 < 1 + oldX10 + oldX3 + (1 + oldX10) && oldX5 > 3 && oldX6 > 2 && oldX7 > 7 && oldX0 > 3 && oldX1 > 3 && oldX2 = 1 + oldX10 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX10 + oldX3; x4 := oldX11; x5 := oldX5; x6 := oldX6; x7 := oldX7; x8 := 1 + oldX10; x9 := 1 + oldX10 + oldX3 + (1 + oldX10); TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := x6; oldX7 := x7; oldX8 := x8; oldX9 := x9; oldX10 := oldX3 - 2; oldX11 := nondet(); assume(oldX10 > 0 && oldX2 + (1 + (1 + oldX10)) + (1 + (1 + oldX10)) > 9 && oldX2 + (1 + (1 + oldX10)) > 7 && oldX0 > 3 && oldX1 > 3 && 6 < 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) && oldX8 > 2 && oldX9 > 8 && 7 < 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) + (1 + oldX10) && oldX4 > 2 && oldX3 = 1 + (1 + oldX10) && oldX5 = 0); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))); x3 := oldX3 - 2; x4 := 1 + oldX10; x5 := oldX11; x6 := 1 + (1 + oldX10); x7 := oldX2 + (1 + (1 + oldX10)) + (1 + (1 + oldX10)); x8 := 1 + oldX10; x9 := 1 + oldX10 + (oldX2 + (1 + (1 + oldX10))) + (1 + oldX10); TO: 2; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 7, 17, 20, 21, 22, 23 using the following rank functions: - Rank function 1: RF for loc. 6: 1+2*x2 RF for loc. 7: 1+2*x3 RF for loc. 8: 2*x2 RF for loc. 12: 2*x3 Bound for (chained) transitions 5: 4 Bound for (chained) transitions 6: 4 Bound for (chained) transitions 7: 4 Bound for (chained) transitions 20: 4 Bound for (chained) transitions 21: 4 Bound for (chained) transitions 22: 6 Bound for (chained) transitions 23: 6 - Rank function 2: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 0 RF for loc. 12: -1 Bound for (chained) transitions 17: 0 - Rank function 3: RF for loc. 6: 1 RF for loc. 8: 0 Bound for (chained) transitions 2: 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 33 rulesP rules: f_874(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, v5660, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_882(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: v5660 = 0 f_882(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_890(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: 0 = 0 f_890(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_898(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: TRUE f_898(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_906(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: 0 = 0 f_906(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_914(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: 0 = 0 f_914(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_922(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: v5780 = v5605 + v5607 && 5 <= v5780 f_922(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_930(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: TRUE f_930(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_938(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: 0 = 0 f_938(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_946(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: 1 + v5796 = v5605 && 0 <= v5796 f_946(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_954(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: TRUE f_954(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_962(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: 0 = 0 f_962(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_970(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) :|: 0 = 0 f_970(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 5) -> f_978(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) :|: v5812 = v5780 + v5605 && 6 <= v5812 f_978(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) -> f_986(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) :|: TRUE f_986(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) -> f_994(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) :|: TRUE f_994(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) -> f_1000(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) :|: TRUE f_1000(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5780, v5796, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) -> f_1006(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) :|: 0 = 0 f_1006(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 5, 6) -> f_1014(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 < v5796 && 2 <= v5605 && 6 <= v5780 && 8 <= v5812 && 3 <= v5603 && 3 <= v5604 f_1014(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1023(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1023(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1032(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: TRUE f_1032(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5607, v5605, 0, v5780, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1044(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1044(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1056(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1056(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1066(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1066(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1075(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: TRUE f_1075(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5607, v5605, 0, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1084(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5605, 0, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1084(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, v5605, 0, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1090(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1090(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1096(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1096(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1102(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: TRUE f_1102(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1108(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: 0 = 0 f_1108(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1114(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: TRUE f_1114(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_1122(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) :|: TRUE f_1122(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6, 8) -> f_870(v5599, v5600, v5601, v5602, v5603, v5604, v5796, 1, v5780, 0, v5605, v5607, v5605, v5812, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: TRUE f_870(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) -> f_874(v5599, v5600, v5601, v5602, v5603, v5604, v5605, 1, v5607, v5660, 0, v5609, v5610, v5611, v5612, v5613, v5614, v5615, v5616, 3, 2, 4, 6) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_874(v5599:0, v5600:0, v5601:0, v5602:0, v5603:0, v5604:0, 1 + v5796:0, 1, v5607:0, 0, 0, v5609:0, v5610:0, v5611:0, v5612:0, v5613:0, v5614:0, v5615:0, v5616:0, 3, 2, 4, 6) -> f_874(v5599:0, v5600:0, v5601:0, v5602:0, v5603:0, v5604:0, v5796:0, 1, 1 + v5796:0 + v5607:0, v5660:1, 0, 1 + v5796:0, v5607:0, 1 + v5796:0, 1 + v5796:0 + v5607:0 + (1 + v5796:0), v5613:0, v5614:0, v5615:0, v5616:0, 3, 2, 4, 6) :|: v5796:0 > 0 && 5 < 1 + v5796:0 + v5607:0 && 7 < 1 + v5796:0 + v5607:0 + (1 + v5796:0) && v5604:0 > 2 && v5603:0 > 2 Filtered unneeded arguments: f_874(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_874(x5, x6, x7, x9, x10) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_874(v5603:0, v5604:0, sum~cons_1~v5796:0, v5607:0, cons_0) -> f_874(v5603:0, v5604:0, v5796:0, 1 + v5796:0 + v5607:0, v5660:1) :|: 5 < 1 + v5796:0 + v5607:0 && v5796:0 > 0 && 7 < 1 + v5796:0 + v5607:0 + (1 + v5796:0) && v5603:0 > 2 && v5604:0 > 2 && sum~cons_1~v5796:0 = 1 + v5796:0 && cons_0 = 0 ---------------------------------------- (16) Obligation: Rules: f_874(v5603:0, v5604:0, sum~cons_1~v5796:0, v5607:0, cons_0) -> f_874(v5603:0, v5604:0, v5796:0, 1 + v5796:0 + v5607:0, v5660:1) :|: 5 < 1 + v5796:0 + v5607:0 && v5796:0 > 0 && 7 < 1 + v5796:0 + v5607:0 + (1 + v5796:0) && v5603:0 > 2 && v5604:0 > 2 && sum~cons_1~v5796:0 = 1 + v5796:0 && cons_0 = 0 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_874_5,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; oldX6 := nondet(); assume(5 < 1 + oldX5 + oldX3 && oldX5 > 0 && 7 < 1 + oldX5 + oldX3 + (1 + oldX5) && oldX0 > 2 && oldX1 > 2 && oldX2 = 1 + oldX5 && oldX4 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX5 + oldX3; x4 := oldX6; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x2 RF for loc. 6: 2*x2 Bound for (chained) transitions 3: 4 Bound for (chained) transitions 4: 4 - Rank function 2: 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 33 rulesP rules: f_871(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_875(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: v5657 != 0 f_875(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_883(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: 0 = 0 f_883(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_891(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: TRUE f_891(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_899(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: 0 = 0 f_899(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_907(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: 0 = 0 f_907(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_915(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: v5773 = v5464 + v5466 && 6 <= v5773 f_915(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_923(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: TRUE f_923(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_931(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: 0 = 0 f_931(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_939(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: 1 + v5789 = v5466 && 0 <= v5789 f_939(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_947(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: TRUE f_947(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_955(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: 0 = 0 f_955(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_963(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) :|: 0 = 0 f_963(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4, 6) -> f_971(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: v5805 = v5773 + v5466 && 7 <= v5805 f_971(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_979(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: TRUE f_979(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_987(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: TRUE f_987(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_995(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: TRUE f_995(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5773, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_1001(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: 0 = 0 f_1001(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_1007(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: 0 = 0 f_1007(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_1016(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: TRUE f_1016(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5466, v5464, 0, v5657, v5789, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_1025(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) :|: 0 = 0 f_1025(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 4, 6, 7) -> f_1034(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 < v5789 && 2 <= v5466 && 7 <= v5773 && 9 <= v5805 && 4 <= v5462 && 3 <= v5463 f_1034(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1046(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1046(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1058(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1058(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1067(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: TRUE f_1067(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5466, v5464, 0, v5657, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1076(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5464, 0, v5657, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1076(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, v5464, 0, v5657, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1085(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1085(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1091(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1091(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1097(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: TRUE f_1097(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1103(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: 0 = 0 f_1103(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1109(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: TRUE f_1109(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_1115(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) :|: TRUE f_1115(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5805, v5473, v5474, v5475, v5476, 3, 4, 5, 2, 7, 9) -> f_865(v5458, v5459, v5460, v5461, v5462, v5463, v5773, 1, v5789, 0, v5657, v5464, v5466, v5466, v5805, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: TRUE f_865(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5468, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) -> f_871(v5458, v5459, v5460, v5461, v5462, v5463, v5464, 1, v5466, 0, v5657, v5469, v5470, v5471, v5472, v5473, v5474, v5475, v5476, 3, 2, 5, 7, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_871(v5458:0, v5459:0, v5460:0, v5461:0, v5462:0, v5463:0, v5464:0, 1, 1 + v5789:0, 0, v5657:0, v5469:0, v5470:0, v5471:0, v5472:0, v5473:0, v5474:0, v5475:0, v5476:0, 3, 2, 5, 7, 4) -> f_871(v5458:0, v5459:0, v5460:0, v5461:0, v5462:0, v5463:0, v5464:0 + (1 + v5789:0), 1, v5789:0, 0, v5657:1, v5464:0, 1 + v5789:0, 1 + v5789:0, v5464:0 + (1 + v5789:0) + (1 + v5789:0), v5473:0, v5474:0, v5475:0, v5476:0, 3, 2, 5, 7, 4) :|: v5789:0 > 0 && v5464:0 + (1 + v5789:0) > 6 && v5464:0 + (1 + v5789:0) + (1 + v5789:0) > 8 && v5657:0 < 0 && v5463:0 > 2 && v5462:0 > 3 f_871(v5458:0, v5459:0, v5460:0, v5461:0, v5462:0, v5463:0, v5464:0, 1, 1 + v5789:0, 0, v5657:0, v5469:0, v5470:0, v5471:0, v5472:0, v5473:0, v5474:0, v5475:0, v5476:0, 3, 2, 5, 7, 4) -> f_871(v5458:0, v5459:0, v5460:0, v5461:0, v5462:0, v5463:0, v5464:0 + (1 + v5789:0), 1, v5789:0, 0, v5657:1, v5464:0, 1 + v5789:0, 1 + v5789:0, v5464:0 + (1 + v5789:0) + (1 + v5789:0), v5473:0, v5474:0, v5475:0, v5476:0, 3, 2, 5, 7, 4) :|: v5789:0 > 0 && v5464:0 + (1 + v5789:0) > 6 && v5464:0 + (1 + v5789:0) + (1 + v5789:0) > 8 && v5657:0 > 0 && v5463:0 > 2 && v5462:0 > 3 Filtered unneeded arguments: f_871(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_871(x5, x6, x7, x9, x11) Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: f_871(v5462:0, v5463:0, v5464:0, sum~cons_1~v5789:0, v5657:0) -> f_871(v5462:0, v5463:0, v5464:0 + (1 + v5789:0), v5789:0, v5657:1) :|: v5464:0 + (1 + v5789:0) > 6 && v5789:0 > 0 && v5464:0 + (1 + v5789:0) + (1 + v5789:0) > 8 && v5657:0 < 0 && v5462:0 > 3 && v5463:0 > 2 && sum~cons_1~v5789:0 = 1 + v5789:0 f_871(v5462:0, v5463:0, v5464:0, sum~cons_1~v5789:0, v5657:0) -> f_871(v5462:0, v5463:0, v5464:0 + (1 + v5789:0), v5789:0, v5657:1) :|: v5464:0 + (1 + v5789:0) > 6 && v5789:0 > 0 && v5464:0 + (1 + v5789:0) + (1 + v5789:0) > 8 && v5657:0 > 0 && v5462:0 > 3 && v5463:0 > 2 && sum~cons_1~v5789:0 = 1 + v5789:0 ---------------------------------------- (23) Obligation: Rules: f_871(v5462:0, v5463:0, v5464:0, sum~cons_1~v5789:0, v5657:0) -> f_871(v5462:0, v5463:0, v5464:0 + (1 + v5789:0), v5789:0, v5657:1) :|: v5464:0 + (1 + v5789:0) > 6 && v5789:0 > 0 && v5464:0 + (1 + v5789:0) + (1 + v5789:0) > 8 && v5657:0 < 0 && v5462:0 > 3 && v5463:0 > 2 && sum~cons_1~v5789:0 = 1 + v5789:0 f_871(x, x1, x2, x3, x4) -> f_871(x, x1, x2 + (1 + x5), x5, x6) :|: x2 + (1 + x5) > 6 && x5 > 0 && x2 + (1 + x5) + (1 + x5) > 8 && x4 > 0 && x > 3 && x1 > 2 && x3 = 1 + x5 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_871_5,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX3 - 1; oldX6 := nondet(); assume(oldX2 + (1 + oldX5) > 6 && oldX5 > 0 && oldX2 + (1 + oldX5) + (1 + oldX5) > 8 && oldX4 < 0 && oldX0 > 3 && oldX1 > 2 && oldX3 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 + (1 + oldX5); x3 := oldX3 - 1; x4 := oldX6; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX3 - 1; oldX6 := nondet(); assume(oldX2 + (1 + oldX5) > 6 && oldX5 > 0 && oldX2 + (1 + oldX5) + (1 + oldX5) > 8 && oldX4 > 0 && oldX0 > 3 && oldX1 > 2 && oldX3 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 + (1 + oldX5); x3 := oldX3 - 1; x4 := oldX6; TO: 1; ---------------------------------------- (26) 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: 1+2*x3 RF for loc. 6: 2*x3 Bound for (chained) transitions 5: 4 - Rank function 2: RF for loc. 5: 1+2*x3 RF for loc. 6: 2*x3 Bound for (chained) transitions 4: 4 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 33 rulesP rules: f_747(v3783, v3784, v3785, v3786, v3787, v3788, v3789, 1, v3791, 0, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_753(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) :|: 0 = 0 f_753(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_761(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) :|: 0 = 0 f_761(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_770(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) :|: TRUE f_770(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3791, v3789, 0, v3793, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_779(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) :|: 0 = 0 f_779(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_789(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 < v3795 && 2 <= v3791 && 3 <= v3794 && 5 <= v3796 && 2 <= v3787 && 2 <= v3788 f_789(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_801(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_801(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_811(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_811(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_820(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_820(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3791, v3789, 0, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_829(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3789, 0, v3791, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_829(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, v3789, 0, v3791, v3793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_837(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_837(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_843(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_843(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_849(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_849(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3791, v3793, v3789, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_855(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_855(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_861(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_861(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_867(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_867(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v3793, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_873(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_873(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_879(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: v5659 != 0 f_879(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_887(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_887(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_895(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_895(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3789, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_903(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_903(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_911(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_911(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_919(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: v5777 = v3794 + v3795 && 4 <= v5777 f_919(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_927(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_927(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_935(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_935(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_943(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 1 + v5793 = v3795 && 0 <= v5793 f_943(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_951(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: TRUE f_951(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_959(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_959(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3791, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_967(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) :|: 0 = 0 f_967(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v3796, v3797, v3798, v3799, v3800, 3, 2, 5, 4) -> f_975(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) :|: v5809 = v5777 + v3795 && 5 <= v5809 f_975(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) -> f_983(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) :|: TRUE f_983(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) -> f_991(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) :|: TRUE f_991(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4, 5) -> f_741(v3783, v3784, v3785, v3786, v3787, v3788, v3794, 1, v3795, 0, v5659, v5777, v5793, v5809, v3797, v3798, v3799, v3800, 3, 2, 4) :|: TRUE f_741(v3783, v3784, v3785, v3786, v3787, v3788, v3789, 1, v3791, 0, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) -> f_747(v3783, v3784, v3785, v3786, v3787, v3788, v3789, 1, v3791, 0, v3793, v3794, v3795, v3796, v3797, v3798, v3799, v3800, 3, 2, 4) :|: TRUE Combined rules. Obtained 2 rulesP rules: f_747(v3783:0, v3784:0, v3785:0, v3786:0, v3787:0, v3788:0, v3789:0, 1, v3791:0, 0, v3793:0, v3794:0, 1 + v5793:0, v3796:0, v3797:0, v3798:0, v3799:0, v3800:0, 3, 2, 4) -> f_747(v3783:0, v3784:0, v3785:0, v3786:0, v3787:0, v3788:0, v3794:0, 1, 1 + v5793:0, 0, v5659:0, v3794:0 + (1 + v5793:0), v5793:0, v3794:0 + (1 + v5793:0) + (1 + v5793:0), v3797:0, v3798:0, v3799:0, v3800:0, 3, 2, 4) :|: v3791:0 > 1 && v5793:0 > -1 && v3794:0 > 2 && v3796:0 > 4 && v3787:0 > 1 && v3788:0 > 1 && v5659:0 < 0 && v3794:0 + (1 + v5793:0) > 3 && v3794:0 + (1 + v5793:0) + (1 + v5793:0) > 4 f_747(v3783:0, v3784:0, v3785:0, v3786:0, v3787:0, v3788:0, v3789:0, 1, v3791:0, 0, v3793:0, v3794:0, 1 + v5793:0, v3796:0, v3797:0, v3798:0, v3799:0, v3800:0, 3, 2, 4) -> f_747(v3783:0, v3784:0, v3785:0, v3786:0, v3787:0, v3788:0, v3794:0, 1, 1 + v5793:0, 0, v5659:0, v3794:0 + (1 + v5793:0), v5793:0, v3794:0 + (1 + v5793:0) + (1 + v5793:0), v3797:0, v3798:0, v3799:0, v3800:0, 3, 2, 4) :|: v3791:0 > 1 && v5793:0 > -1 && v3794:0 > 2 && v3796:0 > 4 && v3787:0 > 1 && v3788:0 > 1 && v5659:0 > 0 && v3794:0 + (1 + v5793:0) > 3 && v3794:0 + (1 + v5793:0) + (1 + v5793:0) > 4 Filtered unneeded arguments: f_747(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21) -> f_747(x5, x6, x9, x12, x13, x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_747(v3787:0, v3788:0, v3791:0, v3794:0, sum~cons_1~v5793:0, v3796:0) -> f_747(v3787:0, v3788:0, 1 + v5793:0, v3794:0 + (1 + v5793:0), v5793:0, v3794:0 + (1 + v5793:0) + (1 + v5793:0)) :|: v5793:0 > -1 && v3791:0 > 1 && v3794:0 > 2 && v3796:0 > 4 && v3787:0 > 1 && v3788:0 > 1 && v3794:0 + (1 + v5793:0) + (1 + v5793:0) > 4 && v3794:0 + (1 + v5793:0) > 3 && sum~cons_1~v5793:0 = 1 + v5793:0 ---------------------------------------- (30) Obligation: Rules: f_747(v3787:0, v3788:0, v3791:0, v3794:0, sum~cons_1~v5793:0, v3796:0) -> f_747(v3787:0, v3788:0, 1 + v5793:0, v3794:0 + (1 + v5793:0), v5793:0, v3794:0 + (1 + v5793:0) + (1 + v5793:0)) :|: v5793:0 > -1 && v3791:0 > 1 && v3794:0 > 2 && v3796:0 > 4 && v3787:0 > 1 && v3788:0 > 1 && v3794:0 + (1 + v5793:0) + (1 + v5793:0) > 4 && v3794:0 + (1 + v5793:0) > 3 && sum~cons_1~v5793:0 = 1 + v5793:0 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_747_6,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := oldX4 - 1; assume(oldX6 > -1 && oldX2 > 1 && oldX3 > 2 && oldX5 > 4 && oldX0 > 1 && oldX1 > 1 && oldX3 + (1 + oldX6) + (1 + oldX6) > 4 && oldX3 + (1 + oldX6) > 3 && oldX4 = 1 + oldX6); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX6; x3 := oldX3 + (1 + oldX6); x4 := oldX4 - 1; x5 := oldX3 + (1 + oldX6) + (1 + oldX6); TO: 1; ---------------------------------------- (33) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x4 RF for loc. 6: 2*x4 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: SCC ---------------------------------------- (36) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 33 rulesP rules: f_746(v3718, v3719, v3720, v3721, v3722, v3723, v3724, 1, v3726, 0, v3728, v3729, v3730, v3731, v3732, v3733, v3734, 3, 2, 4) -> f_752(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4) :|: 0 = 0 f_752(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4) -> f_759(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 < v3729 && 2 <= v3724 && 4 <= v3728 && 6 <= v3730 && 3 <= v3722 && 2 <= v3723 f_759(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_768(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_768(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_777(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_777(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3726, v3724, 0, v3728, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_787(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_787(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_799(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_799(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_810(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_810(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_819(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_819(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3726, v3724, 0, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_828(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_828(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_836(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_836(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_842(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_842(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_848(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_848(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v3724, 0, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_854(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_854(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_860(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_860(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_866(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_866(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_872(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v5658, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_872(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, v5658, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_878(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: v5658 = 0 f_878(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_886(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_886(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_894(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: TRUE f_894(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3726, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_902(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3726, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_902(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3726, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_910(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) :|: 0 = 0 f_910(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6) -> f_918(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: v5776 = v3729 + v3728 && 5 <= v5776 f_918(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_926(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: TRUE f_926(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_934(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: 0 = 0 f_934(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_942(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: 1 + v5792 = v3729 && 0 <= v5792 f_942(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_950(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: TRUE f_950(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_958(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: 0 = 0 f_958(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3724, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_966(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) :|: 0 = 0 f_966(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v3730, v3731, v3732, v3733, v3734, 3, 2, 4, 6, 5) -> f_974(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) :|: v5808 = v5776 + v3729 && 6 <= v5808 f_974(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) -> f_982(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) :|: TRUE f_982(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) -> f_990(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) :|: TRUE f_990(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4, 5, 6) -> f_739(v3718, v3719, v3720, v3721, v3722, v3723, v3729, 1, v3728, 0, v5776, v5792, v5808, v3731, v3732, v3733, v3734, 3, 2, 4) :|: TRUE f_739(v3718, v3719, v3720, v3721, v3722, v3723, v3724, 1, v3726, 0, v3728, v3729, v3730, v3731, v3732, v3733, v3734, 3, 2, 4) -> f_746(v3718, v3719, v3720, v3721, v3722, v3723, v3724, 1, v3726, 0, v3728, v3729, v3730, v3731, v3732, v3733, v3734, 3, 2, 4) :|: TRUE Combined rules. Obtained 1 rulesP rules: f_746(v3718:0, v3719:0, v3720:0, v3721:0, v3722:0, v3723:0, v3724:0, 1, v3726:0, 0, v3728:0, 1 + v5792:0, v3730:0, v3731:0, v3732:0, v3733:0, v3734:0, 3, 2, 4) -> f_746(v3718:0, v3719:0, v3720:0, v3721:0, v3722:0, v3723:0, 1 + v5792:0, 1, v3728:0, 0, 1 + v5792:0 + v3728:0, v5792:0, 1 + v5792:0 + v3728:0 + (1 + v5792:0), v3731:0, v3732:0, v3733:0, v3734:0, 3, 2, 4) :|: v3724:0 > 1 && v5792:0 > -1 && v3728:0 > 3 && v3730:0 > 5 && v3722:0 > 2 && v3723:0 > 1 && 4 < 1 + v5792:0 + v3728:0 && 5 < 1 + v5792:0 + v3728:0 + (1 + v5792:0) Filtered unneeded arguments: f_746(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20) -> f_746(x5, x6, x7, x11, x12, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_746(v3722:0, v3723:0, v3724:0, v3728:0, sum~cons_1~v5792:0, v3730:0) -> f_746(v3722:0, v3723:0, 1 + v5792:0, 1 + v5792:0 + v3728:0, v5792:0, 1 + v5792:0 + v3728:0 + (1 + v5792:0)) :|: v5792:0 > -1 && v3724:0 > 1 && v3728:0 > 3 && v3730:0 > 5 && v3722:0 > 2 && v3723:0 > 1 && 5 < 1 + v5792:0 + v3728:0 + (1 + v5792:0) && 4 < 1 + v5792:0 + v3728:0 && sum~cons_1~v5792:0 = 1 + v5792:0 ---------------------------------------- (37) Obligation: Rules: f_746(v3722:0, v3723:0, v3724:0, v3728:0, sum~cons_1~v5792:0, v3730:0) -> f_746(v3722:0, v3723:0, 1 + v5792:0, 1 + v5792:0 + v3728:0, v5792:0, 1 + v5792:0 + v3728:0 + (1 + v5792:0)) :|: v5792:0 > -1 && v3724:0 > 1 && v3728:0 > 3 && v3730:0 > 5 && v3722:0 > 2 && v3723:0 > 1 && 5 < 1 + v5792:0 + v3728:0 + (1 + v5792:0) && 4 < 1 + v5792:0 + v3728:0 && sum~cons_1~v5792:0 = 1 + v5792:0 ---------------------------------------- (38) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_746_6,1) ---------------------------------------- (39) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := x5; oldX6 := oldX4 - 1; assume(oldX6 > -1 && oldX2 > 1 && oldX3 > 3 && oldX5 > 5 && oldX0 > 2 && oldX1 > 1 && 5 < 1 + oldX6 + oldX3 + (1 + oldX6) && 4 < 1 + oldX6 + oldX3 && oldX4 = 1 + oldX6); x0 := oldX0; x1 := oldX1; x2 := 1 + oldX6; x3 := 1 + oldX6 + oldX3; x4 := oldX4 - 1; x5 := 1 + oldX6 + oldX3 + (1 + oldX6); TO: 1; ---------------------------------------- (40) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x4 RF for loc. 6: 2*x4 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (41) YES