/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 178 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 49.1 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) AND (7) LLVM Symbolic Execution SCC (8) SCC2IRS [SOUND, 75 ms] (9) IntTRS (10) IRS2T2 [EQUIVALENT, 0 ms] (11) T2IntSys (12) T2 [EQUIVALENT, 933 ms] (13) YES (14) LLVM Symbolic Execution SCC (15) SCC2IRS [SOUND, 112 ms] (16) IntTRS (17) IRS2T2 [EQUIVALENT, 4 ms] (18) T2IntSys (19) T2 [EQUIVALENT, 642 ms] (20) YES (21) LLVM Symbolic Execution SCC (22) SCC2IRS [SOUND, 99 ms] (23) IntTRS (24) IRS2T2 [EQUIVALENT, 0 ms] (25) T2IntSys (26) T2 [EQUIVALENT, 714 ms] (27) YES (28) LLVM Symbolic Execution SCC (29) SCC2IRS [SOUND, 49 ms] (30) IntTRS (31) IRS2T2 [EQUIVALENT, 0 ms] (32) T2IntSys (33) T2 [EQUIVALENT, 1102 ms] (34) 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: "cstpncpy" linkageType: EXTERNALLY_VISIBLE returnParam: *i8 parameters: (dst *i8, src *i8, n i64) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca *i8, align 8 %2 = alloca *i8, align 8 %3 = alloca i64, align 8 %d = alloca *i8, align 8 %s = alloca *i8, align 8 store %dst, %1 store %src, %2 store %n, %3 %4 = load %3 %5 = icmp ne %4 0 br %5, %6, %37 6: %7 = load %1 store %7, %d %8 = load %2 store %8, %s %9 = load %3 %10 = load %1 %11 = getelementptr %10, %9 store %11, %1 br %12 12: %13 = load %s %14 = getelementptr %13, 1 store %14, %s %15 = load %13 %16 = load %d %17 = getelementptr %16, 1 store %17, %d store %15, %16 %18 = sext i8 %15 to i32 %19 = icmp eq %18 0 br %19, %20, %31 20: %21 = load %d %22 = getelementptr %21, -1 store %22, %1 br %23 23: %24 = load %3 %25 = add %24 -1 store %25, %3 %26 = icmp ne %25 0 br %26, %27, %30 27: %28 = load %d %29 = getelementptr %28, 1 store %29, %d store 0, %28 br %23 30: br %36 31: br %32 32: %33 = load %3 %34 = add %33 -1 store %34, %3 %35 = icmp ne %34 0 br %35, %12, %36 36: br %37 37: %38 = load %1 ret %38 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %length = alloca i32, align 4 %n = alloca i32, align 4 %nondetArea = alloca *i8, align 8 %nondetString = alloca *i8, align 8 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() store %2, %length %3 = call i32 @__VERIFIER_nondet_int() store %3, %n %4 = load %length %5 = icmp slt %4 1 br %5, %6, %7 6: store 1, %length br %7 7: %8 = load %n %9 = icmp slt %8 1 br %9, %10, %11 10: store 1, %n br %11 11: %12 = load %n %13 = sext i32 %12 to i64 %14 = mul %13 1 %15 = alloca i8, numElementsLit: %14 store %15, %nondetArea %16 = load %length %17 = sext i32 %16 to i64 %18 = mul %17 1 %19 = alloca i8, numElementsLit: %18 store %19, %nondetString %20 = load %length %21 = sub %20 1 %22 = sext i32 %21 to i64 %23 = load %nondetString %24 = getelementptr %23, %22 store 0, %24 %25 = load %nondetArea %26 = load %nondetString %27 = load %n %28 = sext i32 %27 to i64 %29 = call *i8 @cstpncpy(*i8 %25, *i8 %26, i64 %28) ret 0 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 4 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 12 rulesP rules: f_996(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_997(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: 1 + v4898 = v4852 && 0 <= v4898 f_997(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_998(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: TRUE f_998(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_999(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: v4898 != 0 && 2 <= v4852 && 4 <= v4849 && 3 <= v4850 && 4 <= v4868 f_999(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_1001(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: 0 = 0 f_1001(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_1003(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: TRUE f_1003(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_1005(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8) :|: 0 = 0 f_1005(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8) -> f_1007(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) :|: v5112 = 1 + v4854 && 5 <= v5112 f_1007(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) -> f_1009(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) :|: TRUE f_1009(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) -> f_1011(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) :|: TRUE f_1011(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) -> f_1013(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) :|: TRUE f_1013(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4853, v4860, v4861, 3, 7, 4, 2, 8, 5) -> f_995(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4898, v4854, v5112, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: TRUE f_995(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4851, v4852, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) -> f_996(v4834, v4835, v4836, v4837, v4838, v4839, v4840, v4841, 1, v4843, v4844, v4845, 0, v4847, v4848, v4849, v4850, v4852, v4853, v4854, v4855, v4863, v4856, v4864, v4857, v4865, v4858, v4866, v4859, v4867, v4868, v4862, v4869, v4870, v4871, v4872, v4873, v4878, v4877, v4879, v4876, v4874, v4880, v4875, v4860, v4861, 3, 7, 4, 2, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_996(v4834:0, v4835:0, v4836:0, v4837:0, v4838:0, v4839:0, v4840:0, v4841:0, 1, v4843:0, v4844:0, v4845:0, 0, v4847:0, v4848:0, v4849:0, v4850:0, 1 + v4898:0, v4853:0, v4854:0, v4855:0, v4863:0, v4856:0, v4864:0, v4857:0, v4865:0, v4858:0, v4866:0, v4859:0, v4867:0, v4868:0, v4862:0, v4869:0, v4870:0, v4871:0, v4872:0, v4873:0, v4878:0, v4877:0, v4879:0, v4876:0, v4874:0, v4880:0, v4875:0, v4860:0, v4861:0, 3, 7, 4, 2, 8) -> f_996(v4834:0, v4835:0, v4836:0, v4837:0, v4838:0, v4839:0, v4840:0, v4841:0, 1, v4843:0, v4844:0, v4845:0, 0, v4847:0, v4848:0, v4849:0, v4850:0, v4898:0, v4854:0, 1 + v4854:0, v4855:0, v4863:0, v4856:0, v4864:0, v4857:0, v4865:0, v4858:0, v4866:0, v4859:0, v4867:0, v4868:0, v4862:0, v4869:0, v4870:0, v4871:0, v4872:0, v4873:0, v4878:0, v4877:0, v4879:0, v4876:0, v4874:0, v4880:0, v4875:0, v4860:0, v4861:0, 3, 7, 4, 2, 8) :|: v4898:0 > 0 && v4849:0 > 3 && v4850:0 > 2 && v4854:0 > 3 && v4868:0 > 3 Filtered unneeded arguments: f_996(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51) -> f_996(x16, x17, x18, x20, x31) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_996(v4849:0, v4850:0, sum~cons_1~v4898:0, v4854:0, v4868:0) -> f_996(v4849:0, v4850:0, v4898:0, 1 + v4854:0, v4868:0) :|: v4849:0 > 3 && v4898:0 > 0 && v4850:0 > 2 && v4868:0 > 3 && v4854:0 > 3 && sum~cons_1~v4898:0 = 1 + v4898:0 ---------------------------------------- (9) Obligation: Rules: f_996(v4849:0, v4850:0, sum~cons_1~v4898:0, v4854:0, v4868:0) -> f_996(v4849:0, v4850:0, v4898:0, 1 + v4854:0, v4868:0) :|: v4849:0 > 3 && v4898:0 > 0 && v4850:0 > 2 && v4868:0 > 3 && v4854:0 > 3 && sum~cons_1~v4898:0 = 1 + v4898:0 ---------------------------------------- (10) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_996_5,1) ---------------------------------------- (11) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX0 > 3 && oldX5 > 0 && oldX1 > 2 && oldX4 > 3 && oldX3 > 3 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX3; x4 := oldX4; TO: 1; ---------------------------------------- (12) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: x2 RF for loc. 6: x2 Bound for (chained) transitions 3: 2 Bound for (chained) transitions 4: 2 - Rank function 2: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC ---------------------------------------- (15) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 20 rulesP rules: f_942(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_945(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: v3946 = 1 + v3915 && 4 <= v3946 f_945(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_947(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_947(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_948(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3917, v3918, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_948(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3917, v3918, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_949(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 f_949(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_950(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: v4108 = 1 + v3918 && 4 <= v4108 f_950(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_951(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_951(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_952(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_952(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, v3916, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_953(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 f_953(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_955(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: v4106 != 0 && v3915 < v3929 && 4 <= v3929 f_955(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_957(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 f_957(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_959(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_959(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_961(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_961(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_963(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 f_963(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_965(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 1 + v4181 = v3921 && 0 <= v4181 f_965(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_967(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_967(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_969(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: v4181 != 0 && 2 <= v3921 && 4 <= v3935 f_969(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_972(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 f_972(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_975(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_975(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3916, v3917, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_939(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3946, v4106, v3918, v4108, 0, v3921, v4181, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: TRUE f_939(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3914, v3915, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) -> f_942(v3904, v3905, v3906, v3907, v3908, v3909, v3910, v3911, 1, v3913, v3915, v3916, v3917, v3918, 0, v3920, v3921, v3922, v3930, v3923, v3931, v3924, v3932, v3925, v3933, v3926, v3934, v3935, v3929, v3936, v3937, v3938, v3939, v3940, v3943, v3914, v3927, v3941, v3944, v3942, v3928, 3, 7, 4, 2, 8) :|: 0 = 0 Combined rules. Obtained 2 rulesP rules: f_942(v3904:0, v3905:0, v3906:0, v3907:0, v3908:0, v3909:0, v3910:0, v3911:0, 1, v3913:0, v3915:0, v3916:0, v3917:0, v3918:0, 0, v3920:0, 1 + v4181:0, v3922:0, v3930:0, v3923:0, v3931:0, v3924:0, v3932:0, v3925:0, v3933:0, v3926:0, v3934:0, v3935:0, v3929:0, v3936:0, v3937:0, v3938:0, v3939:0, v3940:0, v3943:0, v3914:0, v3927:0, v3941:0, v3944:0, v3942:0, v3928:0, 3, 7, 4, 2, 8) -> f_942(v3904:0, v3905:0, v3906:0, v3907:0, v3908:0, v3909:0, v3910:0, v3911:0, 1, v3913:0, 1 + v3915:0, v4106:0, v3918:0, 1 + v3918:0, 0, 1 + v4181:0, v4181:0, v3922:0, v3930:0, v3923:0, v3931:0, v3924:0, v3932:0, v3925:0, v3933:0, v3926:0, v3934:0, v3935:0, v3929:0, v3936:0, v3937:0, v3938:0, v3939:0, v3940:0, v3943:0, v3915:0, v3927:0, v3941:0, v3944:0, v3942:0, v3928:0, 3, 7, 4, 2, 8) :|: v4181:0 > 0 && v3915:0 > 2 && v3918:0 > 2 && v3929:0 > v3915:0 && v4106:0 < 0 && v3929:0 > 3 && v3935:0 > 3 f_942(v3904:0, v3905:0, v3906:0, v3907:0, v3908:0, v3909:0, v3910:0, v3911:0, 1, v3913:0, v3915:0, v3916:0, v3917:0, v3918:0, 0, v3920:0, 1 + v4181:0, v3922:0, v3930:0, v3923:0, v3931:0, v3924:0, v3932:0, v3925:0, v3933:0, v3926:0, v3934:0, v3935:0, v3929:0, v3936:0, v3937:0, v3938:0, v3939:0, v3940:0, v3943:0, v3914:0, v3927:0, v3941:0, v3944:0, v3942:0, v3928:0, 3, 7, 4, 2, 8) -> f_942(v3904:0, v3905:0, v3906:0, v3907:0, v3908:0, v3909:0, v3910:0, v3911:0, 1, v3913:0, 1 + v3915:0, v4106:0, v3918:0, 1 + v3918:0, 0, 1 + v4181:0, v4181:0, v3922:0, v3930:0, v3923:0, v3931:0, v3924:0, v3932:0, v3925:0, v3933:0, v3926:0, v3934:0, v3935:0, v3929:0, v3936:0, v3937:0, v3938:0, v3939:0, v3940:0, v3943:0, v3915:0, v3927:0, v3941:0, v3944:0, v3942:0, v3928:0, 3, 7, 4, 2, 8) :|: v4181:0 > 0 && v3915:0 > 2 && v3918:0 > 2 && v3929:0 > v3915:0 && v4106:0 > 0 && v3929:0 > 3 && v3935:0 > 3 Filtered unneeded arguments: f_942(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46) -> f_942(x11, x14, x17, x28, x29) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_942(v3915:0, v3918:0, sum~cons_1~v4181:0, v3935:0, v3929:0) -> f_942(1 + v3915:0, 1 + v3918:0, v4181:0, v3935:0, v3929:0) :|: v3915:0 > 2 && v4181:0 > 0 && v3918:0 > 2 && v3929:0 > v3915:0 && v3935:0 > 3 && v3929:0 > 3 && sum~cons_1~v4181:0 = 1 + v4181:0 ---------------------------------------- (16) Obligation: Rules: f_942(v3915:0, v3918:0, sum~cons_1~v4181:0, v3935:0, v3929:0) -> f_942(1 + v3915:0, 1 + v3918:0, v4181:0, v3935:0, v3929:0) :|: v3915:0 > 2 && v4181:0 > 0 && v3918:0 > 2 && v3929:0 > v3915:0 && v3935:0 > 3 && v3929:0 > 3 && sum~cons_1~v4181:0 = 1 + v4181:0 ---------------------------------------- (17) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_942_5,1) ---------------------------------------- (18) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX0 > 2 && oldX5 > 0 && oldX1 > 2 && oldX4 > oldX0 && oldX3 > 3 && oldX4 > 3 && oldX2 = 1 + oldX5); x0 := 1 + oldX0; x1 := 1 + oldX1; x2 := oldX2 - 1; x3 := oldX3; x4 := oldX4; TO: 1; ---------------------------------------- (19) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1-x0+x2+x4 RF for loc. 6: -x0+x2+x4 Bound for (chained) transitions 3: 3 - Rank function 2: RF for loc. 5: 2*x2 RF for loc. 6: -1+2*x2 Bound for (chained) transitions 4: 3 - Rank function 3: RF for loc. 5: 0 RF for loc. 6: -1 Bound for (chained) transitions 1: 0 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: SCC ---------------------------------------- (22) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 12 rulesP rules: f_864(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_868(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: 1 + v2868 = v2642 && 0 <= v2868 f_868(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_872(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: TRUE f_872(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_876(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: v2868 != 0 && 2 <= v2642 && 4 <= v2658 f_876(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_881(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: 0 = 0 f_881(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_886(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: TRUE f_886(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_891(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: 0 = 0 f_891(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_897(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) :|: v3134 = 1 + v2644 && 5 <= v3134 f_897(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) -> f_903(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) :|: TRUE f_903(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) -> f_908(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) :|: TRUE f_908(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) -> f_913(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) :|: TRUE f_913(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2643, v2650, v2664, v2651, 3, 7, 4, 2, 8, 5) -> f_860(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2868, v2644, v3134, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: TRUE f_860(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2641, v2642, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) -> f_864(v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, 1, v2637, v2638, 0, v2640, v2642, v2643, v2644, v2645, v2653, v2646, v2654, v2647, v2655, v2648, v2656, v2649, v2657, v2658, v2652, v2659, v2660, v2661, v2662, v2663, v2650, v2664, v2651, 3, 7, 4, 2, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_864(v2628:0, v2629:0, v2630:0, v2631:0, v2632:0, v2633:0, v2634:0, v2635:0, 1, v2637:0, v2638:0, 0, v2640:0, 1 + v2868:0, v2643:0, v2644:0, v2645:0, v2653:0, v2646:0, v2654:0, v2647:0, v2655:0, v2648:0, v2656:0, v2649:0, v2657:0, v2658:0, v2652:0, v2659:0, v2660:0, v2661:0, v2662:0, v2663:0, v2650:0, v2664:0, v2651:0, 3, 7, 4, 2, 8) -> f_864(v2628:0, v2629:0, v2630:0, v2631:0, v2632:0, v2633:0, v2634:0, v2635:0, 1, v2637:0, v2638:0, 0, v2640:0, v2868:0, v2644:0, 1 + v2644:0, v2645:0, v2653:0, v2646:0, v2654:0, v2647:0, v2655:0, v2648:0, v2656:0, v2649:0, v2657:0, v2658:0, v2652:0, v2659:0, v2660:0, v2661:0, v2662:0, v2663:0, v2650:0, v2664:0, v2651:0, 3, 7, 4, 2, 8) :|: v2868:0 > 0 && v2644:0 > 3 && v2658:0 > 3 Filtered unneeded arguments: f_864(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41) -> f_864(x14, x16, x27) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_864(sum~cons_1~v2868:0, v2644:0, v2658:0) -> f_864(v2868:0, 1 + v2644:0, v2658:0) :|: v2644:0 > 3 && v2658:0 > 3 && v2868:0 > 0 && sum~cons_1~v2868:0 = 1 + v2868:0 ---------------------------------------- (23) Obligation: Rules: f_864(sum~cons_1~v2868:0, v2644:0, v2658:0) -> f_864(v2868:0, 1 + v2644:0, v2658:0) :|: v2644:0 > 3 && v2658:0 > 3 && v2868:0 > 0 && sum~cons_1~v2868:0 = 1 + v2868:0 ---------------------------------------- (24) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_864_3,1) ---------------------------------------- (25) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := oldX0 - 1; assume(oldX1 > 3 && oldX2 > 3 && oldX3 > 0 && oldX0 = 1 + oldX3); x0 := oldX0 - 1; x1 := 1 + oldX1; x2 := oldX2; TO: 1; ---------------------------------------- (26) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x0 RF for loc. 6: 2*x0 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 1+2*x0 RF for loc. 6: 2*x0 Bound for (chained) transitions 3: 4 - Rank function 3: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: SCC ---------------------------------------- (29) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 12 rulesP rules: f_791(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) -> f_797(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) :|: 1 + v1880 = v1750 && 0 <= v1880 f_797(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) -> f_803(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) :|: TRUE f_803(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) -> f_810(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) :|: v1880 != 0 && 2 <= v1750 && 3 <= v1764 && 3 <= v1738 && 4 <= v1745 f_810(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) -> f_818(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) :|: 0 = 0 f_818(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) -> f_827(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) :|: TRUE f_827(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 4, 2, 8) -> f_836(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) :|: 0 = 0 f_836(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) -> f_845(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) :|: v2513 = 1 + v1752 && 4 <= v2513 f_845(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) -> f_851(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) :|: TRUE f_851(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) -> f_857(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) :|: TRUE f_857(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) -> f_863(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) :|: TRUE f_863(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1751, v1758, 3, 7, 4, 2, 8) -> f_785(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1880, v1752, v2513, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) :|: TRUE f_785(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1749, v1750, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) -> f_791(v1736, v1737, v1738, v1739, v1740, v1741, v1742, v1743, 1, v1745, v1746, 0, v1748, v1750, v1751, v1752, v1753, v1759, v1754, v1760, v1755, v1761, v1756, v1762, v1757, v1763, v1764, v1765, v1766, v1767, v1768, v1769, v1758, 3, 7, 2, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_791(v1736:0, v1737:0, v1738:0, v1739:0, v1740:0, v1741:0, v1742:0, v1743:0, 1, v1745:0, v1746:0, 0, v1748:0, 1 + v1880:0, v1751:0, v1752:0, v1753:0, v1759:0, v1754:0, v1760:0, v1755:0, v1761:0, v1756:0, v1762:0, v1757:0, v1763:0, v1764:0, v1765:0, v1766:0, v1767:0, v1768:0, v1769:0, v1758:0, 3, 7, 2, 4, 8) -> f_791(v1736:0, v1737:0, v1738:0, v1739:0, v1740:0, v1741:0, v1742:0, v1743:0, 1, v1745:0, v1746:0, 0, v1748:0, v1880:0, v1752:0, 1 + v1752:0, v1753:0, v1759:0, v1754:0, v1760:0, v1755:0, v1761:0, v1756:0, v1762:0, v1757:0, v1763:0, v1764:0, v1765:0, v1766:0, v1767:0, v1768:0, v1769:0, v1758:0, 3, 7, 2, 4, 8) :|: v1880:0 > 0 && v1764:0 > 2 && v1738:0 > 2 && v1752:0 > 2 && v1745:0 > 3 Filtered unneeded arguments: f_791(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38) -> f_791(x3, x10, x14, x16, x27) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_791(v1738:0, v1745:0, sum~cons_1~v1880:0, v1752:0, v1764:0) -> f_791(v1738:0, v1745:0, v1880:0, 1 + v1752:0, v1764:0) :|: v1764:0 > 2 && v1880:0 > 0 && v1738:0 > 2 && v1745:0 > 3 && v1752:0 > 2 && sum~cons_1~v1880:0 = 1 + v1880:0 ---------------------------------------- (30) Obligation: Rules: f_791(v1738:0, v1745:0, sum~cons_1~v1880:0, v1752:0, v1764:0) -> f_791(v1738:0, v1745:0, v1880:0, 1 + v1752:0, v1764:0) :|: v1764:0 > 2 && v1880:0 > 0 && v1738:0 > 2 && v1745:0 > 3 && v1752:0 > 2 && sum~cons_1~v1880:0 = 1 + v1880:0 ---------------------------------------- (31) IRS2T2 (EQUIVALENT) Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: (f_791_5,1) ---------------------------------------- (32) Obligation: START: 0; FROM: 0; TO: 1; FROM: 1; oldX0 := x0; oldX1 := x1; oldX2 := x2; oldX3 := x3; oldX4 := x4; oldX5 := oldX2 - 1; assume(oldX4 > 2 && oldX5 > 0 && oldX0 > 2 && oldX1 > 3 && oldX3 > 2 && oldX2 = 1 + oldX5); x0 := oldX0; x1 := oldX1; x2 := oldX2 - 1; x3 := 1 + oldX3; x4 := oldX4; TO: 1; ---------------------------------------- (33) T2 (EQUIVALENT) Initially, performed program simplifications using lexicographic rank functions: * Removed transitions 1, 3, 4 using the following rank functions: - Rank function 1: RF for loc. 5: 1+2*x2 RF for loc. 6: 2*x2 Bound for (chained) transitions 3: 4 Bound for (chained) transitions 4: 4 - Rank function 2: RF for loc. 5: 1 RF for loc. 6: 0 Bound for (chained) transitions 1: 1 ---------------------------------------- (34) YES