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