8.26/3.06 NO 8.49/3.08 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 8.49/3.08 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 8.49/3.08 8.49/3.08 8.49/3.08 Termination of the given C Problem could be disproven: 8.49/3.08 8.49/3.08 (0) C Problem 8.49/3.08 (1) CToLLVMProof [EQUIVALENT, 173 ms] 8.49/3.08 (2) LLVM problem 8.49/3.08 (3) LLVMToTerminationGraphProof [EQUIVALENT, 581 ms] 8.49/3.08 (4) LLVM Symbolic Execution Graph 8.49/3.08 (5) LLVMNonterminationProof [COMPLETE, 203 ms] 8.49/3.08 (6) NO 8.49/3.08 8.49/3.08 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (0) 8.49/3.08 Obligation: 8.49/3.08 c file /export/starexec/sandbox/benchmark/theBenchmark.c 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (1) CToLLVMProof (EQUIVALENT) 8.49/3.08 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (2) 8.49/3.08 Obligation: 8.49/3.08 LLVM Problem 8.49/3.08 8.49/3.08 Aliases: 8.49/3.08 8.49/3.08 Data layout: 8.49/3.08 8.49/3.08 "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" 8.49/3.08 8.49/3.08 Machine: 8.49/3.08 8.49/3.08 "x86_64-pc-linux-gnu" 8.49/3.08 8.49/3.08 Type definitions: 8.49/3.08 8.49/3.08 Global variables: 8.49/3.08 8.49/3.08 Function declarations and definitions: 8.49/3.08 8.49/3.08 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 8.49/3.08 0: 8.49/3.08 %1 = alloca i32, align 4 8.49/3.08 %x = alloca *i32, align 8 8.49/3.08 store 0, %1 8.49/3.08 %2 = alloca i8, numElementsLit: 4 8.49/3.08 %3 = bitcast *i8 %2 to *i32 8.49/3.08 store %3, %x 8.49/3.08 br %4 8.49/3.08 4: 8.49/3.08 %5 = load %x 8.49/3.08 %6 = load %5 8.49/3.08 %7 = icmp ne %6 0 8.49/3.08 br %7, %8, %38 8.49/3.08 8: 8.49/3.08 %9 = load %x 8.49/3.08 %10 = load %9 8.49/3.08 %11 = icmp sle -5 %10 8.49/3.08 br %11, %12, %35 8.49/3.08 12: 8.49/3.08 %13 = load %x 8.49/3.08 %14 = load %13 8.49/3.08 %15 = icmp sle %14 35 8.49/3.08 br %15, %16, %35 8.49/3.08 16: 8.49/3.08 %17 = load %x 8.49/3.08 %18 = load %17 8.49/3.08 %19 = icmp slt %18 0 8.49/3.08 br %19, %20, %22 8.49/3.08 20: 8.49/3.08 %21 = load %x 8.49/3.08 store -5, %21 8.49/3.08 br %34 8.49/3.08 22: 8.49/3.08 %23 = load %x 8.49/3.08 %24 = load %23 8.49/3.08 %25 = icmp sgt %24 30 8.49/3.08 br %25, %26, %28 8.49/3.08 26: 8.49/3.08 %27 = load %x 8.49/3.08 store 35, %27 8.49/3.08 br %33 8.49/3.08 28: 8.49/3.08 %29 = load %x 8.49/3.08 %30 = load %29 8.49/3.08 %31 = sub %30 1 8.49/3.08 %32 = load %x 8.49/3.08 store %31, %32 8.49/3.08 br %33 8.49/3.08 33: 8.49/3.08 br %34 8.49/3.08 34: 8.49/3.08 br %37 8.49/3.08 35: 8.49/3.08 %36 = load %x 8.49/3.08 store 0, %36 8.49/3.08 br %37 8.49/3.08 37: 8.49/3.08 br %4 8.49/3.08 38: 8.49/3.08 %39 = load %1 8.49/3.08 ret %39 8.49/3.08 8.49/3.08 8.49/3.08 Analyze Termination of all function calls matching the pattern: 8.49/3.08 main() 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (3) LLVMToTerminationGraphProof (EQUIVALENT) 8.49/3.08 Constructed symbolic execution graph for LLVM program and proved memory safety. 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (4) 8.49/3.08 Obligation: 8.49/3.08 SE Graph 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (5) LLVMNonterminationProof (COMPLETE) 8.49/3.08 Proved nontermination with the following witness: 8.49/3.08 8.49/3.08 State #143 with references set to {}. 8.49/3.08 Nondeterministic instruction %1 = alloca i32, align 4 in node #143 yields value 119. 8.49/3.08 Nondeterministic instruction %x = alloca *i32, align 8 in node #144 yields value 41. 8.49/3.08 Nondeterministic instruction %2 = alloca i8, numElementsLit: 4 in node #146 yields value 89. 8.49/3.08 8.49/3.08 ---------------------------------------- 8.49/3.08 8.49/3.08 (6) 8.49/3.08 NO 8.49/3.12 EOF