6.53/2.74 NO 6.92/2.83 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 6.92/2.83 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.92/2.83 6.92/2.83 6.92/2.83 Termination of the given C Problem could be disproven: 6.92/2.83 6.92/2.83 (0) C Problem 6.92/2.83 (1) CToLLVMProof [EQUIVALENT, 172 ms] 6.92/2.83 (2) LLVM problem 6.92/2.83 (3) LLVMToTerminationGraphProof [EQUIVALENT, 387 ms] 6.92/2.83 (4) LLVM Symbolic Execution Graph 6.92/2.83 (5) LLVMNonterminationProof [COMPLETE, 144 ms] 6.92/2.83 (6) NO 6.92/2.83 6.92/2.83 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (0) 6.92/2.83 Obligation: 6.92/2.83 c file /export/starexec/sandbox/benchmark/theBenchmark.c 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (1) CToLLVMProof (EQUIVALENT) 6.92/2.83 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (2) 6.92/2.83 Obligation: 6.92/2.83 LLVM Problem 6.92/2.83 6.92/2.83 Aliases: 6.92/2.83 6.92/2.83 Data layout: 6.92/2.83 6.92/2.83 "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.92/2.83 6.92/2.83 Machine: 6.92/2.83 6.92/2.83 "x86_64-pc-linux-gnu" 6.92/2.83 6.92/2.83 Type definitions: 6.92/2.83 6.92/2.83 Global variables: 6.92/2.83 6.92/2.83 Function declarations and definitions: 6.92/2.83 6.92/2.83 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.92/2.83 0: 6.92/2.83 %1 = alloca i32, align 4 6.92/2.83 %x = alloca *i32, align 8 6.92/2.83 store 0, %1 6.92/2.83 %2 = alloca i8, numElementsLit: 4 6.92/2.83 %3 = bitcast *i8 %2 to *i32 6.92/2.83 store %3, %x 6.92/2.83 br %4 6.92/2.83 4: 6.92/2.83 %5 = load %x 6.92/2.83 %6 = load %5 6.92/2.83 %7 = icmp sle %6 10 6.92/2.83 br %7, %8, %18 6.92/2.83 8: 6.92/2.83 %9 = load %x 6.92/2.83 %10 = load %9 6.92/2.83 %11 = icmp sgt %10 6 6.92/2.83 br %11, %12, %17 6.92/2.83 12: 6.92/2.83 %13 = load %x 6.92/2.83 %14 = load %13 6.92/2.83 %15 = add %14 2 6.92/2.83 %16 = load %x 6.92/2.83 store %15, %16 6.92/2.83 br %17 6.92/2.83 17: 6.92/2.83 br %4 6.92/2.83 18: 6.92/2.83 %19 = load %1 6.92/2.83 ret %19 6.92/2.83 6.92/2.83 6.92/2.83 Analyze Termination of all function calls matching the pattern: 6.92/2.83 main() 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (3) LLVMToTerminationGraphProof (EQUIVALENT) 6.92/2.83 Constructed symbolic execution graph for LLVM program and proved memory safety. 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (4) 6.92/2.83 Obligation: 6.92/2.83 SE Graph 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (5) LLVMNonterminationProof (COMPLETE) 6.92/2.83 Proved nontermination with the following witness: 6.92/2.83 6.92/2.83 State #74 with references set to {}. 6.92/2.83 Nondeterministic instruction %1 = alloca i32, align 4 in node #74 yields value 29. 6.92/2.83 Nondeterministic instruction %x = alloca *i32, align 8 in node #75 yields value 8. 6.92/2.83 Nondeterministic instruction %2 = alloca i8, numElementsLit: 4 in node #77 yields value 1. 6.92/2.83 6.92/2.83 ---------------------------------------- 6.92/2.83 6.92/2.83 (6) 6.92/2.83 NO 7.36/2.95 EOF