6.51/2.77 MAYBE 6.51/2.78 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 6.51/2.78 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.51/2.78 6.51/2.78 6.51/2.78 Termination of the given C Problem could not be shown: 6.51/2.78 6.51/2.78 (0) C Problem 6.51/2.78 (1) CToLLVMProof [EQUIVALENT, 174 ms] 6.51/2.78 (2) LLVM problem 6.51/2.78 6.51/2.78 6.51/2.78 ---------------------------------------- 6.51/2.78 6.51/2.78 (0) 6.51/2.78 Obligation: 6.51/2.78 c file /export/starexec/sandbox/benchmark/theBenchmark.c 6.51/2.78 ---------------------------------------- 6.51/2.78 6.51/2.78 (1) CToLLVMProof (EQUIVALENT) 6.51/2.78 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 6.51/2.78 ---------------------------------------- 6.51/2.78 6.51/2.78 (2) 6.51/2.78 Obligation: 6.51/2.78 LLVM Problem 6.51/2.78 6.51/2.78 Aliases: 6.51/2.78 6.51/2.78 Data layout: 6.51/2.78 6.51/2.78 "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" 6.51/2.78 6.51/2.78 Machine: 6.51/2.78 6.51/2.78 "x86_64-pc-linux-gnu" 6.51/2.78 6.51/2.78 Type definitions: 6.51/2.78 6.51/2.78 Global variables: 6.51/2.78 6.51/2.78 Function declarations and definitions: 6.51/2.78 6.51/2.78 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.51/2.78 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.51/2.78 0: 6.51/2.78 %1 = alloca i32, align 4 6.51/2.78 %i = alloca i32, align 4 6.51/2.78 %j = alloca i32, align 4 6.51/2.78 %length = alloca i32, align 4 6.51/2.78 %fac = alloca i32, align 4 6.51/2.78 %arr = alloca *i32, align 8 6.51/2.78 %arr2 = alloca *i32, align 8 6.51/2.78 store 0, %1 6.51/2.78 %2 = call i32 @__VERIFIER_nondet_int() 6.51/2.78 store %2, %length 6.51/2.78 %3 = load %length 6.51/2.78 %4 = icmp slt %3 1 6.51/2.78 br %4, %5, %6 6.51/2.78 5: 6.51/2.78 store 1, %length 6.51/2.78 br %6 6.51/2.78 6: 6.51/2.78 %7 = call i32 @__VERIFIER_nondet_int() 6.51/2.78 store %7, %fac 6.51/2.78 %8 = load %fac 6.51/2.78 %9 = icmp slt %8 1 6.51/2.78 br %9, %10, %11 6.51/2.78 10: 6.51/2.78 store 1, %fac 6.51/2.78 br %11 6.51/2.78 11: 6.51/2.78 %12 = load %length 6.51/2.78 %13 = sext i32 %12 to i64 6.51/2.78 %14 = mul %13 4 6.51/2.78 %15 = alloca i8, numElementsLit: %14 6.51/2.78 %16 = bitcast *i8 %15 to *i32 6.51/2.78 store %16, %arr 6.51/2.78 %17 = load %fac 6.51/2.78 %18 = load %length 6.51/2.78 %19 = mul %17 %18 6.51/2.78 %20 = sext i32 %19 to i64 6.51/2.78 %21 = mul %20 4 6.51/2.78 %22 = alloca i8, numElementsLit: %21 6.51/2.78 %23 = bitcast *i8 %22 to *i32 6.51/2.78 store %23, %arr2 6.51/2.78 %24 = load %arr 6.51/2.78 %25 = icmp ne %24 null 6.51/2.78 br %25, %26, %29 6.51/2.78 26: 6.51/2.78 %27 = load %arr2 6.51/2.78 %28 = icmp ne %27 null 6.51/2.78 br %28, %30, %29 6.51/2.78 29: 6.51/2.78 store 0, %1 6.51/2.78 br %67 6.51/2.78 30: 6.51/2.78 store 0, %i 6.51/2.78 br %31 6.51/2.78 31: 6.51/2.78 %32 = load %i 6.51/2.78 %33 = load %length 6.51/2.78 %34 = icmp slt %32 %33 6.51/2.78 br %34, %35, %44 6.51/2.78 35: 6.51/2.78 %36 = call i32 @__VERIFIER_nondet_int() 6.51/2.78 %37 = load %i 6.51/2.78 %38 = sext i32 %37 to i64 6.51/2.78 %39 = load %arr 6.51/2.78 %40 = getelementptr %39, %38 6.51/2.78 store %36, %40 6.51/2.78 br %41 6.51/2.78 41: 6.51/2.78 %42 = load %i 6.51/2.78 %43 = add %42 1 6.51/2.78 store %43, %i 6.51/2.78 br %31 6.51/2.78 44: 6.51/2.78 store 0, %j 6.51/2.78 br %45 6.51/2.78 45: 6.51/2.78 %46 = load %j 6.51/2.78 %47 = load %length 6.51/2.78 %48 = load %fac 6.51/2.78 %49 = mul %47 %48 6.51/2.78 %50 = icmp slt %46 %49 6.51/2.78 br %50, %51, %66 6.51/2.78 51: 6.51/2.78 %52 = load %i 6.51/2.78 %53 = load %length 6.51/2.78 %54 = srem %52 %53 6.51/2.78 %55 = sext i32 %54 to i64 6.51/2.78 %56 = load %arr 6.51/2.78 %57 = getelementptr %56, %55 6.51/2.78 %58 = load %57 6.51/2.78 %59 = load %j 6.51/2.78 %60 = sext i32 %59 to i64 6.51/2.78 %61 = load %arr2 6.51/2.78 %62 = getelementptr %61, %60 6.51/2.78 store %58, %62 6.51/2.78 br %63 6.51/2.78 63: 6.51/2.78 %64 = load %j 6.51/2.78 %65 = add %64 1 6.51/2.78 store %65, %j 6.51/2.78 br %45 6.51/2.78 66: 6.51/2.78 store 0, %1 6.51/2.78 br %67 6.51/2.78 67: 6.51/2.78 %68 = load %1 6.51/2.78 ret %68 6.51/2.78 6.51/2.78 6.51/2.78 Analyze Termination of all function calls matching the pattern: 6.51/2.78 main() 6.78/2.83 EOF