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