/export/starexec/sandbox/solver/bin/starexec_run_c /export/starexec/sandbox/benchmark/theBenchmark.c /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 173 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 19.0 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 135 ms] (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) PolynomialOrderProcessor [EQUIVALENT, 42 ms] (13) IntTRS (14) TerminationGraphProcessor [EQUIVALENT, 4 ms] (15) IntTRS (16) IntTRSCompressionProof [EQUIVALENT, 0 ms] (17) IntTRS (18) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (19) IntTRS (20) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (21) YES (22) LLVM Symbolic Execution SCC (23) SCC2IRS [SOUND, 146 ms] (24) IntTRS (25) IRS2T2 [EQUIVALENT, 0 ms] (26) T2IntSys (27) T2 [EQUIVALENT, 1403 ms] (28) YES (29) LLVM Symbolic Execution SCC (30) SCC2IRS [SOUND, 77 ms] (31) IntTRS (32) IRS2T2 [EQUIVALENT, 0 ms] (33) T2IntSys (34) T2 [EQUIVALENT, 1282 ms] (35) YES (36) LLVM Symbolic Execution SCC (37) SCC2IRS [SOUND, 64 ms] (38) IntTRS (39) IRS2T2 [EQUIVALENT, 0 ms] (40) T2IntSys (41) T2 [EQUIVALENT, 976 ms] (42) YES (43) LLVM Symbolic Execution SCC (44) SCC2IRS [SOUND, 44 ms] (45) IntTRS (46) IRS2T2 [EQUIVALENT, 2 ms] (47) T2IntSys (48) T2 [EQUIVALENT, 922 ms] (49) YES (50) LLVM Symbolic Execution SCC (51) SCC2IRS [SOUND, 42 ms] (52) IntTRS (53) IRS2T2 [EQUIVALENT, 0 ms] (54) T2IntSys (55) T2 [EQUIVALENT, 1172 ms] (56) YES (57) LLVM Symbolic Execution SCC (58) SCC2IRS [SOUND, 44 ms] (59) IntTRS (60) IntTRSCompressionProof [EQUIVALENT, 0 ms] (61) IntTRS (62) RankingReductionPairProof [EQUIVALENT, 11 ms] (63) YES (64) LLVM Symbolic Execution SCC (65) SCC2IRS [SOUND, 133 ms] (66) IntTRS (67) IRS2T2 [EQUIVALENT, 0 ms] (68) T2IntSys (69) T2 [EQUIVALENT, 1322 ms] (70) YES (71) LLVM Symbolic Execution SCC (72) SCC2IRS [SOUND, 132 ms] (73) IntTRS (74) IRS2T2 [EQUIVALENT, 0 ms] (75) T2IntSys (76) T2 [EQUIVALENT, 1032 ms] (77) YES (78) LLVM Symbolic Execution SCC (79) SCC2IRS [SOUND, 68 ms] (80) IntTRS (81) IRS2T2 [EQUIVALENT, 0 ms] (82) T2IntSys (83) T2 [EQUIVALENT, 943 ms] (84) YES (85) LLVM Symbolic Execution SCC (86) SCC2IRS [SOUND, 55 ms] (87) IntTRS (88) IRS2T2 [EQUIVALENT, 0 ms] (89) T2IntSys (90) T2 [EQUIVALENT, 910 ms] (91) YES (92) LLVM Symbolic Execution SCC (93) SCC2IRS [SOUND, 42 ms] (94) IntTRS (95) IRS2T2 [EQUIVALENT, 0 ms] (96) T2IntSys (97) T2 [EQUIVALENT, 914 ms] (98) YES (99) LLVM Symbolic Execution SCC (100) SCC2IRS [SOUND, 43 ms] (101) IntTRS (102) IRS2T2 [EQUIVALENT, 0 ms] (103) T2IntSys (104) T2 [EQUIVALENT, 923 ms] (105) YES (106) LLVM Symbolic Execution SCC (107) SCC2IRS [SOUND, 60 ms] (108) IntTRS (109) IntTRSCompressionProof [EQUIVALENT, 0 ms] (110) IntTRS (111) RankingReductionPairProof [EQUIVALENT, 10 ms] (112) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "f" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (d i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %x = alloca i32, align 4 %y = alloca i32, align 4 %k = alloca i32, align 4 %z = alloca i32, align 4 store %d, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %x %3 = call i32 @__VERIFIER_nondet_int() store %3, %y %4 = call i32 @__VERIFIER_nondet_int() store %4, %k store 1, %z %5 = load %k %6 = icmp sgt %5 1073741823 br %6, %7, %8 7: br %43 8: br %9 9: br %10 10: %11 = load %z %12 = load %k %13 = icmp slt %11 %12 br %13, %14, %17 14: %15 = load %z %16 = mul 2 %15 store %16, %z br %10 17: br %18 18: br %19 19: %20 = load %x %21 = icmp sgt %20 0 br %21, %22, %25 22: %23 = load %y %24 = icmp sgt %23 0 br %25 25: %26 = phi [0, %19], [%24, %22] br %26, %27, %43 27: %28 = call i32 @__VERIFIER_nondet_int() %29 = icmp ne %28 0 br %29, %30, %38 30: br %31 31: %32 = load %x %33 = load %1 %34 = sub %32 %33 store %34, %x %35 = call i32 @__VERIFIER_nondet_int() store %35, %y %36 = load %z %37 = sub %36 1 store %37, %z br %42 38: %39 = load %y %40 = load %1 %41 = sub %39 %40 store %41, %y br %42 42: br %19 43: ret void *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() %3 = icmp ne %2 0 br %3, %4, %5 4: Unnamed Call-Instruction = call BasicVoidType @f(i32 1) br %6 5: Unnamed Call-Instruction = call BasicVoidType @f(i32 2) br %6 6: %7 = load %1 ret %7 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 14 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 59 rulesP rules: f_2903(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2915(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2915(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2927(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2927(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2936(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2936(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2945(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2945(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2954(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: v90757 != 0 f_2945(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2955(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: v90757 = 0 f_2954(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2967(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2967(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2976(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2976(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_3077(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v90757, v86013, v86014, v86015, v86016, v86012, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v97344, 3, 2, 4) :|: TRUE f_3077(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97337, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3079(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97337, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3079(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97337, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3081(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: 0 = 0 f_3081(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3083(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: 0 = 0 f_3083(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3085(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: 1 + v97538 = v97334 && 0 <= v97538 f_3085(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3087(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3087(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97338, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3089(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3089(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3090(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3090(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97339, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3091(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: 0 = 0 f_3091(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3092(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: 1 + v97786 = v97340 f_3092(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3093(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3093(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3094(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) :|: TRUE f_3094(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97538, v97784, v97340, v97786, v97341, v97342, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v97344, 3, 2, 4) -> f_3046(1, v97323, v97324, v97325, v97326, v97327, v97328, v97329, v97330, 0, v97332, v97333, v97334, v97335, v97336, v97341, v97342, v97538, v97784, v97340, v97786, v97343, v97345, v97346, v97347, v97348, v97349, v97350, v93268, 3, 2, 4) :|: TRUE f_3046(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93258, v93259, v93260, v93261, v93262, v93263, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3049(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93258, v93259, v93260, v93261, v93262, v93263, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3049(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93258, v93259, v93260, v93261, v93262, v93263, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3050(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3050(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3051(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 < v93263 && 2 <= v93258 && 2 <= v93252 f_3051(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3053(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3053(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3055(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3055(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93259, v93260, v93261, v93262, v93258, v93264, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3057(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3057(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3059(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 < v93264 f_3059(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3062(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3062(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3065(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3065(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3067(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3067(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93260, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3069(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3069(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3071(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: v97068 != 0 f_3069(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3072(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: v97068 = 0 f_3071(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3074(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3074(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3076(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3076(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3077(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97068, v93258, v93264, v93265, v93266, v93261, v93262, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v97344, 3, 2, 4) :|: TRUE f_3072(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3075(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3075(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3078(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3078(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93261, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3080(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3080(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3082(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 0 = 0 f_3082(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93262, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3084(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: 1 + v97537 = v93264 && 0 <= v97537 f_3084(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3086(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3086(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_3088(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) :|: TRUE f_3088(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v97537, v93258, v93265, v93266, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v93268, 3, 2, 4) -> f_2855(1, v93247, v93248, v93249, v93250, v93251, v93252, v93253, v93254, 0, v93256, v93257, v93263, v93264, v93258, v93264, v93265, v93266, v97537, v93267, v93269, v93270, v93271, v93272, v93273, v93274, v86019, 3, 2, 4) :|: TRUE f_2855(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2864(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2864(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2870(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2870(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2879(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2879(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2887(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2887(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86012, v86013, v86014, v86015, v86016, v86017, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2895(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2895(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2903(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 < v86017 && 2 <= v86012 && 2 <= v86014 f_2955(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2968(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2968(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2977(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_2977(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86012, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2986(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2986(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2994(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 0 = 0 f_2994(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_3002(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: 1 + v91978 = v86017 && 0 <= v91978 f_3002(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_3010(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_3010(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_3018(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE f_3018(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) -> f_2855(1, v86000, v86001, v86002, v86003, v86004, v86005, v86006, v86007, 0, v86009, v86010, v86011, v86017, v86013, v86014, v86015, v86016, v91978, v86018, v86020, v86021, v86022, v86023, v86024, v86025, v86019, 3, 2, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_2903(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, v86011:0, 1 + v91978:0, v86013:0, v86014:0, v86015:0, v86016:0, v86012:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v86019:0, 3, 2, 4) -> f_2903(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, v86011:0, v91978:0, v86013:0, v86014:0, v86015:0, v86016:0, 1 + v91978:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v86019:0, 3, 2, 4) :|: v91978:0 > 0 && v86014:0 > 1 f_2903(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, 1 + v97538:0, v86017:0, v86013:0, v86014:0, v86015:0, 1 + v97786:0, v86012:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v86019:0, 3, 2, 4) -> f_3069(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, v97538:0, v97784:0, v97068:0, v86012:0, v86017:0, 1 + v97538:0, 1 + v97786:0, v97786:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v93268:0, 3, 2, 4) :|: v97538:0 > 0 && v90757:0 < 0 && v97784:0 > 0 && v86005:0 > 1 f_2903(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, 1 + v97538:0, v86017:0, v86013:0, v86014:0, v86015:0, 1 + v97786:0, v86012:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v86019:0, 3, 2, 4) -> f_3069(1, v86000:0, v86001:0, v86002:0, v86003:0, v86004:0, v86005:0, v86006:0, v86007:0, 0, v86009:0, v86010:0, v97538:0, v97784:0, v97068:0, v86012:0, v86017:0, 1 + v97538:0, 1 + v97786:0, v97786:0, v86018:0, v86020:0, v86021:0, v86022:0, v86023:0, v86024:0, v86025:0, v93268:0, 3, 2, 4) :|: v97538:0 > 0 && v90757:0 > 0 && v97784:0 > 0 && v86005:0 > 1 f_3069(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, v93263:0, 1 + v97537:0, 0, v93261:0, v93262:0, v93258:0, v93265:0, v93266:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v93268:0, 3, 2, 4) -> f_2903(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, v93263:0, v97537:0, v93258:0, 1 + v97537:0, v93265:0, v93266:0, 1 + v97537:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v86019:0, 3, 2, 4) :|: v97537:0 > 0 f_3069(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, 1 + v97538:0, v93264:0, v97068:0, v93261:0, v93262:0, v93258:0, v93265:0, 1 + v97786:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v93268:0, 3, 2, 4) -> f_3069(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, v97538:0, v97784:0, v97068:1, v93261:0, v93262:0, 1 + v97538:0, 1 + v97786:0, v97786:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v93268:1, 3, 2, 4) :|: v97538:0 > 0 && v93252:0 > 1 && v97068:0 < 0 && v97784:0 > 0 f_3069(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, 1 + v97538:0, v93264:0, v97068:0, v93261:0, v93262:0, v93258:0, v93265:0, 1 + v97786:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v93268:0, 3, 2, 4) -> f_3069(1, v93247:0, v93248:0, v93249:0, v93250:0, v93251:0, v93252:0, v93253:0, v93254:0, 0, v93256:0, v93257:0, v97538:0, v97784:0, v97068:1, v93261:0, v93262:0, 1 + v97538:0, 1 + v97786:0, v97786:0, v93267:0, v93269:0, v93270:0, v93271:0, v93272:0, v93273:0, v93274:0, v93268:1, 3, 2, 4) :|: v97538:0 > 0 && v93252:0 > 1 && v97068:0 > 0 && v97784:0 > 0 Filtered unneeded arguments: f_2903(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) -> f_2903(x7, x13, x14, x16, x18) f_3069(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_3069(x7, x13, x14, x15, x20) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_2903(v86005:0, v86011:0, sum~cons_1~v91978:0, v86014:0, v86016:0) -> f_2903(v86005:0, v86011:0, v91978:0, v86014:0, v86016:0) :|: v91978:0 > 0 && v86014:0 > 1 && sum~cons_1~v91978:0 = 1 + v91978:0 f_2903(v86005:0, sum~cons_1~v97538:0, v86017:0, v86014:0, sum~cons_1~v97786:0) -> f_3069(v86005:0, v97538:0, v97784:0, v97068:0, v97786:0) :|: v97784:0 > 0 && v86005:0 > 1 && v97538:0 > 0 && sum~cons_1~v97538:0 = 1 + v97538:0 && sum~cons_1~v97786:0 = 1 + v97786:0 f_3069(v93252:0, v93263:0, sum~cons_1~v97537:0, cons_0, v93266:0) -> f_2903(v93252:0, v93263:0, v97537:0, 1 + v97537:0, v93266:0) :|: v97537:0 > 0 && sum~cons_1~v97537:0 = 1 + v97537:0 && cons_0 = 0 f_3069(v93252:0, sum~cons_1~v97538:0, v93264:0, v97068:0, sum~cons_1~v97786:0) -> f_3069(v93252:0, v97538:0, v97784:0, v97068:1, v97786:0) :|: v93252:0 > 1 && v97538:0 > 0 && v97784:0 > 0 && v97068:0 < 0 && sum~cons_1~v97538:0 = 1 + v97538:0 && sum~cons_1~v97786:0 = 1 + v97786:0 f_3069(v93252:0, sum~cons_1~v97538:0, v93264:0, v97068:0, sum~cons_1~v97786:0) -> f_3069(v93252:0, v97538:0, v97784:0, v97068:1, v97786:0) :|: v93252:0 > 1 && v97538:0 > 0 && v97784:0 > 0 && v97068:0 > 0 && sum~cons_1~v97538:0 = 1 + v97538:0 && sum~cons_1~v97786:0 = 1 + v97786:0 ---------------------------------------- (9) Obligation: Rules: f_2903(v86005:0, v86011:0, sum~cons_1~v91978:0, v86014:0, v86016:0) -> f_2903(v86005:0, v86011:0, v91978:0, v86014:0, v86016:0) :|: v91978:0 > 0 && v86014:0 > 1 && sum~cons_1~v91978:0 = 1 + v91978:0 f_2903(x, x1, x2, x3, x4) -> f_3069(x, x5, x6, x7, x8) :|: x6 > 0 && x > 1 && x5 > 0 && x1 = 1 + x5 && x4 = 1 + x8 f_3069(v93252:0, v93263:0, sum~cons_1~v97537:0, cons_0, v93266:0) -> f_2903(v93252:0, v93263:0, v97537:0, 1 + v97537:0, v93266:0) :|: v97537:0 > 0 && sum~cons_1~v97537:0 = 1 + v97537:0 && cons_0 = 0 f_3069(x9, x10, x11, x12, x13) -> f_3069(x9, x14, x15, x16, x17) :|: x9 > 1 && x14 > 0 && x15 > 0 && x12 < 0 && x10 = 1 + x14 && x13 = 1 + x17 f_3069(x18, x19, x20, x21, x22) -> f_3069(x18, x23, x24, x25, x26) :|: x18 > 1 && x23 > 0 && x24 > 0 && x21 > 0 && x19 = 1 + x23 && x22 = 1 + x26 ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: f_3069(x18:0, sum~cons_1~x23:0, x20:0, x21:0, sum~cons_1~x26:0) -> f_3069(x18:0, x23:0, x24:0, x25:0, x26:0) :|: x24:0 > 0 && x21:0 > 0 && x23:0 > 0 && x18:0 > 1 && sum~cons_1~x23:0 = 1 + x23:0 && sum~cons_1~x26:0 = 1 + x26:0 f_3069(x9:0, sum~cons_1~x14:0, x11:0, x12:0, sum~cons_1~x17:0) -> f_3069(x9:0, x14:0, x15:0, x16:0, x17:0) :|: x15:0 > 0 && x12:0 < 0 && x14:0 > 0 && x9:0 > 1 && sum~cons_1~x14:0 = 1 + x14:0 && sum~cons_1~x17:0 = 1 + x17:0 f_3069(v93252:0:0, v93263:0:0, sum~cons_1~v97537:0:0, cons_0, v93266:0:0) -> f_2903(v93252:0:0, v93263:0:0, v97537:0:0, 1 + v97537:0:0, v93266:0:0) :|: v97537:0:0 > 0 && sum~cons_1~v97537:0:0 = 1 + v97537:0:0 && cons_0 = 0 f_2903(v86005:0:0, v86011:0:0, sum~cons_1~v91978:0:0, v86014:0:0, v86016:0:0) -> f_2903(v86005:0:0, v86011:0:0, v91978:0:0, v86014:0:0, v86016:0:0) :|: v91978:0:0 > 0 && v86014:0:0 > 1 && sum~cons_1~v91978:0:0 = 1 + v91978:0:0 f_2903(x:0, sum~cons_1~x5:0, x2:0, x3:0, sum~cons_1~x8:0) -> f_3069(x:0, x5:0, x6:0, x7:0, x8:0) :|: x6:0 > 0 && x:0 > 1 && x5:0 > 0 && sum~cons_1~x5:0 = 1 + x5:0 && sum~cons_1~x8:0 = 1 + x8:0 ---------------------------------------- (12) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f_3069(x, x1, x2, x3, x4)] = -1 - x + x*x1 + x1 + x1^2 [f_2903(x5, x6, x7, x8, x9)] = -1 - x5 + x5*x6 + x6 + x6^2 The following rules are decreasing: f_3069(x18:0, sum~cons_1~x23:0, x20:0, x21:0, sum~cons_1~x26:0) -> f_3069(x18:0, x23:0, x24:0, x25:0, x26:0) :|: x24:0 > 0 && x21:0 > 0 && x23:0 > 0 && x18:0 > 1 && sum~cons_1~x23:0 = 1 + x23:0 && sum~cons_1~x26:0 = 1 + x26:0 f_3069(x9:0, sum~cons_1~x14:0, x11:0, x12:0, sum~cons_1~x17:0) -> f_3069(x9:0, x14:0, x15:0, x16:0, x17:0) :|: x15:0 > 0 && x12:0 < 0 && x14:0 > 0 && x9:0 > 1 && sum~cons_1~x14:0 = 1 + x14:0 && sum~cons_1~x17:0 = 1 + x17:0 f_2903(x:0, sum~cons_1~x5:0, x2:0, x3:0, sum~cons_1~x8:0) -> f_3069(x:0, x5:0, x6:0, x7:0, x8:0) :|: x6:0 > 0 && x:0 > 1 && x5:0 > 0 && sum~cons_1~x5:0 = 1 + x5:0 && sum~cons_1~x8:0 = 1 + x8:0 The following rules are bounded: f_3069(x18:0, sum~cons_1~x23:0, x20:0, x21:0, sum~cons_1~x26:0) -> f_3069(x18:0, x23:0, x24:0, x25:0, x26:0) :|: x24:0 > 0 && x21:0 > 0 && x23:0 > 0 && x18:0 > 1 && sum~cons_1~x23:0 = 1 + x23:0 && sum~cons_1~x26:0 = 1 + x26:0 f_3069(x9:0, sum~cons_1~x14:0, x11:0, x12:0, sum~cons_1~x17:0) -> f_3069(x9:0, x14:0, x15:0, x16:0, x17:0) :|: x15:0 > 0 && x12:0 < 0 && x14:0 > 0 && x9:0 > 1 && sum~cons_1~x14:0 = 1 + x14:0 && sum~cons_1~x17:0 = 1 + x17:0 f_2903(x:0, sum~cons_1~x5:0, x2:0, x3:0, sum~cons_1~x8:0) -> f_3069(x:0, x5:0, x6:0, x7:0, x8:0) :|: x6:0 > 0 && x:0 > 1 && x5:0 > 0 && sum~cons_1~x5:0 = 1 + x5:0 && sum~cons_1~x8:0 = 1 + x8:0 ---------------------------------------- (13) Obligation: Rules: f_3069(v93252:0:0, v93263:0:0, sum~cons_1~v97537:0:0, cons_0, v93266:0:0) -> f_2903(v93252:0:0, v93263:0:0, v97537:0:0, 1 + v97537:0:0, v93266:0:0) :|: v97537:0:0 > 0 && sum~cons_1~v97537:0:0 = 1 + v97537:0:0 && cons_0 = 0 f_2903(v86005:0:0, v86011:0:0, sum~cons_1~v91978:0:0, v86014:0:0, v86016:0:0) -> f_2903(v86005:0:0, v86011:0:0, v91978:0:0, v86014:0:0, v86016:0:0) :|: v91978:0:0 > 0 && v86014:0:0 > 1 && sum~cons_1~v91978:0:0 = 1 + v91978:0:0 ---------------------------------------- (14) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (15) Obligation: Rules: f_2903(v86005:0:0, v86011:0:0, sum~cons_1~v91978:0:0, v86014:0:0, v86016:0:0) -> f_2903(v86005:0:0, v86011:0:0, v91978:0:0, v86014:0:0, v86016:0:0) :|: v91978:0:0 > 0 && v86014:0:0 > 1 && sum~cons_1~v91978:0:0 = 1 + v91978:0:0 ---------------------------------------- (16) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (17) Obligation: Rules: f_2903(v86005:0:0:0, v86011:0:0:0, sum~cons_1~v91978:0:0:0, v86014:0:0:0, v86016:0:0:0) -> f_2903(v86005:0:0:0, v86011:0:0:0, v91978:0:0:0, v86014:0:0:0, v86016:0:0:0) :|: v91978:0:0:0 > 0 && v86014:0:0:0 > 1 && sum~cons_1~v91978:0:0:0 = 1 + v91978:0:0:0 ---------------------------------------- (18) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f_2903(x1, x2, x3, x4, x5) -> f_2903(x3, x4) ---------------------------------------- (19) Obligation: Rules: f_2903(sum~cons_1~v91978:0:0:0, v86014:0:0:0) -> f_2903(v91978:0:0:0, v86014:0:0:0) :|: v91978:0:0:0 > 0 && v86014:0:0:0 > 1 && sum~cons_1~v91978:0:0:0 = 1 + v91978:0:0:0 ---------------------------------------- (20) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f_2903(x, x1)] = x The following rules are decreasing: f_2903(sum~cons_1~v91978:0:0:0, v86014:0:0:0) -> f_2903(v91978:0:0:0, v86014:0:0:0) :|: v91978:0:0:0 > 0 && v86014:0:0:0 > 1 && sum~cons_1~v91978:0:0:0 = 1 + v91978:0:0:0 The following rules are bounded: f_2903(sum~cons_1~v91978:0:0:0, v86014:0:0:0) -> f_2903(v91978:0:0:0, v86014:0:0:0) :|: v91978:0:0:0 > 0 && v86014:0:0:0 > 1 && sum~cons_1~v91978:0:0:0 = 1 + v91978:0:0:0 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: SCC ---------------------------------------- (23) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 59 rulesP rules: f_2475(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2492(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2492(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2508(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2508(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2522(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2522(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2537(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2537(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2553(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: v72478 != 0 f_2537(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2554(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: v72478 = 0 f_2553(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2572(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2572(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2587(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2587(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2874(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v72478, v63186, v63187, v63188, v63189, v63185, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v86840, 3, 2, 4) :|: TRUE f_2874(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86833, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2882(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86833, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2882(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86833, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2890(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: 0 = 0 f_2890(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2898(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: 0 = 0 f_2898(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2908(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: 1 + v87920 = v86830 && 0 <= v87920 f_2908(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2920(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2920(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v86834, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2931(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2931(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2940(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2940(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86835, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2949(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: 0 = 0 f_2949(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2960(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: 1 + v90773 = v86836 && 1 + v90773 <= 0 f_2960(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2971(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2971(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2980(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) :|: TRUE f_2980(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v87920, v88952, v86836, v90773, v86837, v86838, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v86840, 3, 2, 4) -> f_2742(1, v86821, v86822, v86823, v86824, v86825, v86826, v86827, v86828, 0, v86830, v86831, v86832, v86837, v86838, v87920, v88952, v86836, v90773, v86839, v86841, v86842, v86843, v86844, v86845, v86846, v79145, 3, 2, 4) :|: TRUE f_2742(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79135, v79136, v79137, v79138, v79139, v79140, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2753(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79135, v79136, v79137, v79138, v79139, v79140, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2753(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79135, v79136, v79137, v79138, v79139, v79140, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2762(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2762(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2771(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 < v79140 && 2 <= v79135 && 2 <= v79131 f_2771(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2781(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2781(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2792(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2792(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79136, v79137, v79138, v79139, v79135, v79141, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2802(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2802(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2811(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 < v79141 f_2811(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2821(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2821(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2830(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2830(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2838(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2838(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79137, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2847(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2847(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2857(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: v85551 != 0 f_2847(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2858(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: v85551 = 0 f_2857(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2866(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2866(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2873(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2873(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2874(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v85551, v79135, v79141, v79142, v79143, v79138, v79139, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v86840, 3, 2, 4) :|: TRUE f_2858(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2867(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2867(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2875(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2875(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79138, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2883(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2883(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2891(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 0 = 0 f_2891(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79139, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2899(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: 1 + v87792 = v79141 && 0 <= v87792 f_2899(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2909(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2909(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2921(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) :|: TRUE f_2921(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v87792, v79135, v79142, v79143, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v79145, 3, 2, 4) -> f_2395(1, v79126, v79127, v79128, v79129, v79130, v79131, v79132, v79133, 0, v79140, v79141, v79135, v79141, v79142, v79143, v87792, v79144, v79146, v79147, v79148, v79149, v79150, v79151, v63192, 3, 2, 4) :|: TRUE f_2395(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2409(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2409(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2421(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2421(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2435(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2435(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2449(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2449(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63185, v63186, v63187, v63188, v63189, v63190, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2462(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2462(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2475(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 < v63190 && 2 <= v63185 && 2 <= v63187 f_2554(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2573(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2573(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2588(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2588(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63185, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2604(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2604(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2620(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 0 = 0 f_2620(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2636(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: 1 + v75812 = v63190 && 0 <= v75812 f_2636(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2653(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2653(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2672(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE f_2672(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) -> f_2395(1, v63175, v63176, v63177, v63178, v63179, v63180, v63181, v63182, 0, v63184, v63190, v63186, v63187, v63188, v63189, v75812, v63191, v63193, v63194, v63195, v63196, v63197, v63198, v63192, 3, 2, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_2475(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, v63184:0, 1 + v75812:0, v63186:0, v63187:0, v63188:0, v63189:0, v63185:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v63192:0, 3, 2, 4) -> f_2475(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, v63184:0, v75812:0, v63186:0, v63187:0, v63188:0, v63189:0, 1 + v75812:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v63192:0, 3, 2, 4) :|: v75812:0 > 0 && v63187:0 > 1 f_2475(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, 1 + v87920:0, v63190:0, v63186:0, v63187:0, v63188:0, 1 + v90773:0, v63185:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v63192:0, 3, 2, 4) -> f_2847(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, v87920:0, v88952:0, v85551:0, v63185:0, v63190:0, 1 + v87920:0, 1 + v90773:0, v90773:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v79145:0, 3, 2, 4) :|: v87920:0 > 0 && v72478:0 < 0 && v90773:0 < 0 && v88952:0 > 0 && v63180:0 > 1 f_2475(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, 1 + v87920:0, v63190:0, v63186:0, v63187:0, v63188:0, 1 + v90773:0, v63185:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v63192:0, 3, 2, 4) -> f_2847(1, v63175:0, v63176:0, v63177:0, v63178:0, v63179:0, v63180:0, v63181:0, v63182:0, 0, v87920:0, v88952:0, v85551:0, v63185:0, v63190:0, 1 + v87920:0, 1 + v90773:0, v90773:0, v63191:0, v63193:0, v63194:0, v63195:0, v63196:0, v63197:0, v63198:0, v79145:0, 3, 2, 4) :|: v87920:0 > 0 && v72478:0 > 0 && v90773:0 < 0 && v88952:0 > 0 && v63180:0 > 1 f_2847(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, 1 + v87920:0, v79141:0, v85551:0, v79138:0, v79139:0, v79135:0, v79142:0, 1 + v90773:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v79145:0, 3, 2, 4) -> f_2847(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, v87920:0, v88952:0, v85551:1, v79138:0, v79139:0, 1 + v87920:0, 1 + v90773:0, v90773:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v79145:1, 3, 2, 4) :|: v87920:0 > 0 && v90773:0 < 0 && v79131:0 > 1 && v85551:0 < 0 && v88952:0 > 0 f_2847(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, 1 + v87920:0, v79141:0, v85551:0, v79138:0, v79139:0, v79135:0, v79142:0, 1 + v90773:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v79145:0, 3, 2, 4) -> f_2847(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, v87920:0, v88952:0, v85551:1, v79138:0, v79139:0, 1 + v87920:0, 1 + v90773:0, v90773:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v79145:1, 3, 2, 4) :|: v87920:0 > 0 && v90773:0 < 0 && v79131:0 > 1 && v85551:0 > 0 && v88952:0 > 0 f_2847(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, v79140:0, 1 + v87792:0, 0, v79138:0, v79139:0, v79135:0, v79142:0, v79143:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v79145:0, 3, 2, 4) -> f_2475(1, v79126:0, v79127:0, v79128:0, v79129:0, v79130:0, v79131:0, v79132:0, v79133:0, 0, v79140:0, v87792:0, v79135:0, 1 + v87792:0, v79142:0, v79143:0, 1 + v87792:0, v79144:0, v79146:0, v79147:0, v79148:0, v79149:0, v79150:0, v79151:0, v63192:0, 3, 2, 4) :|: v87792:0 > 0 Filtered unneeded arguments: f_2475(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_2475(x7, x11, x12, x14, x16) f_2847(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29) -> f_2847(x7, x11, x12, x13, x18) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_2475(v63180:0, v63184:0, sum~cons_1~v75812:0, v63187:0, v63189:0) -> f_2475(v63180:0, v63184:0, v75812:0, v63187:0, v63189:0) :|: v75812:0 > 0 && v63187:0 > 1 && sum~cons_1~v75812:0 = 1 + v75812:0 f_2475(v63180:0, sum~cons_1~v87920:0, v63190:0, v63187:0, sum~cons_1~v90773:0) -> f_2847(v63180:0, v87920:0, v88952:0, v85551:0, v90773:0) :|: v90773:0 < 0 && v87920:0 > 0 && v63180:0 > 1 && v88952:0 > 0 && sum~cons_1~v87920:0 = 1 + v87920:0 && sum~cons_1~v90773:0 = 1 + v90773:0 f_2847(v79131:0, sum~cons_1~v87920:0, v79141:0, v85551:0, sum~cons_1~v90773:0) -> f_2847(v79131:0, v87920:0, v88952:0, v85551:1, v90773:0) :|: v90773:0 < 0 && v87920:0 > 0 && v79131:0 > 1 && v88952:0 > 0 && v85551:0 < 0 && sum~cons_1~v87920:0 = 1 + v87920:0 && sum~cons_1~v90773:0 = 1 + v90773:0 f_2847(v79131:0, sum~cons_1~v87920:0, v79141:0, v85551:0, sum~cons_1~v90773:0) -> f_2847(v79131:0, v87920:0, v88952:0, v85551:1, v90773:0) :|: v90773:0 < 0 && v87920:0 > 0 && v79131:0 > 1 && v88952:0 > 0 && v85551:0 > 0 && sum~cons_1~v87920:0 = 1 + v87920:0 && sum~cons_1~v90773:0 = 1 + v90773:0 f_2847(v79131:0, v79140:0, sum~cons_1~v87792:0, cons_0, v79143:0) -> f_2475(v79131:0, v79140:0, v87792:0, 1 + v87792:0, v79143:0) :|: v87792:0 > 0 && sum~cons_1~v87792:0 = 1 + v87792:0 && cons_0 = 0 ---------------------------------------- (24) Obligation: Rules: f_2475(v63180:0, v63184:0, sum~cons_1~v75812:0, v63187:0, v63189:0) -> f_2475(v63180:0, v63184:0, v75812:0, v63187:0, v63189:0) :|: v75812:0 > 0 && v63187:0 > 1 && sum~cons_1~v75812:0 = 1 + v75812:0 f_2475(x, x1, x2, x3, x4) -> f_2847(x, x5, x6, x7, x8) :|: x8 < 0 && x5 > 0 && x > 1 && x6 > 0 && x1 = 1 + x5 && x4 = 1 + x8 f_2847(v79131:0, sum~cons_1~v87920:0, v79141:0, v85551:0, sum~cons_1~v90773:0) -> f_2847(v79131:0, v87920:0, v88952:0, v85551:1, v90773:0) :|: v90773:0 < 0 && v87920:0 > 0 && v79131:0 > 1 && v88952:0 > 0 && v85551:0 < 0 && sum~cons_1~v87920:0 = 1 + v87920:0 && sum~cons_1~v90773:0 = 1 + v90773:0 f_2847(x9, x10, x11, x12, x13) -> f_2847(x9, x14, x15, x16, x17) :|: x17 < 0 && x14 > 0 && x9 > 1 && x15 > 0 && x12 > 0 && x10 = 1 + x14 && x13 = 1 + x17 f_2847(x18, x19, x20, x21, x22) -> f_2475(x18, x19, x23, 1 + x23, x22) :|: x23 > 0 && x20 = 1 + x23 && x21 = 0 ---------------------------------------- (25) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2475_5,1) (f_2847_5,2) ---------------------------------------- (26) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX5 > 0 && oldX3 > 1 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := oldX3; x4 := oldX4; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX8 := oldX4 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX8 < 0 && oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX1 = 1 + oldX5 && oldX4 = 1 + oldX8); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX6; x3 := oldX7; x4 := oldX4 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX8 := oldX4 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX8 < 0 && oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX3 < 0 && oldX1 = 1 + oldX5 && oldX4 = 1 + oldX8); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX6; x3 := oldX7; x4 := oldX4 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 1; oldX8 := oldX4 - 1; oldX6 := nondet(); oldX7 := nondet(); assume(oldX8 < 0 && oldX5 > 0 && oldX0 > 1 && oldX6 > 0 && oldX3 > 0 && oldX1 = 1 + oldX5 && oldX4 = 1 + oldX8); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX6; x3 := oldX7; x4 := oldX4 - 1; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX5 > 0 && oldX2 = 1 + oldX5 && oldX3 = 0); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX5; x4 := oldX4; TO: 1; ---------------------------------------- (27) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: - Rank function 1: RF for loc. 6: -1+3*x1 RF for loc. 7: 1+3*x1 RF for loc. 8: -1+3*x1 RF for loc. 12: 3*x1 Bound for (chained) transitions 18: 6 - Rank function 2: RF for loc. 6: -1+x1 RF for loc. 7: x1 RF for loc. 8: -1+x1 RF for loc. 12: x1 Bound for (chained) transitions 17: 2 - Rank function 3: RF for loc. 6: -1+2*x1 RF for loc. 7: 2*x1 RF for loc. 8: -1+2*x1 RF for loc. 12: 2*x1 Bound for (chained) transitions 6: 3 - Rank function 4: RF for loc. 6: 1+2*x2-2*x3 RF for loc. 7: 1 RF for loc. 8: 2*x2-2*x3 RF for loc. 12: 0 Bound for (chained) transitions 14: 1 Bound for (chained) transitions 19: 0 - Rank function 5: RF for loc. 6: 2*x2 RF for loc. 8: -1+2*x2 Bound for (chained) transitions 5: 3 - Rank function 6: RF for loc. 6: 1 RF for loc. 8: 0 Bound for (chained) transitions 2: 1 ---------------------------------------- (28) YES ---------------------------------------- (29) Obligation: SCC ---------------------------------------- (30) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 26 rulesP rules: f_2131(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2147(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2147(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2165(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2165(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2179(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2179(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2191(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 < v50494 f_2191(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2209(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2209(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2227(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2227(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2243(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2243(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v50492, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2259(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2259(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2277(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: v59529 != 0 f_2277(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2299(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2299(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2313(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2313(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2329(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2329(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50490, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2343(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2343(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2359(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2359(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2373(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 1 + v62101 = v50493 && 0 <= v62101 f_2373(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2389(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2389(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2405(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2405(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2417(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2417(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2431(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2431(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2445(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 1 + v64556 = v50496 f_2445(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2459(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2459(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2471(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2471(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2078(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50494, v59529, v62101, v63914, v50496, v64556, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2078(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50490, v50491, v50492, v50493, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2097(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50490, v50491, v50492, v50493, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: TRUE f_2097(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50490, v50491, v50492, v50493, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2117(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 = 0 f_2117(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) -> f_2131(1, v50479, v50480, v50481, v50482, v50483, v50484, v50485, v50486, 0, v50488, v50489, v50493, v50491, v50492, v50490, v50494, v50495, v50496, v50497, v50499, v50500, v50501, v50502, v50503, v50504, v50498, 3, 2, 4) :|: 0 < v50493 && 2 <= v50490 && 2 <= v50484 Combined rules. Obtained 2 rulesP rules: f_2131(1, v50479:0, v50480:0, v50481:0, v50482:0, v50483:0, v50484:0, v50485:0, v50486:0, 0, v50488:0, v50489:0, 1 + v62101:0, v50491:0, v50492:0, v50490:0, v50494:0, v50495:0, 1 + v64556:0, v50497:0, v50499:0, v50500:0, v50501:0, v50502:0, v50503:0, v50504:0, v50498:0, 3, 2, 4) -> f_2131(1, v50479:0, v50480:0, v50481:0, v50482:0, v50483:0, v50484:0, v50485:0, v50486:0, 0, v50488:0, v50489:0, v62101:0, v50494:0, v59529:0, 1 + v62101:0, v63914:0, 1 + v64556:0, v64556:0, v50497:0, v50499:0, v50500:0, v50501:0, v50502:0, v50503:0, v50504:0, v50498:0, 3, 2, 4) :|: v62101:0 > 0 && v50494:0 > 0 && v59529:0 < 0 && v50484:0 > 1 f_2131(1, v50479:0, v50480:0, v50481:0, v50482:0, v50483:0, v50484:0, v50485:0, v50486:0, 0, v50488:0, v50489:0, 1 + v62101:0, v50491:0, v50492:0, v50490:0, v50494:0, v50495:0, 1 + v64556:0, v50497:0, v50499:0, v50500:0, v50501:0, v50502:0, v50503:0, v50504:0, v50498:0, 3, 2, 4) -> f_2131(1, v50479:0, v50480:0, v50481:0, v50482:0, v50483:0, v50484:0, v50485:0, v50486:0, 0, v50488:0, v50489:0, v62101:0, v50494:0, v59529:0, 1 + v62101:0, v63914:0, 1 + v64556:0, v64556:0, v50497:0, v50499:0, v50500:0, v50501:0, v50502:0, v50503:0, v50504:0, v50498:0, 3, 2, 4) :|: v62101:0 > 0 && v50494:0 > 0 && v59529:0 > 0 && v50484:0 > 1 Filtered unneeded arguments: f_2131(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) -> f_2131(x7, x13, x17, x19) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_2131(v50484:0, sum~cons_1~v62101:0, v50494:0, sum~cons_1~v64556:0) -> f_2131(v50484:0, v62101:0, v63914:0, v64556:0) :|: v50494:0 > 0 && v50484:0 > 1 && v62101:0 > 0 && sum~cons_1~v62101:0 = 1 + v62101:0 && sum~cons_1~v64556:0 = 1 + v64556:0 ---------------------------------------- (31) Obligation: Rules: f_2131(v50484:0, sum~cons_1~v62101:0, v50494:0, sum~cons_1~v64556:0) -> f_2131(v50484:0, v62101:0, v63914:0, v64556:0) :|: v50494:0 > 0 && v50484:0 > 1 && v62101:0 > 0 && sum~cons_1~v62101:0 = 1 + v62101:0 && sum~cons_1~v64556:0 = 1 + v64556:0 ---------------------------------------- (32) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2131_4,1) ---------------------------------------- (33) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX1 - 1; oldX6 := oldX3 - 1; oldX5 := nondet(); assume(oldX2 > 0 && oldX0 > 1 && oldX4 > 0 && oldX1 = 1 + oldX4 && oldX3 = 1 + oldX6); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX5; x3 := oldX3 - 1; TO: 1; ---------------------------------------- (34) 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*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 1+2*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 4 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (35) YES ---------------------------------------- (36) Obligation: SCC ---------------------------------------- (37) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 26 rulesP rules: f_1559(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1577(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1577(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1597(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1597(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1611(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1611(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1625(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 < v24921 f_1625(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1643(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1643(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1661(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1661(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1676(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1676(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v24919, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1690(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1690(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1705(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: v31461 != 0 f_1705(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1721(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1721(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1734(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1734(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1748(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1748(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24917, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1762(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1762(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1778(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1778(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1794(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 1 + v34080 = v24920 && 0 <= v34080 f_1794(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1812(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1812(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1829(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1829(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1845(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1845(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1862(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 = 0 f_1862(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1881(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 1 + v37640 = v24923 && 1 + v37640 <= 0 f_1881(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1899(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1899(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1913(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: TRUE f_1913(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) -> f_1508(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24921, v31461, v34080, v35673, v24923, v37640, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) :|: TRUE f_1508(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24917, v24918, v24919, v24920, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) -> f_1525(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24917, v24918, v24919, v24920, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) :|: TRUE f_1525(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24917, v24918, v24919, v24920, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) -> f_1542(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) :|: 0 = 0 f_1542(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 4) -> f_1559(1, v24908, v24909, v24910, v24911, v24912, v24913, v24914, v24915, 0, v24920, v24918, v24919, v24917, v24921, v24922, v24923, v24924, v24926, v24927, v24928, v24929, v24930, v24931, v24925, 3, 2, 4) :|: 0 < v24920 && 2 <= v24917 && 2 <= v24913 Combined rules. Obtained 2 rulesP rules: f_1559(1, v24908:0, v24909:0, v24910:0, v24911:0, v24912:0, v24913:0, v24914:0, v24915:0, 0, 1 + v34080:0, v24918:0, v24919:0, v24917:0, v24921:0, v24922:0, 1 + v37640:0, v24924:0, v24926:0, v24927:0, v24928:0, v24929:0, v24930:0, v24931:0, v24925:0, 3, 2, 4) -> f_1559(1, v24908:0, v24909:0, v24910:0, v24911:0, v24912:0, v24913:0, v24914:0, v24915:0, 0, v34080:0, v24921:0, v31461:0, 1 + v34080:0, v35673:0, 1 + v37640:0, v37640:0, v24924:0, v24926:0, v24927:0, v24928:0, v24929:0, v24930:0, v24931:0, v24925:0, 3, 2, 4) :|: v34080:0 > 0 && v24921:0 > 0 && v31461:0 < 0 && v37640:0 < 0 && v24913:0 > 1 f_1559(1, v24908:0, v24909:0, v24910:0, v24911:0, v24912:0, v24913:0, v24914:0, v24915:0, 0, 1 + v34080:0, v24918:0, v24919:0, v24917:0, v24921:0, v24922:0, 1 + v37640:0, v24924:0, v24926:0, v24927:0, v24928:0, v24929:0, v24930:0, v24931:0, v24925:0, 3, 2, 4) -> f_1559(1, v24908:0, v24909:0, v24910:0, v24911:0, v24912:0, v24913:0, v24914:0, v24915:0, 0, v34080:0, v24921:0, v31461:0, 1 + v34080:0, v35673:0, 1 + v37640:0, v37640:0, v24924:0, v24926:0, v24927:0, v24928:0, v24929:0, v24930:0, v24931:0, v24925:0, 3, 2, 4) :|: v34080:0 > 0 && v24921:0 > 0 && v31461:0 > 0 && v37640:0 < 0 && v24913:0 > 1 Filtered unneeded arguments: f_1559(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_1559(x7, x11, x15, x17) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1559(v24913:0, sum~cons_1~v34080:0, v24921:0, sum~cons_1~v37640:0) -> f_1559(v24913:0, v34080:0, v35673:0, v37640:0) :|: v24921:0 > 0 && v34080:0 > 0 && v24913:0 > 1 && v37640:0 < 0 && sum~cons_1~v34080:0 = 1 + v34080:0 && sum~cons_1~v37640:0 = 1 + v37640:0 ---------------------------------------- (38) Obligation: Rules: f_1559(v24913:0, sum~cons_1~v34080:0, v24921:0, sum~cons_1~v37640:0) -> f_1559(v24913:0, v34080:0, v35673:0, v37640:0) :|: v24921:0 > 0 && v34080:0 > 0 && v24913:0 > 1 && v37640:0 < 0 && sum~cons_1~v34080:0 = 1 + v34080:0 && sum~cons_1~v37640:0 = 1 + v37640:0 ---------------------------------------- (39) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1559_4,1) ---------------------------------------- (40) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := oldX1 - 1; oldX6 := oldX3 - 1; oldX5 := nondet(); assume(oldX2 > 0 && oldX4 > 0 && oldX0 > 1 && oldX6 < 0 && oldX1 = 1 + oldX4 && oldX3 = 1 + oldX6); x0 := oldX0; x1 := oldX1 - 1; x2 := oldX5; x3 := oldX3 - 1; TO: 1; ---------------------------------------- (41) 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*x1 RF for loc. 6: 2*x1 Bound for (chained) transitions 3: 4 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (42) YES ---------------------------------------- (43) Obligation: SCC ---------------------------------------- (44) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_1457(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1474(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1474(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1491(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1491(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1505(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1505(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1523(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v25434, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1523(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v25434, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1540(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: v25434 = 0 f_1540(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1558(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1558(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1576(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1576(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1596(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1596(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1610(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1610(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1624(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 1 + v29394 = v20796 && 0 <= v29394 f_1624(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1642(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1642(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1660(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1660(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1365(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v29394, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1365(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1383(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1383(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1398(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1398(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1414(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1414(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1429(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: TRUE f_1429(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20795, v20796, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1443(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 = 0 f_1443(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) -> f_1457(1, v20784, v20785, v20786, v20787, v20788, v20789, v20790, v20791, 0, v20793, v20794, v20796, v20795, v20797, v20799, v20800, v20801, v20802, v20803, v20804, v20798, 3, 2, 4) :|: 0 < v20796 && 2 <= v20795 && 2 <= v20790 Combined rules. Obtained 1 rulesP rules: f_1457(1, v20784:0, v20785:0, v20786:0, v20787:0, v20788:0, v20789:0, v20790:0, v20791:0, 0, v20793:0, v20794:0, 1 + v29394:0, v20795:0, v20797:0, v20799:0, v20800:0, v20801:0, v20802:0, v20803:0, v20804:0, v20798:0, 3, 2, 4) -> f_1457(1, v20784:0, v20785:0, v20786:0, v20787:0, v20788:0, v20789:0, v20790:0, v20791:0, 0, v20793:0, v20794:0, v29394:0, 1 + v29394:0, v20797:0, v20799:0, v20800:0, v20801:0, v20802:0, v20803:0, v20804:0, v20798:0, 3, 2, 4) :|: v29394:0 > 0 && v20790:0 > 1 Filtered unneeded arguments: f_1457(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25) -> f_1457(x8, x13) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1457(v20790:0, sum~cons_1~v29394:0) -> f_1457(v20790:0, v29394:0) :|: v29394:0 > 0 && v20790:0 > 1 && sum~cons_1~v29394:0 = 1 + v29394:0 ---------------------------------------- (45) Obligation: Rules: f_1457(v20790:0, sum~cons_1~v29394:0) -> f_1457(v20790:0, v29394:0) :|: v29394:0 > 0 && v20790:0 > 1 && sum~cons_1~v29394:0 = 1 + v29394:0 ---------------------------------------- (46) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1457_2,1) ---------------------------------------- (47) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := oldX1 - 1; assume(oldX2 > 0 && oldX0 > 1 && oldX1 = 1 + oldX2); x0 := oldX0; x1 := oldX1 - 1; TO: 1; ---------------------------------------- (48) 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*x1 RF for loc. 6: 2*x1 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 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: SCC ---------------------------------------- (51) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_899(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_914(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 = 0 f_914(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_929(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 = 0 f_929(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_944(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_944(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_960(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v7694, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_960(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v7694, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_978(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: v7694 = 0 f_978(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_997(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 = 0 f_997(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1014(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_1014(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1032(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 = 0 f_1032(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1049(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 = 0 f_1049(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1065(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 1 + v11547 = v4784 && 0 <= v11547 f_1065(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1081(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_1081(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1099(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_1099(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_1116(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: TRUE f_1116(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) -> f_844(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v11547, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) :|: TRUE f_844(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) -> f_855(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) :|: 0 = 0 f_855(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) -> f_867(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) :|: 0 = 0 f_867(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) -> f_878(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) :|: TRUE f_878(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4783, v4784, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) -> f_888(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) :|: 0 = 0 f_888(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 4) -> f_899(1, v4774, v4775, v4776, v4777, v4778, v4779, v4780, v4781, 0, v4784, v4783, v4785, v4787, v4788, v4789, v4790, v4791, v4792, v4786, 3, 2, 4) :|: 0 < v4784 && 2 <= v4783 && 2 <= v4780 Combined rules. Obtained 1 rulesP rules: f_899(1, v4774:0, v4775:0, v4776:0, v4777:0, v4778:0, v4779:0, v4780:0, v4781:0, 0, 1 + v11547:0, v4783:0, v4785:0, v4787:0, v4788:0, v4789:0, v4790:0, v4791:0, v4792:0, v4786:0, 3, 2, 4) -> f_899(1, v4774:0, v4775:0, v4776:0, v4777:0, v4778:0, v4779:0, v4780:0, v4781:0, 0, v11547:0, 1 + v11547:0, v4785:0, v4787:0, v4788:0, v4789:0, v4790:0, v4791:0, v4792:0, v4786:0, 3, 2, 4) :|: v11547:0 > 0 && v4780:0 > 1 Filtered unneeded arguments: f_899(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_899(x8, x11) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_899(v4780:0, sum~cons_1~v11547:0) -> f_899(v4780:0, v11547:0) :|: v11547:0 > 0 && v4780:0 > 1 && sum~cons_1~v11547:0 = 1 + v11547:0 ---------------------------------------- (52) Obligation: Rules: f_899(v4780:0, sum~cons_1~v11547:0) -> f_899(v4780:0, v11547:0) :|: v11547:0 > 0 && v4780:0 > 1 && sum~cons_1~v11547:0 = 1 + v11547:0 ---------------------------------------- (53) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_899_2,1) ---------------------------------------- (54) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := oldX1 - 1; assume(oldX2 > 0 && oldX0 > 1 && oldX1 = 1 + oldX2); x0 := oldX0; x1 := oldX1 - 1; TO: 1; ---------------------------------------- (55) 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*x1 RF for loc. 6: 2*x1 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 ---------------------------------------- (56) YES ---------------------------------------- (57) Obligation: SCC ---------------------------------------- (58) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 10 rulesP rules: f_558(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_572(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: 0 = 0 f_572(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_584(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: TRUE f_584(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_596(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: 0 = 0 f_596(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_608(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: v2256 = 2 * v991 && 4 <= v2256 f_608(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_623(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: TRUE f_623(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_635(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: TRUE f_635(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_523(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v2256, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: TRUE f_523(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v990, v991, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_536(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: 0 = 0 f_536(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_546(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: 0 = 0 f_546(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) -> f_558(1, v981, v982, v983, v984, v985, v986, v987, v988, 0, v991, v990, v992, v994, v995, v996, v997, v998, v999, v993, 3, 2, 4) :|: v991 < v988 && 3 <= v988 Combined rules. Obtained 1 rulesP rules: f_558(1, v981:0, v982:0, v983:0, v984:0, v985:0, v986:0, v987:0, v988:0, 0, v991:0, v990:0, v992:0, v994:0, v995:0, v996:0, v997:0, v998:0, v999:0, v993:0, 3, 2, 4) -> f_558(1, v981:0, v982:0, v983:0, v984:0, v985:0, v986:0, v987:0, v988:0, 0, 2 * v991:0, v991:0, v992:0, v994:0, v995:0, v996:0, v997:0, v998:0, v999:0, v993:0, 3, 2, 4) :|: 3 < 2 * v991:0 && v988:0 > 2 * v991:0 && v988:0 > 2 Filtered unneeded arguments: f_558(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23) -> f_558(x9, x11) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_558(v988:0, v991:0) -> f_558(v988:0, 2 * v991:0) :|: v988:0 > 2 * v991:0 && v988:0 > 2 && 3 < 2 * v991:0 ---------------------------------------- (59) Obligation: Rules: f_558(v988:0, v991:0) -> f_558(v988:0, 2 * v991:0) :|: v988:0 > 2 * v991:0 && v988:0 > 2 && 3 < 2 * v991:0 ---------------------------------------- (60) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (61) Obligation: Rules: f_558(v988:0:0, v991:0:0) -> f_558(v988:0:0, 2 * v991:0:0) :|: v988:0:0 > 2 * v991:0:0 && v988:0:0 > 2 && 3 < 2 * v991:0:0 ---------------------------------------- (62) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_558 ] = 1/4*f_558_1 + -1/2*f_558_2 The following rules are decreasing: f_558(v988:0:0, v991:0:0) -> f_558(v988:0:0, 2 * v991:0:0) :|: v988:0:0 > 2 * v991:0:0 && v988:0:0 > 2 && 3 < 2 * v991:0:0 The following rules are bounded: f_558(v988:0:0, v991:0:0) -> f_558(v988:0:0, 2 * v991:0:0) :|: v988:0:0 > 2 * v991:0:0 && v988:0:0 > 2 && 3 < 2 * v991:0:0 ---------------------------------------- (63) YES ---------------------------------------- (64) Obligation: SCC ---------------------------------------- (65) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 69 rulesP rules: f_2877(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2885(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2885(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2893(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2893(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2901(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2901(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2912(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 < v85764 f_2912(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2924(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2924(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2934(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2934(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2943(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2943(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2952(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2952(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2964(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: v90760 != 0 f_2952(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2965(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: v90760 = 0 f_2964(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2974(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2974(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2983(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2983(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2991(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2991(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2999(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2999(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3007(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_3007(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3015(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 2 + v91988 = v85763 && 0 <= 1 + v91988 f_3015(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3023(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3023(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3028(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3028(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3032(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3032(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3036(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_3036(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3040(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 1 + v93035 = v85766 f_3040(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3044(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3044(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3048(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3048(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2852(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v90760, v85761, v85762, v91988, v93027, v85766, v93035, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2852(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85757, 1, v85759, v85760, v85761, v85762, v85763, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2863(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85757, 1, v85759, v85760, v85761, v85762, v85763, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2863(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85757, 1, v85759, v85760, v85761, v85762, v85763, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2869(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2869(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2877(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85759, v85760, v85761, v85762, v85757, v85764, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 < v85763 && 3 <= v85757 f_2965(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2975(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2975(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2984(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2984(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85761, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2992(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_2992(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3000(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 0 = 0 f_3000(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85762, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3008(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: 2 + v91981 = v85764 && 0 <= 1 + v91981 f_3008(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3016(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3016(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_3024(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_3024(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v91981, v85757, v85765, v85766, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) -> f_2862(2, v85746, v85747, v85748, v85749, v85750, v85751, v85752, v85753, 0, v85755, v85756, v85763, 1, v85764, v85757, v85764, v85765, v85766, v91981, v85767, v85768, v85769, v85770, v85771, v85772, v85773, 3, 4) :|: TRUE f_2862(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2868(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2868(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2876(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2876(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2884(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2884(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2892(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2892(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86351, v86352, v86353, v86354, v86355, v86356, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2900(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2900(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2910(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 < v86356 && 3 <= v86351 && 3 <= v86353 f_2910(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2922(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2922(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2932(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2932(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2941(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2941(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2950(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2950(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2961(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: v90759 != 0 f_2950(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2962(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: v90759 = 0 f_2961(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2972(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2972(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2981(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2981(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2989(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2989(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2997(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2997(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3005(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_3005(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3013(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 2 + v91986 = v86349 && 0 <= 1 + v91986 f_3013(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3021(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3021(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3027(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3027(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3031(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3031(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3035(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_3035(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3039(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 1 + v93034 = v86355 f_3039(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3043(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3043(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3047(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3047(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v91986, v93026, v86355, v93034, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2852(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v90759, v86351, v86356, v91986, v93026, v86355, v93034, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2962(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2973(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2973(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2982(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_2982(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86351, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2990(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2990(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2998(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 0 = 0 f_2998(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3006(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: 2 + v91980 = v86356 && 0 <= 1 + v91980 f_3006(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3014(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3014(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_3022(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE f_3022(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) -> f_2862(2, v86338, v86339, v86340, v86341, v86342, v86343, v86344, v86345, 0, v86347, v86348, v86349, 1, v86356, v86352, v86353, v86354, v86355, v91980, v86357, v86358, v86359, v86360, v86361, v86362, v86363, 3, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_2877(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, v85763:0, 1, v85759:0, v85760:0, v85761:0, v85762:0, v85757:0, 2 + v91981:0, v85765:0, v85766:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) -> f_2950(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, v85763:0, 1, v91981:0, v90759:0, v85757:0, 2 + v91981:0, v85765:0, v85766:0, 2 + v91981:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) :|: v91981:0 > 0 f_2950(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, v86349:0, 1, 2 + v91980:0, 0, v86352:0, v86353:0, v86354:0, v86355:0, v86351:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) -> f_2950(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, v86349:0, 1, v91980:0, v90759:1, v86352:0, v86353:0, v86354:0, v86355:0, 2 + v91980:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) :|: v91980:0 > 0 && v86353:0 > 2 f_2877(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, 2 + v91988:0, 1, v85759:0, v85760:0, v85761:0, v85762:0, v85757:0, v85764:0, v85765:0, 1 + v93035:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) -> f_2877(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, v91988:0, 1, v85764:0, v90760:0, v85761:0, v85762:0, 2 + v91988:0, v93027:0, 1 + v93035:0, v93035:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) :|: v91988:0 > 0 && v85764:0 > 0 && v90760:0 < 0 f_2877(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, 2 + v91988:0, 1, v85759:0, v85760:0, v85761:0, v85762:0, v85757:0, v85764:0, v85765:0, 1 + v93035:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) -> f_2877(2, v85746:0, v85747:0, v85748:0, v85749:0, v85750:0, v85751:0, v85752:0, v85753:0, 0, v85755:0, v85756:0, v91988:0, 1, v85764:0, v90760:0, v85761:0, v85762:0, 2 + v91988:0, v93027:0, 1 + v93035:0, v93035:0, v85767:0, v85768:0, v85769:0, v85770:0, v85771:0, v85772:0, v85773:0, 3, 4) :|: v91988:0 > 0 && v85764:0 > 0 && v90760:0 > 0 f_2950(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, 2 + v91986:0, 1, v86356:0, v90759:0, v86352:0, v86353:0, v86354:0, 1 + v93034:0, v86351:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) -> f_2877(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, v91986:0, 1, v86356:0, v90759:0, v86351:0, v86356:0, 2 + v91986:0, v93026:0, 1 + v93034:0, v93034:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) :|: v91986:0 > 0 && v90759:0 < 0 f_2950(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, 2 + v91986:0, 1, v86356:0, v90759:0, v86352:0, v86353:0, v86354:0, 1 + v93034:0, v86351:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) -> f_2877(2, v86338:0, v86339:0, v86340:0, v86341:0, v86342:0, v86343:0, v86344:0, v86345:0, 0, v86347:0, v86348:0, v91986:0, 1, v86356:0, v90759:0, v86351:0, v86356:0, 2 + v91986:0, v93026:0, 1 + v93034:0, v93034:0, v86357:0, v86358:0, v86359:0, v86360:0, v86361:0, v86362:0, v86363:0, 3, 4) :|: v91986:0 > 0 && v90759:0 > 0 Filtered unneeded arguments: f_2877(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_2877(x13, x20, x22) f_2950(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) -> f_2950(x13, x15, x16, x18, x20) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_2877(v85763:0, sum~cons_2~v91981:0, v85766:0) -> f_2950(v85763:0, v91981:0, v90759:0, 2 + v91981:0, v85766:0) :|: v91981:0 > 0 && sum~cons_2~v91981:0 = 2 + v91981:0 f_2950(v86349:0, sum~cons_2~v91980:0, cons_0, v86353:0, v86355:0) -> f_2950(v86349:0, v91980:0, v90759:1, v86353:0, v86355:0) :|: v91980:0 > 0 && v86353:0 > 2 && sum~cons_2~v91980:0 = 2 + v91980:0 && cons_0 = 0 f_2877(sum~cons_2~v91988:0, v85764:0, sum~cons_1~v93035:0) -> f_2877(v91988:0, v93027:0, v93035:0) :|: v91988:0 > 0 && v85764:0 > 0 && sum~cons_2~v91988:0 = 2 + v91988:0 && sum~cons_1~v93035:0 = 1 + v93035:0 f_2950(sum~cons_2~v91986:0, v86356:0, v90759:0, v86353:0, sum~cons_1~v93034:0) -> f_2877(v91986:0, v93026:0, v93034:0) :|: v91986:0 > 0 && v90759:0 < 0 && sum~cons_2~v91986:0 = 2 + v91986:0 && sum~cons_1~v93034:0 = 1 + v93034:0 f_2950(sum~cons_2~v91986:0, v86356:0, v90759:0, v86353:0, sum~cons_1~v93034:0) -> f_2877(v91986:0, v93026:0, v93034:0) :|: v91986:0 > 0 && v90759:0 > 0 && sum~cons_2~v91986:0 = 2 + v91986:0 && sum~cons_1~v93034:0 = 1 + v93034:0 ---------------------------------------- (66) Obligation: Rules: f_2877(v85763:0, sum~cons_2~v91981:0, v85766:0) -> f_2950(v85763:0, v91981:0, v90759:0, 2 + v91981:0, v85766:0) :|: v91981:0 > 0 && sum~cons_2~v91981:0 = 2 + v91981:0 f_2950(v86349:0, sum~cons_2~v91980:0, cons_0, v86353:0, v86355:0) -> f_2950(v86349:0, v91980:0, v90759:1, v86353:0, v86355:0) :|: v91980:0 > 0 && v86353:0 > 2 && sum~cons_2~v91980:0 = 2 + v91980:0 && cons_0 = 0 f_2877(sum~cons_2~v91988:0, v85764:0, sum~cons_1~v93035:0) -> f_2877(v91988:0, v93027:0, v93035:0) :|: v91988:0 > 0 && v85764:0 > 0 && sum~cons_2~v91988:0 = 2 + v91988:0 && sum~cons_1~v93035:0 = 1 + v93035:0 f_2950(x, x1, x2, x3, x4) -> f_2877(x5, x6, x7) :|: x5 > 0 && x2 < 0 && x = 2 + x5 && x4 = 1 + x7 f_2950(x8, x9, x10, x11, x12) -> f_2877(x13, x14, x15) :|: x13 > 0 && x10 > 0 && x8 = 2 + x13 && x12 = 1 + x15 ---------------------------------------- (67) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2877_5,1) (f_2950_5,2) ---------------------------------------- (68) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := nondet(); assume(oldX5 > 0 && oldX1 = 2 + oldX5); x0 := oldX0; x1 := oldX1 - 2; x2 := oldX6; x3 := 2 + oldX5; x4 := oldX2; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := nondet(); assume(oldX5 > 0 && oldX3 > 2 && oldX1 = 2 + oldX5 && oldX2 = 0); x0 := oldX0; x1 := oldX1 - 2; x2 := oldX6; x3 := oldX3; x4 := oldX4; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX2 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX5 > 0 && oldX1 > 0 && oldX0 = 2 + oldX5 && oldX2 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX2 - 1; x3 := oldX8; x4 := oldX9; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX4 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX5 > 0 && oldX2 < 0 && oldX0 = 2 + oldX5 && oldX4 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX4 - 1; x3 := oldX8; x4 := oldX9; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX4 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX5 > 0 && oldX2 > 0 && oldX0 = 2 + oldX5 && oldX4 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX4 - 1; x3 := oldX8; x4 := oldX9; TO: 1; ---------------------------------------- (69) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: - Rank function 1: RF for loc. 6: 3*x0 RF for loc. 7: -4+3*x0 RF for loc. 8: -2+3*x0 RF for loc. 12: -4+3*x0 Bound for (chained) transitions 6: 7 Bound for (chained) transitions 18: 5 Bound for (chained) transitions 19: 5 - Rank function 2: RF for loc. 6: -1+2*x1 RF for loc. 7: 1+2*x1 RF for loc. 8: -2+2*x1 RF for loc. 12: 2*x1 Bound for (chained) transitions 5: 4 Bound for (chained) transitions 17: 6 - Rank function 3: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 0 RF for loc. 12: -1 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 14: 0 ---------------------------------------- (70) YES ---------------------------------------- (71) Obligation: SCC ---------------------------------------- (72) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 69 rulesP rules: f_2429(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2443(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2443(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2457(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2457(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2469(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2469(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2486(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 < v62707 f_2486(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2502(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2502(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2517(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2517(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2531(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2531(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62703, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2547(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2547(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2566(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: v72767 != 0 f_2547(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2567(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: v72767 = 0 f_2566(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2581(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2581(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2597(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2597(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2613(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2613(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2629(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2629(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2645(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2645(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2663(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 2 + v75966 = v62706 && 0 <= 1 + v75966 f_2663(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2683(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2683(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2694(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2694(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2704(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2704(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2714(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2714(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2726(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 1 + v78863 = v62709 && 1 + v78863 <= 0 f_2726(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2736(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2736(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2748(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2748(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2388(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v72767, v62704, v62705, v75966, v78240, v62709, v78863, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2388(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62701, v62702, v62703, v62704, v62705, v62706, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2404(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62701, v62702, v62703, v62704, v62705, v62706, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2404(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62701, v62702, v62703, v62704, v62705, v62706, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2416(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2416(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2429(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62702, v62703, v62704, v62705, v62701, v62707, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 < v62706 && 3 <= v62701 f_2567(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2582(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2582(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2598(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2598(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62704, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2614(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2614(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2630(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 0 = 0 f_2630(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62705, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2646(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: 2 + v75955 = v62707 && 0 <= 1 + v75955 f_2646(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2664(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2664(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2684(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2684(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v75955, v62701, v62708, v62709, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) -> f_2403(2, v62691, v62692, v62693, v62694, v62695, v62696, v62697, v62698, 0, 1, v62706, v62707, v62701, v62707, v62708, v62709, v75955, v62710, v62711, v62712, v62713, v62714, v62715, v62716, 3, 4) :|: TRUE f_2403(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2415(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2415(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2428(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2428(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2442(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2442(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2456(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2456(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63756, v63757, v63758, v63759, v63760, v63761, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2468(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2468(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2484(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 < v63761 && 3 <= v63756 && 3 <= v63758 f_2484(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2500(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2500(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2515(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2515(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2529(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2529(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2545(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2545(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2563(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: v72766 != 0 f_2545(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2564(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: v72766 = 0 f_2563(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2579(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2579(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2595(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2595(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2611(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2611(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2627(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2627(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2643(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2643(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2661(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 2 + v75964 = v63755 && 0 <= 1 + v75964 f_2661(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2681(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2681(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2693(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2693(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2703(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2703(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2713(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2713(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2725(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 1 + v78862 = v63760 && 1 + v78862 <= 0 f_2725(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2735(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2735(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2747(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2747(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v75964, v78239, v63760, v78862, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2388(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v72766, v63756, v63761, v75964, v78239, v63760, v78862, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2564(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2580(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2580(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2596(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2596(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63756, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2612(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2612(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2628(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 0 = 0 f_2628(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2644(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: 2 + v75954 = v63761 && 0 <= 1 + v75954 f_2644(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2662(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2662(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2682(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE f_2682(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) -> f_2403(2, v63745, v63746, v63747, v63748, v63749, v63750, v63751, v63752, 0, 1, v63755, v63761, v63757, v63758, v63759, v63760, v75954, v63762, v63763, v63764, v63765, v63766, v63767, v63768, 3, 4) :|: TRUE Combined rules. Obtained 6 rulesP rules: f_2429(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, 2 + v75966:0, v62702:0, v62703:0, v62704:0, v62705:0, v62701:0, v62707:0, v62708:0, 1 + v78863:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) -> f_2429(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, v75966:0, v62707:0, v72767:0, v62704:0, v62705:0, 2 + v75966:0, v78240:0, 1 + v78863:0, v78863:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) :|: v75966:0 > 0 && v62707:0 > 0 && v72767:0 < 0 && v78863:0 < 0 f_2429(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, 2 + v75966:0, v62702:0, v62703:0, v62704:0, v62705:0, v62701:0, v62707:0, v62708:0, 1 + v78863:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) -> f_2429(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, v75966:0, v62707:0, v72767:0, v62704:0, v62705:0, 2 + v75966:0, v78240:0, 1 + v78863:0, v78863:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) :|: v75966:0 > 0 && v62707:0 > 0 && v72767:0 > 0 && v78863:0 < 0 f_2429(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, v62706:0, v62702:0, v62703:0, v62704:0, v62705:0, v62701:0, 2 + v75955:0, v62708:0, v62709:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) -> f_2545(2, v62691:0, v62692:0, v62693:0, v62694:0, v62695:0, v62696:0, v62697:0, v62698:0, 0, 1, v62706:0, v75955:0, v72766:0, v62701:0, 2 + v75955:0, v62708:0, v62709:0, 2 + v75955:0, v62710:0, v62711:0, v62712:0, v62713:0, v62714:0, v62715:0, v62716:0, 3, 4) :|: v75955:0 > 0 f_2545(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, 2 + v75964:0, v63761:0, v72766:0, v63757:0, v63758:0, v63759:0, 1 + v78862:0, v63756:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) -> f_2429(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, v75964:0, v63761:0, v72766:0, v63756:0, v63761:0, 2 + v75964:0, v78239:0, 1 + v78862:0, v78862:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) :|: v75964:0 > 0 && v72766:0 < 0 && v78862:0 < 0 f_2545(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, 2 + v75964:0, v63761:0, v72766:0, v63757:0, v63758:0, v63759:0, 1 + v78862:0, v63756:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) -> f_2429(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, v75964:0, v63761:0, v72766:0, v63756:0, v63761:0, 2 + v75964:0, v78239:0, 1 + v78862:0, v78862:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) :|: v75964:0 > 0 && v72766:0 > 0 && v78862:0 < 0 f_2545(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, v63755:0, 2 + v75954:0, 0, v63757:0, v63758:0, v63759:0, v63760:0, v63756:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) -> f_2545(2, v63745:0, v63746:0, v63747:0, v63748:0, v63749:0, v63750:0, v63751:0, v63752:0, 0, 1, v63755:0, v75954:0, v72766:1, v63757:0, v63758:0, v63759:0, v63760:0, 2 + v75954:0, v63762:0, v63763:0, v63764:0, v63765:0, v63766:0, v63767:0, v63768:0, 3, 4) :|: v75954:0 > 0 && v63758:0 > 2 Filtered unneeded arguments: f_2429(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29) -> f_2429(x12, x18, x20) f_2545(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_2545(x12, x13, x14, x16, x18) Removed division, modulo operations, cleaned up constraints. Obtained 5 rules.P rules: f_2429(sum~cons_2~v75966:0, v62707:0, sum~cons_1~v78863:0) -> f_2429(v75966:0, v78240:0, v78863:0) :|: v62707:0 > 0 && v78863:0 < 0 && v75966:0 > 0 && sum~cons_2~v75966:0 = 2 + v75966:0 && sum~cons_1~v78863:0 = 1 + v78863:0 f_2429(v62706:0, sum~cons_2~v75955:0, v62709:0) -> f_2545(v62706:0, v75955:0, v72766:0, 2 + v75955:0, v62709:0) :|: v75955:0 > 0 && sum~cons_2~v75955:0 = 2 + v75955:0 f_2545(sum~cons_2~v75964:0, v63761:0, v72766:0, v63758:0, sum~cons_1~v78862:0) -> f_2429(v75964:0, v78239:0, v78862:0) :|: v72766:0 < 0 && v78862:0 < 0 && v75964:0 > 0 && sum~cons_2~v75964:0 = 2 + v75964:0 && sum~cons_1~v78862:0 = 1 + v78862:0 f_2545(sum~cons_2~v75964:0, v63761:0, v72766:0, v63758:0, sum~cons_1~v78862:0) -> f_2429(v75964:0, v78239:0, v78862:0) :|: v72766:0 > 0 && v78862:0 < 0 && v75964:0 > 0 && sum~cons_2~v75964:0 = 2 + v75964:0 && sum~cons_1~v78862:0 = 1 + v78862:0 f_2545(v63755:0, sum~cons_2~v75954:0, cons_0, v63758:0, v63760:0) -> f_2545(v63755:0, v75954:0, v72766:1, v63758:0, v63760:0) :|: v75954:0 > 0 && v63758:0 > 2 && sum~cons_2~v75954:0 = 2 + v75954:0 && cons_0 = 0 ---------------------------------------- (73) Obligation: Rules: f_2429(sum~cons_2~v75966:0, v62707:0, sum~cons_1~v78863:0) -> f_2429(v75966:0, v78240:0, v78863:0) :|: v62707:0 > 0 && v78863:0 < 0 && v75966:0 > 0 && sum~cons_2~v75966:0 = 2 + v75966:0 && sum~cons_1~v78863:0 = 1 + v78863:0 f_2429(v62706:0, sum~cons_2~v75955:0, v62709:0) -> f_2545(v62706:0, v75955:0, v72766:0, 2 + v75955:0, v62709:0) :|: v75955:0 > 0 && sum~cons_2~v75955:0 = 2 + v75955:0 f_2545(x, x1, x2, x3, x4) -> f_2429(x5, x6, x7) :|: x2 < 0 && x7 < 0 && x5 > 0 && x = 2 + x5 && x4 = 1 + x7 f_2545(x8, x9, x10, x11, x12) -> f_2429(x13, x14, x15) :|: x10 > 0 && x15 < 0 && x13 > 0 && x8 = 2 + x13 && x12 = 1 + x15 f_2545(v63755:0, sum~cons_2~v75954:0, cons_0, v63758:0, v63760:0) -> f_2545(v63755:0, v75954:0, v72766:1, v63758:0, v63760:0) :|: v75954:0 > 0 && v63758:0 > 2 && sum~cons_2~v75954:0 = 2 + v75954:0 && cons_0 = 0 ---------------------------------------- (74) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2429_5,1) (f_2545_5,2) ---------------------------------------- (75) Obligation: START: 0; FROM: 0; TO: 1; FROM: 0; TO: 2; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX2 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX1 > 0 && oldX7 < 0 && oldX5 > 0 && oldX0 = 2 + oldX5 && oldX2 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX2 - 1; x3 := oldX8; x4 := oldX9; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := nondet(); assume(oldX5 > 0 && oldX1 = 2 + oldX5); x0 := oldX0; x1 := oldX1 - 2; x2 := oldX6; x3 := 2 + oldX5; x4 := oldX2; TO: 2; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX4 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX2 < 0 && oldX7 < 0 && oldX5 > 0 && oldX0 = 2 + oldX5 && oldX4 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX4 - 1; x3 := oldX8; x4 := oldX9; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX0 - 2; oldX7 := oldX4 - 1; oldX6 := nondet(); oldX8 := nondet(); oldX9 := nondet(); assume(oldX2 > 0 && oldX7 < 0 && oldX5 > 0 && oldX0 = 2 + oldX5 && oldX4 = 1 + oldX7); x0 := oldX0 - 2; x1 := oldX6; x2 := oldX4 - 1; x3 := oldX8; x4 := oldX9; TO: 1; FROM: 2; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX1 - 2; oldX6 := nondet(); assume(oldX5 > 0 && oldX3 > 2 && oldX1 = 2 + oldX5 && oldX2 = 0); x0 := oldX0; x1 := oldX1 - 2; x2 := oldX6; x3 := oldX3; x4 := oldX4; TO: 2; ---------------------------------------- (76) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 2, 5, 6, 14, 17, 18, 19 using the following rank functions: - Rank function 1: RF for loc. 6: 4+3*x0 RF for loc. 7: 3*x0 RF for loc. 8: 2+3*x0 RF for loc. 12: 3*x0 Bound for (chained) transitions 5: 11 Bound for (chained) transitions 17: 9 Bound for (chained) transitions 18: 9 - Rank function 2: RF for loc. 6: -1+2*x1 RF for loc. 7: 1+2*x1 RF for loc. 8: -2+2*x1 RF for loc. 12: 2*x1 Bound for (chained) transitions 6: 4 Bound for (chained) transitions 19: 6 - Rank function 3: RF for loc. 6: 1 RF for loc. 7: 0 RF for loc. 8: 0 RF for loc. 12: -1 Bound for (chained) transitions 2: 1 Bound for (chained) transitions 14: 0 ---------------------------------------- (77) YES ---------------------------------------- (78) Obligation: SCC ---------------------------------------- (79) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 26 rulesP rules: f_2139(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2156(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2156(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2172(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2172(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2185(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2185(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2200(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 < v50734 f_2200(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2218(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2218(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2235(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2235(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2251(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2251(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v50732, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2268(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2268(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2288(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: v59533 != 0 f_2288(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2306(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2306(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2321(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2321(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2336(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2336(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50729, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2351(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2351(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2366(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2366(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2381(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 2 + v62439 = v50733 && 0 <= 1 + v62439 f_2381(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2397(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2397(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2411(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2411(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2424(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2424(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2438(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2438(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2452(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 1 + v65244 = v50736 f_2452(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2465(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2465(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2480(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2480(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2088(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50734, v59533, v62439, v64199, v50736, v65244, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2088(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50729, 1, v50731, v50732, v50733, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2107(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50729, 1, v50731, v50732, v50733, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: TRUE f_2107(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50729, 1, v50731, v50732, v50733, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2124(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 = 0 f_2124(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) -> f_2139(2, v50718, v50719, v50720, v50721, v50722, v50723, v50724, v50725, 0, v50727, v50728, v50733, 1, v50731, v50732, v50729, v50734, v50735, v50736, v50737, v50738, v50739, v50740, v50741, v50742, v50743, 3, 4) :|: 0 < v50733 && 3 <= v50729 Combined rules. Obtained 2 rulesP rules: f_2139(2, v50718:0, v50719:0, v50720:0, v50721:0, v50722:0, v50723:0, v50724:0, v50725:0, 0, v50727:0, v50728:0, 2 + v62439:0, 1, v50731:0, v50732:0, v50729:0, v50734:0, v50735:0, 1 + v65244:0, v50737:0, v50738:0, v50739:0, v50740:0, v50741:0, v50742:0, v50743:0, 3, 4) -> f_2139(2, v50718:0, v50719:0, v50720:0, v50721:0, v50722:0, v50723:0, v50724:0, v50725:0, 0, v50727:0, v50728:0, v62439:0, 1, v50734:0, v59533:0, 2 + v62439:0, v64199:0, 1 + v65244:0, v65244:0, v50737:0, v50738:0, v50739:0, v50740:0, v50741:0, v50742:0, v50743:0, 3, 4) :|: v62439:0 > 0 && v50734:0 > 0 && v59533:0 < 0 f_2139(2, v50718:0, v50719:0, v50720:0, v50721:0, v50722:0, v50723:0, v50724:0, v50725:0, 0, v50727:0, v50728:0, 2 + v62439:0, 1, v50731:0, v50732:0, v50729:0, v50734:0, v50735:0, 1 + v65244:0, v50737:0, v50738:0, v50739:0, v50740:0, v50741:0, v50742:0, v50743:0, 3, 4) -> f_2139(2, v50718:0, v50719:0, v50720:0, v50721:0, v50722:0, v50723:0, v50724:0, v50725:0, 0, v50727:0, v50728:0, v62439:0, 1, v50734:0, v59533:0, 2 + v62439:0, v64199:0, 1 + v65244:0, v65244:0, v50737:0, v50738:0, v50739:0, v50740:0, v50741:0, v50742:0, v50743:0, 3, 4) :|: v62439:0 > 0 && v50734:0 > 0 && v59533:0 > 0 Filtered unneeded arguments: f_2139(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29) -> f_2139(x13, x18, x20) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_2139(sum~cons_2~v62439:0, v50734:0, sum~cons_1~v65244:0) -> f_2139(v62439:0, v64199:0, v65244:0) :|: v62439:0 > 0 && v50734:0 > 0 && sum~cons_2~v62439:0 = 2 + v62439:0 && sum~cons_1~v65244:0 = 1 + v65244:0 ---------------------------------------- (80) Obligation: Rules: f_2139(sum~cons_2~v62439:0, v50734:0, sum~cons_1~v65244:0) -> f_2139(v62439:0, v64199:0, v65244:0) :|: v62439:0 > 0 && v50734:0 > 0 && sum~cons_2~v62439:0 = 2 + v62439:0 && sum~cons_1~v65244:0 = 1 + v65244:0 ---------------------------------------- (81) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_2139_3,1) ---------------------------------------- (82) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX0 - 2; oldX5 := oldX2 - 1; oldX4 := nondet(); assume(oldX3 > 0 && oldX1 > 0 && oldX0 = 2 + oldX3 && oldX2 = 1 + oldX5); x0 := oldX0 - 2; x1 := oldX4; x2 := oldX2 - 1; TO: 1; ---------------------------------------- (83) 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+x0 RF for loc. 6: x0 Bound for (chained) transitions 3: 3 - Rank function 2: RF for loc. 5: x0 RF for loc. 6: -1+x0 Bound for (chained) transitions 4: 2 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (84) YES ---------------------------------------- (85) Obligation: SCC ---------------------------------------- (86) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 26 rulesP rules: f_1568(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1587(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1587(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1604(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1604(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1618(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1618(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1634(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 < v25301 f_1634(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1652(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1652(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1669(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1669(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1683(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1683(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v25299, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1698(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1698(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1713(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: v31647 != 0 f_1713(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1727(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1727(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1741(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1741(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1755(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1755(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25297, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1770(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1770(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1785(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1785(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1803(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 2 + v34167 = v25300 && 0 <= 1 + v34167 f_1803(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1821(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1821(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1837(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1837(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1853(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1853(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1871(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1871(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1891(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 1 + v38002 = v25303 && 1 + v38002 <= 0 f_1891(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1906(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1906(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1921(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1921(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1517(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25301, v31647, v34167, v36921, v25303, v38002, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1517(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25297, v25298, v25299, v25300, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1533(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25297, v25298, v25299, v25300, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: TRUE f_1533(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25297, v25298, v25299, v25300, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1551(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 = 0 f_1551(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) -> f_1568(2, v25287, v25288, v25289, v25290, v25291, v25292, v25293, v25294, 0, 1, v25300, v25298, v25299, v25297, v25301, v25302, v25303, v25304, v25305, v25306, v25307, v25308, v25309, v25310, 3, 4) :|: 0 < v25300 && 3 <= v25297 Combined rules. Obtained 2 rulesP rules: f_1568(2, v25287:0, v25288:0, v25289:0, v25290:0, v25291:0, v25292:0, v25293:0, v25294:0, 0, 1, 2 + v34167:0, v25298:0, v25299:0, v25297:0, v25301:0, v25302:0, 1 + v38002:0, v25304:0, v25305:0, v25306:0, v25307:0, v25308:0, v25309:0, v25310:0, 3, 4) -> f_1568(2, v25287:0, v25288:0, v25289:0, v25290:0, v25291:0, v25292:0, v25293:0, v25294:0, 0, 1, v34167:0, v25301:0, v31647:0, 2 + v34167:0, v36921:0, 1 + v38002:0, v38002:0, v25304:0, v25305:0, v25306:0, v25307:0, v25308:0, v25309:0, v25310:0, 3, 4) :|: v34167:0 > 0 && v25301:0 > 0 && v31647:0 < 0 && v38002:0 < 0 f_1568(2, v25287:0, v25288:0, v25289:0, v25290:0, v25291:0, v25292:0, v25293:0, v25294:0, 0, 1, 2 + v34167:0, v25298:0, v25299:0, v25297:0, v25301:0, v25302:0, 1 + v38002:0, v25304:0, v25305:0, v25306:0, v25307:0, v25308:0, v25309:0, v25310:0, 3, 4) -> f_1568(2, v25287:0, v25288:0, v25289:0, v25290:0, v25291:0, v25292:0, v25293:0, v25294:0, 0, 1, v34167:0, v25301:0, v31647:0, 2 + v34167:0, v36921:0, 1 + v38002:0, v38002:0, v25304:0, v25305:0, v25306:0, v25307:0, v25308:0, v25309:0, v25310:0, 3, 4) :|: v34167:0 > 0 && v25301:0 > 0 && v31647:0 > 0 && v38002:0 < 0 Filtered unneeded arguments: f_1568(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) -> f_1568(x12, x16, x18) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1568(sum~cons_2~v34167:0, v25301:0, sum~cons_1~v38002:0) -> f_1568(v34167:0, v36921:0, v38002:0) :|: v25301:0 > 0 && v38002:0 < 0 && v34167:0 > 0 && sum~cons_2~v34167:0 = 2 + v34167:0 && sum~cons_1~v38002:0 = 1 + v38002:0 ---------------------------------------- (87) Obligation: Rules: f_1568(sum~cons_2~v34167:0, v25301:0, sum~cons_1~v38002:0) -> f_1568(v34167:0, v36921:0, v38002:0) :|: v25301:0 > 0 && v38002:0 < 0 && v34167:0 > 0 && sum~cons_2~v34167:0 = 2 + v34167:0 && sum~cons_1~v38002:0 = 1 + v38002:0 ---------------------------------------- (88) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1568_3,1) ---------------------------------------- (89) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX0 - 2; oldX5 := oldX2 - 1; oldX4 := nondet(); assume(oldX1 > 0 && oldX5 < 0 && oldX3 > 0 && oldX0 = 2 + oldX3 && oldX2 = 1 + oldX5); x0 := oldX0 - 2; x1 := oldX4; x2 := oldX2 - 1; TO: 1; ---------------------------------------- (90) 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+x0 RF for loc. 6: x0 Bound for (chained) transitions 3: 3 Bound for (chained) transitions 4: 3 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (91) YES ---------------------------------------- (92) Obligation: SCC ---------------------------------------- (93) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_1465(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1483(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1483(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1498(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1498(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1514(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1514(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1531(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v25520, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1531(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v25520, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1549(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: v25520 = 0 f_1549(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1567(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1567(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1586(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1586(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1603(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1603(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1617(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1617(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1633(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 2 + v29396 = v21131 && 0 <= 1 + v29396 f_1633(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1651(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1651(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1668(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1668(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1375(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v29396, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1375(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1390(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1390(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1406(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1406(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1422(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1422(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1436(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: TRUE f_1436(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21130, v21131, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1450(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 = 0 f_1450(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) -> f_1465(2, v21118, v21119, v21120, v21121, v21122, v21123, v21124, v21125, 0, v21127, v21128, 1, v21131, v21130, v21132, v21133, v21134, v21135, v21136, v21137, v21138, 3, 4) :|: 0 < v21131 && 3 <= v21130 Combined rules. Obtained 1 rulesP rules: f_1465(2, v21118:0, v21119:0, v21120:0, v21121:0, v21122:0, v21123:0, v21124:0, v21125:0, 0, v21127:0, v21128:0, 1, 2 + v29396:0, v21130:0, v21132:0, v21133:0, v21134:0, v21135:0, v21136:0, v21137:0, v21138:0, 3, 4) -> f_1465(2, v21118:0, v21119:0, v21120:0, v21121:0, v21122:0, v21123:0, v21124:0, v21125:0, 0, v21127:0, v21128:0, 1, v29396:0, 2 + v29396:0, v21132:0, v21133:0, v21134:0, v21135:0, v21136:0, v21137:0, v21138:0, 3, 4) :|: v29396:0 > 0 Filtered unneeded arguments: f_1465(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_1465(x14) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_1465(sum~cons_2~v29396:0) -> f_1465(v29396:0) :|: v29396:0 > 0 && sum~cons_2~v29396:0 = 2 + v29396:0 ---------------------------------------- (94) Obligation: Rules: f_1465(sum~cons_2~v29396:0) -> f_1465(v29396:0) :|: v29396:0 > 0 && sum~cons_2~v29396:0 = 2 + v29396:0 ---------------------------------------- (95) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_1465_1,1) ---------------------------------------- (96) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 2; assume(oldX1 > 0 && oldX0 = 2 + oldX1); x0 := oldX0 - 2; TO: 1; ---------------------------------------- (97) 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+x0 RF for loc. 6: x0 Bound for (chained) transitions 3: 3 Bound for (chained) transitions 4: 3 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (98) YES ---------------------------------------- (99) Obligation: SCC ---------------------------------------- (100) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 19 rulesP rules: f_906(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_922(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_922(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_936(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_936(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_952(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_952(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_968(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v7716, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_968(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v7716, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_988(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: v7716 = 0 f_988(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1005(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_1005(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1023(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_1023(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1041(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_1041(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1057(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_1057(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1073(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 2 + v11779 = v4562 && 0 <= 1 + v11779 f_1073(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1089(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_1089(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_1109(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_1109(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_837(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v11779, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_837(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_849(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_849(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_861(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_861(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_873(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_873(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_883(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: TRUE f_883(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4561, v4562, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_893(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 = 0 f_893(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) -> f_906(2, v4551, v4552, v4553, v4554, v4555, v4556, v4557, v4558, 0, 1, v4562, v4561, v4563, v4564, v4565, v4566, v4567, v4568, v4569, 3, 4) :|: 0 < v4562 && 3 <= v4561 Combined rules. Obtained 1 rulesP rules: f_906(2, v4551:0, v4552:0, v4553:0, v4554:0, v4555:0, v4556:0, v4557:0, v4558:0, 0, 1, 2 + v11779:0, v4561:0, v4563:0, v4564:0, v4565:0, v4566:0, v4567:0, v4568:0, v4569:0, 3, 4) -> f_906(2, v4551:0, v4552:0, v4553:0, v4554:0, v4555:0, v4556:0, v4557:0, v4558:0, 0, 1, v11779:0, 2 + v11779:0, v4563:0, v4564:0, v4565:0, v4566:0, v4567:0, v4568:0, v4569:0, 3, 4) :|: v11779:0 > 0 Filtered unneeded arguments: f_906(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_906(x12) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_906(sum~cons_2~v11779:0) -> f_906(v11779:0) :|: v11779:0 > 0 && sum~cons_2~v11779:0 = 2 + v11779:0 ---------------------------------------- (101) Obligation: Rules: f_906(sum~cons_2~v11779:0) -> f_906(v11779:0) :|: v11779:0 > 0 && sum~cons_2~v11779:0 = 2 + v11779:0 ---------------------------------------- (102) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_906_1,1) ---------------------------------------- (103) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := oldX0 - 2; assume(oldX1 > 0 && oldX0 = 2 + oldX1); x0 := oldX0 - 2; TO: 1; ---------------------------------------- (104) 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+x0 RF for loc. 6: x0 Bound for (chained) transitions 3: 3 Bound for (chained) transitions 4: 3 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (105) YES ---------------------------------------- (106) Obligation: SCC ---------------------------------------- (107) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 10 rulesP rules: f_565(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_578(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: 0 = 0 f_578(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_590(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: TRUE f_590(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_602(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: 0 = 0 f_602(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_615(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: v2287 = 2 * v1156 && 4 <= v2287 f_615(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_630(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: TRUE f_630(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_641(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: TRUE f_641(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_530(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v2287, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: TRUE f_530(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1154, 1, v1156, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_541(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: 0 = 0 f_541(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_552(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: 0 = 0 f_552(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) -> f_565(2, v1145, v1146, v1147, v1148, v1149, v1150, v1151, v1152, 0, v1156, 1, v1154, v1157, v1158, v1159, v1160, v1161, v1162, v1163, 3, 4) :|: v1156 < v1152 && 3 <= v1152 Combined rules. Obtained 1 rulesP rules: f_565(2, v1145:0, v1146:0, v1147:0, v1148:0, v1149:0, v1150:0, v1151:0, v1152:0, 0, v1156:0, 1, v1154:0, v1157:0, v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, 3, 4) -> f_565(2, v1145:0, v1146:0, v1147:0, v1148:0, v1149:0, v1150:0, v1151:0, v1152:0, 0, 2 * v1156:0, 1, v1156:0, v1157:0, v1158:0, v1159:0, v1160:0, v1161:0, v1162:0, v1163:0, 3, 4) :|: 3 < 2 * v1156:0 && v1152:0 > 2 * v1156:0 && v1152:0 > 2 Filtered unneeded arguments: f_565(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22) -> f_565(x9, x11) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_565(v1152:0, v1156:0) -> f_565(v1152:0, 2 * v1156:0) :|: v1152:0 > 2 * v1156:0 && v1152:0 > 2 && 3 < 2 * v1156:0 ---------------------------------------- (108) Obligation: Rules: f_565(v1152:0, v1156:0) -> f_565(v1152:0, 2 * v1156:0) :|: v1152:0 > 2 * v1156:0 && v1152:0 > 2 && 3 < 2 * v1156:0 ---------------------------------------- (109) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (110) Obligation: Rules: f_565(v1152:0:0, v1156:0:0) -> f_565(v1152:0:0, 2 * v1156:0:0) :|: v1152:0:0 > 2 * v1156:0:0 && v1152:0:0 > 2 && 3 < 2 * v1156:0:0 ---------------------------------------- (111) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_565 ] = 1/4*f_565_1 + -1/2*f_565_2 The following rules are decreasing: f_565(v1152:0:0, v1156:0:0) -> f_565(v1152:0:0, 2 * v1156:0:0) :|: v1152:0:0 > 2 * v1156:0:0 && v1152:0:0 > 2 && 3 < 2 * v1156:0:0 The following rules are bounded: f_565(v1152:0:0, v1156:0:0) -> f_565(v1152:0:0, 2 * v1156:0:0) :|: v1152:0:0 > 2 * v1156:0:0 && v1152:0:0 > 2 && 3 < 2 * v1156:0:0 ---------------------------------------- (112) YES