16.04/5.65 MAYBE 16.04/5.66 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 16.04/5.66 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 16.04/5.66 16.04/5.66 16.04/5.66 Termination of the given C Problem could not be shown: 16.04/5.66 16.04/5.66 (0) C Problem 16.04/5.66 (1) CToLLVMProof [EQUIVALENT, 174 ms] 16.04/5.66 (2) LLVM problem 16.04/5.66 16.04/5.66 16.04/5.66 ---------------------------------------- 16.04/5.66 16.04/5.66 (0) 16.04/5.66 Obligation: 16.04/5.66 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 16.04/5.66 ---------------------------------------- 16.04/5.66 16.04/5.66 (1) CToLLVMProof (EQUIVALENT) 16.04/5.66 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 16.04/5.66 ---------------------------------------- 16.04/5.66 16.04/5.66 (2) 16.04/5.66 Obligation: 16.04/5.66 LLVM Problem 16.04/5.66 16.04/5.66 Aliases: 16.04/5.66 16.04/5.66 Data layout: 16.04/5.66 16.04/5.66 "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" 16.04/5.66 16.04/5.66 Machine: 16.04/5.66 16.04/5.66 "x86_64-pc-linux-gnu" 16.04/5.66 16.04/5.66 Type definitions: 16.04/5.66 16.04/5.66 Global variables: 16.04/5.66 16.04/5.66 Function declarations and definitions: 16.04/5.66 16.04/5.66 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 16.04/5.66 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 16.04/5.66 0: 16.04/5.66 %1 = alloca i32, align 4 16.04/5.66 %y = alloca i32, align 4 16.04/5.66 %m = alloca i32, align 4 16.04/5.66 %x = alloca i32, align 4 16.04/5.66 store 0, %1 16.04/5.66 store 0, %y 16.04/5.66 %2 = call i32 @__VERIFIER_nondet_int() 16.04/5.66 store %2, %m 16.04/5.66 %3 = load %m 16.04/5.66 store %3, %x 16.04/5.66 br %4 16.04/5.66 4: 16.04/5.66 %5 = load %x 16.04/5.66 %6 = icmp sge %5 0 16.04/5.66 br %6, %7, %10 16.04/5.66 7: 16.04/5.66 %8 = load %y 16.04/5.66 %9 = icmp sge %8 0 16.04/5.66 br %10 16.04/5.66 10: 16.04/5.66 %11 = phi [0, %4], [%9, %7] 16.04/5.66 br %11, %12, %34 16.04/5.66 12: 16.04/5.66 %13 = call i32 @__VERIFIER_nondet_int() 16.04/5.66 %14 = icmp ne %13 0 16.04/5.66 br %14, %15, %31 16.04/5.66 15: 16.04/5.66 br %16 16.04/5.66 16: 16.04/5.66 %17 = load %y 16.04/5.66 %18 = load %m 16.04/5.66 %19 = icmp sle %17 %18 16.04/5.66 br %19, %20, %23 16.04/5.66 20: 16.04/5.66 %21 = call i32 @__VERIFIER_nondet_int() 16.04/5.66 %22 = icmp ne %21 0 16.04/5.66 br %23 16.04/5.66 23: 16.04/5.66 %24 = phi [0, %16], [%22, %20] 16.04/5.66 br %24, %25, %28 16.04/5.66 25: 16.04/5.66 %26 = load %y 16.04/5.66 %27 = add %26 1 16.04/5.66 store %27, %y 16.04/5.66 br %16 16.04/5.66 28: 16.04/5.66 %29 = load %x 16.04/5.66 %30 = add %29 -1 16.04/5.66 store %30, %x 16.04/5.66 br %31 16.04/5.66 31: 16.04/5.66 %32 = load %y 16.04/5.66 %33 = add %32 -1 16.04/5.66 store %33, %y 16.04/5.66 br %4 16.04/5.66 34: 16.04/5.66 ret 0 16.04/5.66 16.04/5.66 16.04/5.66 Analyze Termination of all function calls matching the pattern: 16.04/5.66 main() 16.55/6.00 EOF