6.41/2.38 NO 6.41/2.40 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 6.41/2.40 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.41/2.40 6.41/2.40 6.41/2.40 Termination of the given C Problem could be disproven: 6.41/2.40 6.41/2.40 (0) C Problem 6.41/2.40 (1) CToLLVMProof [EQUIVALENT, 158 ms] 6.41/2.40 (2) LLVM problem 6.41/2.40 (3) LLVMToTerminationGraphProof [EQUIVALENT, 231 ms] 6.41/2.40 (4) LLVM Symbolic Execution Graph 6.41/2.40 (5) LLVMNonterminationProof [COMPLETE, 109 ms] 6.41/2.40 (6) NO 6.41/2.40 6.41/2.40 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (0) 6.41/2.40 Obligation: 6.41/2.40 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (1) CToLLVMProof (EQUIVALENT) 6.41/2.40 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (2) 6.41/2.40 Obligation: 6.41/2.40 LLVM Problem 6.41/2.40 6.41/2.40 Aliases: 6.41/2.40 6.41/2.40 Data layout: 6.41/2.40 6.41/2.40 "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.41/2.40 6.41/2.40 Machine: 6.41/2.40 6.41/2.40 "x86_64-pc-linux-gnu" 6.41/2.40 6.41/2.40 Type definitions: 6.41/2.40 6.41/2.40 Global variables: 6.41/2.40 6.41/2.40 Function declarations and definitions: 6.41/2.40 6.41/2.40 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 6.41/2.40 0: 6.41/2.40 %1 = alloca i32, align 4 6.41/2.40 %c = alloca i32, align 4 6.41/2.40 %i = alloca i32, align 4 6.41/2.40 store 0, %1 6.41/2.40 store 864, %c 6.41/2.40 %2 = load %c 6.41/2.40 %3 = icmp sle %2 10 6.41/2.40 br %3, %4, %12 6.41/2.40 4: 6.41/2.40 store 0, %i 6.41/2.40 br %5 6.41/2.40 5: 6.41/2.40 %6 = load %i 6.41/2.40 %7 = icmp slt %6 100 6.41/2.40 br %7, %8, %11 6.41/2.40 8: 6.41/2.40 %9 = load %i 6.41/2.40 %10 = add %9 1 6.41/2.40 store %10, %i 6.41/2.40 br %5 6.41/2.40 11: 6.41/2.40 br %43 6.41/2.40 12: 6.41/2.40 %13 = load %c 6.41/2.40 %14 = icmp sle %13 50 6.41/2.40 br %14, %15, %23 6.41/2.40 15: 6.41/2.40 store 0, %i 6.41/2.40 br %16 6.41/2.40 16: 6.41/2.40 %17 = load %i 6.41/2.40 %18 = icmp slt %17 101 6.41/2.40 br %18, %19, %22 6.41/2.40 19: 6.41/2.40 %20 = load %i 6.41/2.40 %21 = add %20 1 6.41/2.40 store %21, %i 6.41/2.40 br %16 6.41/2.40 22: 6.41/2.40 br %23 6.41/2.40 23: 6.41/2.40 %24 = load %c 6.41/2.40 %25 = icmp sle %24 100 6.41/2.40 br %25, %26, %34 6.41/2.40 26: 6.41/2.40 store 0, %i 6.41/2.40 br %27 6.41/2.40 27: 6.41/2.40 %28 = load %i 6.41/2.40 %29 = icmp slt %28 102 6.41/2.40 br %29, %30, %33 6.41/2.40 30: 6.41/2.40 %31 = load %i 6.41/2.40 %32 = add %31 1 6.41/2.40 store %32, %i 6.41/2.40 br %27 6.41/2.40 33: 6.41/2.40 br %42 6.41/2.40 34: 6.41/2.40 store 0, %i 6.41/2.40 br %35 6.41/2.40 35: 6.41/2.40 %36 = load %i 6.41/2.40 %37 = icmp slt %36 103 6.41/2.40 br %37, %38, %41 6.41/2.40 38: 6.41/2.40 %39 = load %i 6.41/2.40 %40 = add %39 0 6.41/2.40 store %40, %i 6.41/2.40 br %35 6.41/2.40 41: 6.41/2.40 br %42 6.41/2.40 42: 6.41/2.40 br %43 6.41/2.40 43: 6.41/2.40 ret 0 6.41/2.40 6.41/2.40 6.41/2.40 Analyze Termination of all function calls matching the pattern: 6.41/2.40 main() 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (3) LLVMToTerminationGraphProof (EQUIVALENT) 6.41/2.40 Constructed symbolic execution graph for LLVM program and proved memory safety. 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (4) 6.41/2.40 Obligation: 6.41/2.40 SE Graph 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (5) LLVMNonterminationProof (COMPLETE) 6.41/2.40 Proved nontermination with the following witness: 6.41/2.40 6.41/2.40 State #170 with references set to {}. 6.41/2.40 Nondeterministic instruction %1 = alloca i32, align 4 in node #170 yields value 11. 6.41/2.40 Nondeterministic instruction %c = alloca i32, align 4 in node #171 yields value 5. 6.41/2.40 Nondeterministic instruction %i = alloca i32, align 4 in node #172 yields value 1. 6.41/2.40 6.41/2.40 ---------------------------------------- 6.41/2.40 6.41/2.40 (6) 6.41/2.40 NO 6.59/2.49 EOF