5.27/2.41 MAYBE 5.39/2.42 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 5.39/2.42 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.39/2.42 5.39/2.42 5.39/2.42 Termination of the given C Problem could not be shown: 5.39/2.42 5.39/2.42 (0) C Problem 5.39/2.42 (1) CToLLVMProof [EQUIVALENT, 170 ms] 5.39/2.42 (2) LLVM problem 5.39/2.42 5.39/2.42 5.39/2.42 ---------------------------------------- 5.39/2.42 5.39/2.42 (0) 5.39/2.42 Obligation: 5.39/2.42 c file /export/starexec/sandbox/benchmark/theBenchmark.c 5.39/2.42 ---------------------------------------- 5.39/2.42 5.39/2.42 (1) CToLLVMProof (EQUIVALENT) 5.39/2.42 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 5.39/2.42 ---------------------------------------- 5.39/2.42 5.39/2.42 (2) 5.39/2.42 Obligation: 5.39/2.42 LLVM Problem 5.39/2.42 5.39/2.42 Aliases: 5.39/2.42 5.39/2.42 Data layout: 5.39/2.42 5.39/2.42 "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" 5.39/2.42 5.39/2.42 Machine: 5.39/2.42 5.39/2.42 "x86_64-pc-linux-gnu" 5.39/2.42 5.39/2.42 Type definitions: 5.39/2.42 5.39/2.42 Global variables: 5.39/2.42 5.39/2.42 Function declarations and definitions: 5.39/2.42 5.39/2.42 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.39/2.42 *BasicFunctionTypename: "selection" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (a *i32, N i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.39/2.42 0: 5.39/2.42 %1 = alloca *i32, align 8 5.39/2.42 %2 = alloca i32, align 4 5.39/2.42 %i = alloca i32, align 4 5.39/2.42 %j = alloca i32, align 4 5.39/2.42 %min = alloca i32, align 4 5.39/2.42 %t = alloca i32, align 4 5.39/2.42 store %a, %1 5.39/2.42 store %N, %2 5.39/2.42 store 1, %i 5.39/2.42 br %3 5.39/2.42 3: 5.39/2.42 %4 = load %i 5.39/2.42 %5 = load %2 5.39/2.42 %6 = icmp slt %4 %5 5.39/2.42 br %6, %7, %56 5.39/2.42 7: 5.39/2.42 %8 = load %i 5.39/2.42 store %8, %min 5.39/2.42 %9 = load %i 5.39/2.42 %10 = add %9 1 5.39/2.42 store %10, %j 5.39/2.42 br %11 5.39/2.42 11: 5.39/2.42 %12 = load %j 5.39/2.42 %13 = load %2 5.39/2.42 %14 = icmp sle %12 %13 5.39/2.42 br %14, %15, %33 5.39/2.42 15: 5.39/2.42 %16 = load %j 5.39/2.42 %17 = sext i32 %16 to i64 5.39/2.42 %18 = load %1 5.39/2.42 %19 = getelementptr %18, %17 5.39/2.42 %20 = load %19 5.39/2.42 %21 = load %min 5.39/2.42 %22 = sext i32 %21 to i64 5.39/2.42 %23 = load %1 5.39/2.42 %24 = getelementptr %23, %22 5.39/2.42 %25 = load %24 5.39/2.42 %26 = icmp slt %20 %25 5.39/2.42 br %26, %27, %29 5.39/2.42 27: 5.39/2.42 %28 = load %j 5.39/2.42 store %28, %min 5.39/2.42 br %29 5.39/2.42 29: 5.39/2.42 br %30 5.39/2.42 30: 5.39/2.42 %31 = load %j 5.39/2.42 %32 = add %31 1 5.39/2.42 store %32, %j 5.39/2.42 br %11 5.39/2.42 33: 5.39/2.42 %34 = load %min 5.39/2.42 %35 = sext i32 %34 to i64 5.39/2.42 %36 = load %1 5.39/2.42 %37 = getelementptr %36, %35 5.39/2.42 %38 = load %37 5.39/2.42 store %38, %t 5.39/2.42 %39 = load %i 5.39/2.42 %40 = sext i32 %39 to i64 5.39/2.42 %41 = load %1 5.39/2.42 %42 = getelementptr %41, %40 5.39/2.42 %43 = load %42 5.39/2.42 %44 = load %min 5.39/2.42 %45 = sext i32 %44 to i64 5.39/2.42 %46 = load %1 5.39/2.42 %47 = getelementptr %46, %45 5.39/2.42 store %43, %47 5.39/2.42 %48 = load %t 5.39/2.42 %49 = load %i 5.39/2.42 %50 = sext i32 %49 to i64 5.39/2.42 %51 = load %1 5.39/2.42 %52 = getelementptr %51, %50 5.39/2.42 store %48, %52 5.39/2.42 br %53 5.39/2.42 53: 5.39/2.42 %54 = load %i 5.39/2.42 %55 = add %54 1 5.39/2.42 store %55, %i 5.39/2.42 br %3 5.39/2.42 56: 5.39/2.42 ret void 5.39/2.42 5.39/2.42 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 5.39/2.42 0: 5.39/2.42 %1 = alloca i32, align 4 5.39/2.42 %a = alloca *i32, align 8 5.39/2.42 %N = alloca i32, align 4 5.39/2.42 store 0, %1 5.39/2.42 %2 = call i32 @__VERIFIER_nondet_int() 5.39/2.42 store %2, %N 5.39/2.42 %3 = load %a 5.39/2.42 %4 = load %N 5.39/2.42 Unnamed Call-Instruction = call BasicVoidType @selection(*i32 %3, i32 %4) 5.39/2.42 ret 0 5.39/2.42 5.39/2.42 5.39/2.42 Analyze Termination of all function calls matching the pattern: 5.39/2.42 main() 5.51/2.52 EOF