94.99/37.15 MAYBE 96.02/37.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 96.02/37.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 96.02/37.43 96.02/37.43 96.02/37.43 Termination of the given C Problem could not be shown: 96.02/37.43 96.02/37.43 (0) C Problem 96.02/37.43 (1) CToLLVMProof [EQUIVALENT, 165 ms] 96.02/37.43 (2) LLVM problem 96.02/37.43 (3) LLVMToTerminationGraphProof [EQUIVALENT, 31.7 s] 96.02/37.43 (4) LLVM Symbolic Execution Graph 96.02/37.43 (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 96.02/37.43 (6) AND 96.02/37.43 (7) LLVM Symbolic Execution SCC 96.02/37.43 (8) LLVM Symbolic Execution SCC 96.02/37.43 (9) LLVM Symbolic Execution SCC 96.02/37.43 (10) SymbolicExecutionGraphToLassoProof [COMPLETE, 2818 ms] 96.02/37.43 (11) AND 96.02/37.43 (12) LLVM Symbolic Execution Lasso 96.02/37.43 (13) LLVM Symbolic Execution Lasso 96.02/37.43 (14) LLVM Symbolic Execution Lasso 96.02/37.43 (15) LLVM Symbolic Execution Lasso 96.02/37.43 (16) LLVM Symbolic Execution Lasso 96.02/37.43 (17) LLVM Symbolic Execution Lasso 96.02/37.43 (18) LLVM Symbolic Execution Lasso 96.02/37.43 (19) LLVM Symbolic Execution Lasso 96.02/37.43 (20) LLVM Symbolic Execution Lasso 96.02/37.43 (21) LLVM Symbolic Execution Lasso 96.02/37.43 (22) LLVM Symbolic Execution Lasso 96.02/37.44 (23) LLVM Symbolic Execution Lasso 96.02/37.44 (24) LLVM Symbolic Execution Lasso 96.02/37.44 (25) LLVM Symbolic Execution Lasso 96.02/37.44 (26) LLVM Symbolic Execution Lasso 96.02/37.44 (27) LLVM Symbolic Execution Lasso 96.02/37.44 (28) LLVM Symbolic Execution Lasso 96.02/37.44 (29) LLVM Symbolic Execution Lasso 96.02/37.44 (30) LLVM Symbolic Execution Lasso 96.02/37.44 (31) LLVM Symbolic Execution Lasso 96.02/37.44 (32) LLVM Symbolic Execution Lasso 96.02/37.44 (33) LLVM Symbolic Execution Lasso 96.02/37.44 (34) LLVM Symbolic Execution Lasso 96.02/37.44 (35) LLVM Symbolic Execution Lasso 96.02/37.44 (36) LLVM Symbolic Execution Lasso 96.02/37.44 (37) LLVM Symbolic Execution Lasso 96.02/37.44 (38) LLVM Symbolic Execution Lasso 96.02/37.44 (39) LLVM Symbolic Execution Lasso 96.02/37.44 (40) LLVM Symbolic Execution Lasso 96.02/37.44 (41) LLVM Symbolic Execution Lasso 96.02/37.44 (42) LLVM Symbolic Execution Lasso 96.02/37.44 (43) LLVM Symbolic Execution Lasso 96.02/37.44 (44) LLVM Symbolic Execution Lasso 96.02/37.44 (45) LLVM Symbolic Execution Lasso 96.02/37.44 (46) LLVM Symbolic Execution Lasso 96.02/37.44 (47) LLVM Symbolic Execution Lasso 96.02/37.44 (48) LLVM Symbolic Execution Lasso 96.02/37.44 (49) LLVM Symbolic Execution Lasso 96.02/37.44 (50) LLVM Symbolic Execution Lasso 96.02/37.44 (51) LLVM Symbolic Execution Lasso 96.02/37.44 (52) LLVM Symbolic Execution Lasso 96.02/37.44 (53) LLVM Symbolic Execution Lasso 96.02/37.44 (54) LLVM Symbolic Execution Lasso 96.02/37.44 (55) LLVM Symbolic Execution Lasso 96.02/37.44 (56) LLVM Symbolic Execution Lasso 96.02/37.44 (57) LLVM Symbolic Execution Lasso 96.02/37.44 (58) LLVM Symbolic Execution Lasso 96.02/37.44 (59) LLVM Symbolic Execution Lasso 96.02/37.44 (60) LLVM Symbolic Execution Lasso 96.02/37.44 (61) LLVM Symbolic Execution Lasso 96.02/37.44 (62) LLVM Symbolic Execution Lasso 96.02/37.44 (63) LLVM Symbolic Execution Lasso 96.02/37.44 (64) LLVM Symbolic Execution Lasso 96.02/37.44 (65) LLVM Symbolic Execution Lasso 96.02/37.44 (66) LLVM Symbolic Execution Lasso 96.02/37.44 (67) LLVM Symbolic Execution Lasso 96.02/37.44 (68) LLVM Symbolic Execution Lasso 96.02/37.44 (69) LLVM Symbolic Execution Lasso 96.02/37.44 (70) LLVM Symbolic Execution Lasso 96.02/37.44 (71) LLVM Symbolic Execution Lasso 96.02/37.44 (72) LLVM Symbolic Execution Lasso 96.02/37.44 (73) LLVM Symbolic Execution Lasso 96.02/37.44 (74) LLVM Symbolic Execution Lasso 96.02/37.44 (75) LLVM Symbolic Execution Lasso 96.02/37.44 (76) LLVM Symbolic Execution Lasso 96.02/37.44 (77) LLVM Symbolic Execution Lasso 96.02/37.44 (78) LLVM Symbolic Execution Lasso 96.02/37.44 (79) LLVM Symbolic Execution Lasso 96.02/37.44 (80) LLVM Symbolic Execution Lasso 96.02/37.44 (81) LLVM Symbolic Execution Lasso 96.02/37.44 (82) LLVM Symbolic Execution Lasso 96.02/37.44 (83) LLVM Symbolic Execution Lasso 96.02/37.44 (84) LLVM Symbolic Execution Lasso 96.02/37.44 (85) LLVM Symbolic Execution Lasso 96.02/37.44 (86) LLVM Symbolic Execution Lasso 96.02/37.44 (87) LLVM Symbolic Execution Lasso 96.02/37.44 (88) LLVM Symbolic Execution Lasso 96.02/37.44 (89) LLVM Symbolic Execution Lasso 96.02/37.44 (90) LLVM Symbolic Execution Lasso 96.02/37.44 (91) LLVM Symbolic Execution Lasso 96.02/37.44 (92) LLVM Symbolic Execution Lasso 96.02/37.44 (93) LLVM Symbolic Execution Lasso 96.02/37.44 (94) LLVM Symbolic Execution Lasso 96.02/37.44 (95) LLVM Symbolic Execution Lasso 96.02/37.44 (96) LLVM Symbolic Execution Lasso 96.02/37.44 (97) LLVM Symbolic Execution Lasso 96.02/37.44 (98) LLVM Symbolic Execution Lasso 96.02/37.44 (99) LLVM Symbolic Execution Lasso 96.02/37.44 (100) LLVM Symbolic Execution Lasso 96.02/37.44 (101) LLVM Symbolic Execution Lasso 96.02/37.44 (102) LLVM Symbolic Execution Lasso 96.02/37.44 (103) LLVM Symbolic Execution Lasso 96.02/37.44 (104) LLVM Symbolic Execution Lasso 96.02/37.44 (105) LLVM Symbolic Execution Lasso 96.02/37.44 (106) LLVM Symbolic Execution Lasso 96.02/37.44 (107) LLVM Symbolic Execution Lasso 96.02/37.44 (108) LLVM Symbolic Execution Lasso 96.02/37.44 (109) LLVM Symbolic Execution Lasso 96.02/37.44 (110) LLVM Symbolic Execution Lasso 96.02/37.44 (111) LLVM Symbolic Execution Lasso 96.02/37.44 (112) LLVM Symbolic Execution Lasso 96.02/37.44 (113) LLVM Symbolic Execution Lasso 96.02/37.44 (114) LLVM Symbolic Execution Lasso 96.02/37.44 (115) LLVM Symbolic Execution Lasso 96.02/37.44 (116) LLVM Symbolic Execution Lasso 96.02/37.44 (117) LLVM Symbolic Execution Lasso 96.02/37.44 (118) LLVM Symbolic Execution Lasso 96.02/37.44 (119) LLVM Symbolic Execution Lasso 96.02/37.44 96.02/37.44 96.02/37.44 ---------------------------------------- 96.02/37.44 96.02/37.44 (0) 96.02/37.44 Obligation: 96.02/37.44 c file /export/starexec/sandbox/benchmark/theBenchmark.c 96.02/37.44 ---------------------------------------- 96.02/37.44 96.02/37.44 (1) CToLLVMProof (EQUIVALENT) 96.02/37.44 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 96.02/37.44 ---------------------------------------- 96.02/37.44 96.02/37.44 (2) 96.02/37.44 Obligation: 96.02/37.44 LLVM Problem 96.02/37.44 96.02/37.44 Aliases: 96.02/37.44 96.02/37.44 Data layout: 96.02/37.44 96.02/37.44 "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" 96.02/37.44 96.02/37.44 Machine: 96.02/37.44 96.02/37.44 "x86_64-pc-linux-gnu" 96.02/37.44 96.02/37.44 Type definitions: 96.02/37.44 96.02/37.44 Global variables: 96.02/37.44 96.02/37.44 Name: nomsg initVal: -1 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: null section: null 96.02/37.44 96.02/37.44 Name: votedValue_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: votedValue_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: votedValue_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate1Failed_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate1Failed_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate1Failed_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate2Failed_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate2Failed_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate2Failed_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate3Failed_History_0 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate3Failed_History_1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate3Failed_History_2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate1Failed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate2Failed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: gate3Failed initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: VALUE1 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: VALUE2 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: VALUE3 initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g1v_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g2v_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g3v_new initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g1v_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g2v_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g3v_old initVal: 0 type: i8 addrSpace: null alignment: 1 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: nodes initVal: (@gate1_each_pals_period,@gate2_each_pals_period,@gate3_each_pals_period,@voter) type: [4 x *BasicFunctionType varArgs: falsereturnType: BasicVoidTypeparamTypes: ()] addrSpace: null alignment: 16 threadLocal: false constant: false linkageType: null section: null 96.02/37.44 96.02/37.44 Name: g1v initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g2v initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Name: g3v initVal: 0 type: i32 addrSpace: null alignment: 4 threadLocal: false constant: false linkageType: COMMON section: null 96.02/37.44 96.02/37.44 Function declarations and definitions: 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_nondet_bool" returnParam: i1 zeroext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_nondet_int8_t" returnParam: i8 signext parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_nondet__Bool" returnParam: i1 zeroext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_nondet_msg_t" returnParam: i8 signext parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_error" returnParam: BasicVoidType parameters: () variableLength: true visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 *BasicFunctionTypename: "add_history_type" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (history_id i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i32, align 4 96.02/37.44 %2 = alloca i32, align 4 96.02/37.44 %ini_bool = alloca i8, align 1 96.02/37.44 %ini_int = alloca i8, align 1 96.02/37.44 %var = alloca i32, align 4 96.02/37.44 %tmp = alloca i32, align 4 96.02/37.44 %tmp___0 = alloca i32, align 4 96.02/37.44 %tmp___1 = alloca i32, align 4 96.02/37.44 %tmp___2 = alloca i32, align 4 96.02/37.44 store %history_id, %2 96.02/37.44 store 0, %ini_bool 96.02/37.44 store -2, %ini_int 96.02/37.44 store 0, %var 96.02/37.44 br %3 96.02/37.44 3: 96.02/37.44 %4 = load %var 96.02/37.44 %5 = icmp slt %4 3 96.02/37.44 br %5, %6, %63 96.02/37.44 6: 96.02/37.44 %7 = load %2 96.02/37.44 %8 = icmp eq %7 0 96.02/37.44 br %8, %9, %19 96.02/37.44 9: 96.02/37.44 %10 = call zeroext i1 @read_history_bool(i32 0, i32 0) 96.02/37.44 %11 = zext i1 %10 to i32 96.02/37.44 store %11, %tmp 96.02/37.44 %12 = load %tmp 96.02/37.44 %13 = load %ini_bool 96.02/37.44 %14 = trunc i8 %13 to i1 96.02/37.44 %15 = zext i1 %14 to i32 96.02/37.44 %16 = icmp eq %12 %15 96.02/37.44 br %16, %18, %17 96.02/37.44 17: 96.02/37.44 store 0, %1 96.02/37.44 br %64 96.02/37.44 18: 96.02/37.44 br %60 96.02/37.44 19: 96.02/37.44 %20 = load %2 96.02/37.44 %21 = icmp eq %20 1 96.02/37.44 br %21, %22, %32 96.02/37.44 22: 96.02/37.44 %23 = call zeroext i1 @read_history_bool(i32 1, i32 0) 96.02/37.44 %24 = zext i1 %23 to i32 96.02/37.44 store %24, %tmp___0 96.02/37.44 %25 = load %tmp___0 96.02/37.44 %26 = load %ini_bool 96.02/37.44 %27 = trunc i8 %26 to i1 96.02/37.44 %28 = zext i1 %27 to i32 96.02/37.44 %29 = icmp eq %25 %28 96.02/37.44 br %29, %31, %30 96.02/37.44 30: 96.02/37.44 store 0, %1 96.02/37.44 br %64 96.02/37.44 31: 96.02/37.44 br %59 96.02/37.44 32: 96.02/37.44 %33 = load %2 96.02/37.44 %34 = icmp eq %33 2 96.02/37.44 br %34, %35, %45 96.02/37.44 35: 96.02/37.44 %36 = call zeroext i1 @read_history_bool(i32 2, i32 0) 96.02/37.44 %37 = zext i1 %36 to i32 96.02/37.44 store %37, %tmp___1 96.02/37.44 %38 = load %tmp___1 96.02/37.44 %39 = load %ini_bool 96.02/37.44 %40 = trunc i8 %39 to i1 96.02/37.44 %41 = zext i1 %40 to i32 96.02/37.44 %42 = icmp eq %38 %41 96.02/37.44 br %42, %44, %43 96.02/37.44 43: 96.02/37.44 store 0, %1 96.02/37.44 br %64 96.02/37.44 44: 96.02/37.44 br %58 96.02/37.44 45: 96.02/37.44 %46 = load %2 96.02/37.44 %47 = icmp eq %46 3 96.02/37.44 br %47, %48, %57 96.02/37.44 48: 96.02/37.44 %49 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 %50 = sext i8 %49 to i32 96.02/37.44 store %50, %tmp___2 96.02/37.44 %51 = load %tmp___2 96.02/37.44 %52 = load %ini_int 96.02/37.44 %53 = sext i8 %52 to i32 96.02/37.44 %54 = icmp eq %51 %53 96.02/37.44 br %54, %56, %55 96.02/37.44 55: 96.02/37.44 store 0, %1 96.02/37.44 br %64 96.02/37.44 56: 96.02/37.44 br %57 96.02/37.44 57: 96.02/37.44 br %58 96.02/37.44 58: 96.02/37.44 br %59 96.02/37.44 59: 96.02/37.44 br %60 96.02/37.44 60: 96.02/37.44 %61 = load %var 96.02/37.44 %62 = add %61 1 96.02/37.44 store %62, %var 96.02/37.44 br %3 96.02/37.44 63: 96.02/37.44 store 1, %1 96.02/37.44 br %64 96.02/37.44 64: 96.02/37.44 %65 = load %1 96.02/37.44 ret %65 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "read_history_bool" linkageType: EXTERNALLY_VISIBLE returnParam: i1 zeroext parameters: (history_id i32, historyIndex i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i1, align 1 96.02/37.44 %2 = alloca i32, align 4 96.02/37.44 %3 = alloca i32, align 4 96.02/37.44 store %history_id, %2 96.02/37.44 store %historyIndex, %3 96.02/37.44 %4 = load %2 96.02/37.44 %5 = icmp eq %4 0 96.02/37.44 br %5, %6, %21 96.02/37.44 6: 96.02/37.44 %7 = load %3 96.02/37.44 %8 = icmp eq %7 0 96.02/37.44 br %8, %9, %12 96.02/37.44 9: 96.02/37.44 %10 = load @gate1Failed_History_0 96.02/37.44 %11 = trunc i8 %10 to i1 96.02/37.44 store %11, %1 96.02/37.44 br %61 96.02/37.44 12: 96.02/37.44 %13 = load %3 96.02/37.44 %14 = icmp eq %13 1 96.02/37.44 br %14, %15, %18 96.02/37.44 15: 96.02/37.44 %16 = load @gate1Failed_History_1 96.02/37.44 %17 = trunc i8 %16 to i1 96.02/37.44 store %17, %1 96.02/37.44 br %61 96.02/37.44 18: 96.02/37.44 %19 = load @gate1Failed_History_2 96.02/37.44 %20 = trunc i8 %19 to i1 96.02/37.44 store %20, %1 96.02/37.44 br %61 96.02/37.44 21: 96.02/37.44 %22 = load %2 96.02/37.44 %23 = icmp eq %22 1 96.02/37.44 br %23, %24, %39 96.02/37.44 24: 96.02/37.44 %25 = load %3 96.02/37.44 %26 = icmp eq %25 0 96.02/37.44 br %26, %27, %30 96.02/37.44 27: 96.02/37.44 %28 = load @gate2Failed_History_0 96.02/37.44 %29 = trunc i8 %28 to i1 96.02/37.44 store %29, %1 96.02/37.44 br %61 96.02/37.44 30: 96.02/37.44 %31 = load %3 96.02/37.44 %32 = icmp eq %31 1 96.02/37.44 br %32, %33, %36 96.02/37.44 33: 96.02/37.44 %34 = load @gate2Failed_History_1 96.02/37.44 %35 = trunc i8 %34 to i1 96.02/37.44 store %35, %1 96.02/37.44 br %61 96.02/37.44 36: 96.02/37.44 %37 = load @gate2Failed_History_2 96.02/37.44 %38 = trunc i8 %37 to i1 96.02/37.44 store %38, %1 96.02/37.44 br %61 96.02/37.44 39: 96.02/37.44 %40 = load %2 96.02/37.44 %41 = icmp eq %40 2 96.02/37.44 br %41, %42, %57 96.02/37.44 42: 96.02/37.44 %43 = load %3 96.02/37.44 %44 = icmp eq %43 0 96.02/37.44 br %44, %45, %48 96.02/37.44 45: 96.02/37.44 %46 = load @gate3Failed_History_0 96.02/37.44 %47 = trunc i8 %46 to i1 96.02/37.44 store %47, %1 96.02/37.44 br %61 96.02/37.44 48: 96.02/37.44 %49 = load %3 96.02/37.44 %50 = icmp eq %49 1 96.02/37.44 br %50, %51, %54 96.02/37.44 51: 96.02/37.44 %52 = load @gate3Failed_History_1 96.02/37.44 %53 = trunc i8 %52 to i1 96.02/37.44 store %53, %1 96.02/37.44 br %61 96.02/37.44 54: 96.02/37.44 %55 = load @gate3Failed_History_2 96.02/37.44 %56 = trunc i8 %55 to i1 96.02/37.44 store %56, %1 96.02/37.44 br %61 96.02/37.44 57: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 96.02/37.44 br %58 96.02/37.44 58: 96.02/37.44 br %59 96.02/37.44 59: 96.02/37.44 br %60 96.02/37.44 60: 96.02/37.44 store 0, %1 96.02/37.44 br %61 96.02/37.44 61: 96.02/37.44 %62 = load %1 96.02/37.44 ret %62 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "read_history_int8" linkageType: EXTERNALLY_VISIBLE returnParam: i8 signext parameters: (history_id i32, historyIndex i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i8, align 1 96.02/37.44 %2 = alloca i32, align 4 96.02/37.44 %3 = alloca i32, align 4 96.02/37.44 store %history_id, %2 96.02/37.44 store %historyIndex, %3 96.02/37.44 %4 = load %2 96.02/37.44 %5 = icmp eq %4 3 96.02/37.44 br %5, %6, %18 96.02/37.44 6: 96.02/37.44 %7 = load %3 96.02/37.44 %8 = icmp eq %7 0 96.02/37.44 br %8, %9, %11 96.02/37.44 9: 96.02/37.44 %10 = load @votedValue_History_0 96.02/37.44 store %10, %1 96.02/37.44 br %20 96.02/37.44 11: 96.02/37.44 %12 = load %3 96.02/37.44 %13 = icmp eq %12 1 96.02/37.44 br %13, %14, %16 96.02/37.44 14: 96.02/37.44 %15 = load @votedValue_History_1 96.02/37.44 store %15, %1 96.02/37.44 br %20 96.02/37.44 16: 96.02/37.44 %17 = load @votedValue_History_2 96.02/37.44 store %17, %1 96.02/37.44 br %20 96.02/37.44 18: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 96.02/37.44 br %19 96.02/37.44 19: 96.02/37.44 store -2, %1 96.02/37.44 br %20 96.02/37.44 20: 96.02/37.44 %21 = load %1 96.02/37.44 ret %21 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "assert" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i8, align 1 96.02/37.44 %2 = zext i1 %arg to i8 96.02/37.44 store %2, %1 96.02/37.44 %3 = load %1 96.02/37.44 %4 = trunc i8 %3 to i1 96.02/37.44 br %4, %7, %5 96.02/37.44 5: 96.02/37.44 br %6 96.02/37.44 6: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType (...)* @__VERIFIER_error() noreturn 96.02/37.44 unreachable 96.02/37.44 7: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "write_history_int8" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (history_id i32, buf i8 signext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i32, align 4 96.02/37.44 %2 = alloca i8, align 1 96.02/37.44 store %history_id, %1 96.02/37.44 store %buf, %2 96.02/37.44 %3 = load %1 96.02/37.44 %4 = icmp eq %3 3 96.02/37.44 br %4, %5, %9 96.02/37.44 5: 96.02/37.44 %6 = load @votedValue_History_1 96.02/37.44 store %6, @votedValue_History_2 96.02/37.44 %7 = load @votedValue_History_0 96.02/37.44 store %7, @votedValue_History_1 96.02/37.44 %8 = load %2 96.02/37.44 store %8, @votedValue_History_0 96.02/37.44 br %10 96.02/37.44 9: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 96.02/37.44 br %10 96.02/37.44 10: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "write_history_bool" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (history_id i32, buf i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i32, align 4 96.02/37.44 %2 = alloca i8, align 1 96.02/37.44 store %history_id, %1 96.02/37.44 %3 = zext i1 %buf to i8 96.02/37.44 store %3, %2 96.02/37.44 %4 = load %1 96.02/37.44 %5 = icmp eq %4 0 96.02/37.44 br %5, %6, %16 96.02/37.44 6: 96.02/37.44 %7 = load @gate1Failed_History_1 96.02/37.44 %8 = trunc i8 %7 to i1 96.02/37.44 %9 = zext i1 %8 to i8 96.02/37.44 store %9, @gate1Failed_History_2 96.02/37.44 %10 = load @gate1Failed_History_0 96.02/37.44 %11 = trunc i8 %10 to i1 96.02/37.44 %12 = zext i1 %11 to i8 96.02/37.44 store %12, @gate1Failed_History_1 96.02/37.44 %13 = load %2 96.02/37.44 %14 = trunc i8 %13 to i1 96.02/37.44 %15 = zext i1 %14 to i8 96.02/37.44 store %15, @gate1Failed_History_0 96.02/37.44 br %45 96.02/37.44 16: 96.02/37.44 %17 = load %1 96.02/37.44 %18 = icmp eq %17 1 96.02/37.44 br %18, %19, %29 96.02/37.44 19: 96.02/37.44 %20 = load @gate2Failed_History_1 96.02/37.44 %21 = trunc i8 %20 to i1 96.02/37.44 %22 = zext i1 %21 to i8 96.02/37.44 store %22, @gate2Failed_History_2 96.02/37.44 %23 = load @gate2Failed_History_0 96.02/37.44 %24 = trunc i8 %23 to i1 96.02/37.44 %25 = zext i1 %24 to i8 96.02/37.44 store %25, @gate2Failed_History_1 96.02/37.44 %26 = load %2 96.02/37.44 %27 = trunc i8 %26 to i1 96.02/37.44 %28 = zext i1 %27 to i8 96.02/37.44 store %28, @gate2Failed_History_0 96.02/37.44 br %44 96.02/37.44 29: 96.02/37.44 %30 = load %1 96.02/37.44 %31 = icmp eq %30 2 96.02/37.44 br %31, %32, %42 96.02/37.44 32: 96.02/37.44 %33 = load @gate3Failed_History_1 96.02/37.44 %34 = trunc i8 %33 to i1 96.02/37.44 %35 = zext i1 %34 to i8 96.02/37.44 store %35, @gate3Failed_History_2 96.02/37.44 %36 = load @gate3Failed_History_0 96.02/37.44 %37 = trunc i8 %36 to i1 96.02/37.44 %38 = zext i1 %37 to i8 96.02/37.44 store %38, @gate3Failed_History_1 96.02/37.44 %39 = load %2 96.02/37.44 %40 = trunc i8 %39 to i1 96.02/37.44 %41 = zext i1 %40 to i8 96.02/37.44 store %41, @gate3Failed_History_0 96.02/37.44 br %43 96.02/37.44 42: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 96.02/37.44 br %43 96.02/37.44 43: 96.02/37.44 br %44 96.02/37.44 44: 96.02/37.44 br %45 96.02/37.44 45: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "init" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i32, align 4 96.02/37.44 %tmp = alloca i32, align 4 96.02/37.44 %tmp___0 = alloca i32, align 4 96.02/37.44 %tmp___1 = alloca i32, align 4 96.02/37.44 %tmp___2 = alloca i32, align 4 96.02/37.44 %2 = call i32 @add_history_type(i32 0) 96.02/37.44 store %2, %tmp 96.02/37.44 %3 = load %tmp 96.02/37.44 %4 = icmp ne %3 0 96.02/37.44 br %4, %6, %5 96.02/37.44 5: 96.02/37.44 store 0, %1 96.02/37.44 br %22 96.02/37.44 6: 96.02/37.44 %7 = call i32 @add_history_type(i32 1) 96.02/37.44 store %7, %tmp___0 96.02/37.44 %8 = load %tmp___0 96.02/37.44 %9 = icmp ne %8 0 96.02/37.44 br %9, %11, %10 96.02/37.44 10: 96.02/37.44 store 0, %1 96.02/37.44 br %22 96.02/37.44 11: 96.02/37.44 %12 = call i32 @add_history_type(i32 2) 96.02/37.44 store %12, %tmp___1 96.02/37.44 %13 = load %tmp___1 96.02/37.44 %14 = icmp ne %13 0 96.02/37.44 br %14, %16, %15 96.02/37.44 15: 96.02/37.44 store 0, %1 96.02/37.44 br %22 96.02/37.44 16: 96.02/37.44 %17 = call i32 @add_history_type(i32 3) 96.02/37.44 store %17, %tmp___2 96.02/37.44 %18 = load %tmp___2 96.02/37.44 %19 = icmp ne %18 0 96.02/37.44 br %19, %21, %20 96.02/37.44 20: 96.02/37.44 store 0, %1 96.02/37.44 br %22 96.02/37.44 21: 96.02/37.44 store 1, %1 96.02/37.44 br %22 96.02/37.44 22: 96.02/37.44 %23 = load %1 96.02/37.44 ret %23 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "check" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i32, align 4 96.02/37.44 %tmp = alloca i32, align 4 96.02/37.44 %temp_count = alloca i32, align 4 96.02/37.44 %tmp___0 = alloca i8, align 1 96.02/37.44 %tmp___1 = alloca i8, align 1 96.02/37.44 %tmp___2 = alloca i8, align 1 96.02/37.44 %tmp___3 = alloca i8, align 1 96.02/37.44 %tmp___4 = alloca i8, align 1 96.02/37.44 %tmp___5 = alloca i8, align 1 96.02/37.44 %tmp___6 = alloca i8, align 1 96.02/37.44 %tmp___7 = alloca i8, align 1 96.02/37.44 %tmp___8 = alloca i8, align 1 96.02/37.44 %tmp___9 = alloca i8, align 1 96.02/37.44 %tmp___10 = alloca i8, align 1 96.02/37.44 %tmp___11 = alloca i8, align 1 96.02/37.44 %tmp___12 = alloca i8, align 1 96.02/37.44 %tmp___13 = alloca i8, align 1 96.02/37.44 %tmp___14 = alloca i8, align 1 96.02/37.44 %2 = load @gate1Failed 96.02/37.44 %3 = trunc i8 %2 to i1 96.02/37.44 br %3, %5, %4 96.02/37.44 4: 96.02/37.44 store 1, %tmp 96.02/37.44 br %16 96.02/37.44 5: 96.02/37.44 %6 = load @gate2Failed 96.02/37.44 %7 = trunc i8 %6 to i1 96.02/37.44 br %7, %9, %8 96.02/37.44 8: 96.02/37.44 store 1, %tmp 96.02/37.44 br %15 96.02/37.44 9: 96.02/37.44 %10 = load @gate3Failed 96.02/37.44 %11 = trunc i8 %10 to i1 96.02/37.44 br %11, %13, %12 96.02/37.44 12: 96.02/37.44 store 1, %tmp 96.02/37.44 br %14 96.02/37.44 13: 96.02/37.44 store 0, %tmp 96.02/37.44 br %14 96.02/37.44 14: 96.02/37.44 br %15 96.02/37.44 15: 96.02/37.44 br %16 96.02/37.44 16: 96.02/37.44 %17 = load %tmp 96.02/37.44 %18 = icmp ne %17 0 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %18) 96.02/37.44 %19 = call zeroext i1 @read_history_bool(i32 0, i32 1) 96.02/37.44 %20 = zext i1 %19 to i8 96.02/37.44 store %20, %tmp___3 96.02/37.44 %21 = load %tmp___3 96.02/37.44 %22 = trunc i8 %21 to i1 96.02/37.44 br %22, %99, %23 96.02/37.44 23: 96.02/37.44 %24 = call zeroext i1 @read_history_bool(i32 1, i32 1) 96.02/37.44 %25 = zext i1 %24 to i8 96.02/37.44 store %25, %tmp___4 96.02/37.44 %26 = load %tmp___4 96.02/37.44 %27 = trunc i8 %26 to i1 96.02/37.44 br %27, %98, %28 96.02/37.44 28: 96.02/37.44 %29 = call zeroext i1 @read_history_bool(i32 2, i32 1) 96.02/37.44 %30 = zext i1 %29 to i8 96.02/37.44 store %30, %tmp___5 96.02/37.44 %31 = load %tmp___5 96.02/37.44 %32 = trunc i8 %31 to i1 96.02/37.44 br %32, %97, %33 96.02/37.44 33: 96.02/37.44 store 0, %temp_count 96.02/37.44 %34 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %34, %tmp___0 96.02/37.44 %35 = load @VALUE1 96.02/37.44 %36 = sext i8 %35 to i32 96.02/37.44 %37 = load %tmp___0 96.02/37.44 %38 = sext i8 %37 to i32 96.02/37.44 %39 = icmp eq %36 %38 96.02/37.44 br %39, %40, %43 96.02/37.44 40: 96.02/37.44 %41 = load %temp_count 96.02/37.44 %42 = add %41 1 96.02/37.44 store %42, %temp_count 96.02/37.44 br %43 96.02/37.44 43: 96.02/37.44 %44 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %44, %tmp___1 96.02/37.44 %45 = load @VALUE2 96.02/37.44 %46 = sext i8 %45 to i32 96.02/37.44 %47 = load %tmp___1 96.02/37.44 %48 = sext i8 %47 to i32 96.02/37.44 %49 = icmp eq %46 %48 96.02/37.44 br %49, %50, %53 96.02/37.44 50: 96.02/37.44 %51 = load %temp_count 96.02/37.44 %52 = add %51 1 96.02/37.44 store %52, %temp_count 96.02/37.44 br %53 96.02/37.44 53: 96.02/37.44 %54 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %54, %tmp___2 96.02/37.44 %55 = load @VALUE3 96.02/37.44 %56 = sext i8 %55 to i32 96.02/37.44 %57 = load %tmp___2 96.02/37.44 %58 = sext i8 %57 to i32 96.02/37.44 %59 = icmp eq %56 %58 96.02/37.44 br %59, %60, %63 96.02/37.44 60: 96.02/37.44 %61 = load %temp_count 96.02/37.44 %62 = add %61 1 96.02/37.44 store %62, %temp_count 96.02/37.44 br %63 96.02/37.44 63: 96.02/37.44 %64 = load @VALUE1 96.02/37.44 %65 = sext i8 %64 to i32 96.02/37.44 %66 = load @VALUE2 96.02/37.44 %67 = sext i8 %66 to i32 96.02/37.44 %68 = icmp ne %65 %67 96.02/37.44 br %68, %69, %90 96.02/37.44 69: 96.02/37.44 %70 = load @VALUE1 96.02/37.44 %71 = sext i8 %70 to i32 96.02/37.44 %72 = load @VALUE3 96.02/37.44 %73 = sext i8 %72 to i32 96.02/37.44 %74 = icmp ne %71 %73 96.02/37.44 br %74, %75, %88 96.02/37.44 75: 96.02/37.44 %76 = load @VALUE2 96.02/37.44 %77 = sext i8 %76 to i32 96.02/37.44 %78 = load @VALUE3 96.02/37.44 %79 = sext i8 %78 to i32 96.02/37.44 %80 = icmp ne %77 %79 96.02/37.44 br %80, %81, %86 96.02/37.44 81: 96.02/37.44 %82 = load %temp_count 96.02/37.44 %83 = icmp eq %82 1 96.02/37.44 br %83, %85, %84 96.02/37.44 84: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 85: 96.02/37.44 br %87 96.02/37.44 86: 96.02/37.44 br %91 96.02/37.44 87: 96.02/37.44 br %89 96.02/37.44 88: 96.02/37.44 br %91 96.02/37.44 89: 96.02/37.44 br %96 96.02/37.44 90: 96.02/37.44 br %91 96.02/37.44 91: 96.02/37.44 %92 = load %temp_count 96.02/37.44 %93 = icmp sgt %92 1 96.02/37.44 br %93, %95, %94 96.02/37.44 94: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 95: 96.02/37.44 br %96 96.02/37.44 96: 96.02/37.44 br %97 96.02/37.44 97: 96.02/37.44 br %98 96.02/37.44 98: 96.02/37.44 br %99 96.02/37.44 99: 96.02/37.44 %100 = call signext i8 @read_history_int8(i32 3, i32 1) 96.02/37.44 store %100, %tmp___10 96.02/37.44 %101 = load %tmp___10 96.02/37.44 %102 = sext i8 %101 to i32 96.02/37.44 %103 = icmp sgt %102 -2 96.02/37.44 br %103, %104, %133 96.02/37.44 104: 96.02/37.44 %105 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %105, %tmp___6 96.02/37.44 %106 = load %tmp___6 96.02/37.44 %107 = sext i8 %106 to i32 96.02/37.44 %108 = load @nomsg 96.02/37.44 %109 = sext i8 %108 to i32 96.02/37.44 %110 = icmp eq %107 %109 96.02/37.44 br %110, %111, %132 96.02/37.44 111: 96.02/37.44 %112 = call zeroext i1 @read_history_bool(i32 0, i32 1) 96.02/37.44 %113 = zext i1 %112 to i8 96.02/37.44 store %113, %tmp___7 96.02/37.44 %114 = load %tmp___7 96.02/37.44 %115 = trunc i8 %114 to i1 96.02/37.44 br %115, %116, %130 96.02/37.44 116: 96.02/37.44 %117 = call zeroext i1 @read_history_bool(i32 1, i32 1) 96.02/37.44 %118 = zext i1 %117 to i8 96.02/37.44 store %118, %tmp___8 96.02/37.44 %119 = load %tmp___8 96.02/37.44 %120 = trunc i8 %119 to i1 96.02/37.44 br %120, %121, %128 96.02/37.44 121: 96.02/37.44 %122 = call zeroext i1 @read_history_bool(i32 2, i32 1) 96.02/37.44 %123 = zext i1 %122 to i8 96.02/37.44 store %123, %tmp___9 96.02/37.44 %124 = load %tmp___9 96.02/37.44 %125 = trunc i8 %124 to i1 96.02/37.44 br %125, %127, %126 96.02/37.44 126: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 127: 96.02/37.44 br %129 96.02/37.44 128: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 129: 96.02/37.44 br %131 96.02/37.44 130: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 131: 96.02/37.44 br %132 96.02/37.44 132: 96.02/37.44 br %133 96.02/37.44 133: 96.02/37.44 %134 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %134, %tmp___11 96.02/37.44 %135 = load %tmp___11 96.02/37.44 %136 = sext i8 %135 to i32 96.02/37.44 %137 = load @nomsg 96.02/37.44 %138 = sext i8 %137 to i32 96.02/37.44 %139 = icmp ne %136 %138 96.02/37.44 br %139, %140, %165 96.02/37.44 140: 96.02/37.44 %141 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %141, %tmp___12 96.02/37.44 %142 = load @VALUE1 96.02/37.44 %143 = sext i8 %142 to i32 96.02/37.44 %144 = load %tmp___12 96.02/37.44 %145 = sext i8 %144 to i32 96.02/37.44 %146 = icmp eq %143 %145 96.02/37.44 br %146, %164, %147 96.02/37.44 147: 96.02/37.44 %148 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %148, %tmp___13 96.02/37.44 %149 = load @VALUE2 96.02/37.44 %150 = sext i8 %149 to i32 96.02/37.44 %151 = load %tmp___13 96.02/37.44 %152 = sext i8 %151 to i32 96.02/37.44 %153 = icmp eq %150 %152 96.02/37.44 br %153, %163, %154 96.02/37.44 154: 96.02/37.44 %155 = call signext i8 @read_history_int8(i32 3, i32 0) 96.02/37.44 store %155, %tmp___14 96.02/37.44 %156 = load @VALUE3 96.02/37.44 %157 = sext i8 %156 to i32 96.02/37.44 %158 = load %tmp___14 96.02/37.44 %159 = sext i8 %158 to i32 96.02/37.44 %160 = icmp eq %157 %159 96.02/37.44 br %160, %162, %161 96.02/37.44 161: 96.02/37.44 store 0, %1 96.02/37.44 br %166 96.02/37.44 162: 96.02/37.44 br %163 96.02/37.44 163: 96.02/37.44 br %164 96.02/37.44 164: 96.02/37.44 br %165 96.02/37.44 165: 96.02/37.44 store 1, %1 96.02/37.44 br %166 96.02/37.44 166: 96.02/37.44 %167 = load %1 96.02/37.44 ret %167 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "__VERIFIER_assume" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: (arg i1 zeroext) variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %1 = alloca i8, align 1 96.02/37.44 %2 = zext i1 %arg to i8 96.02/37.44 store %2, %1 96.02/37.44 br %3 96.02/37.44 3: 96.02/37.44 %4 = load %1 96.02/37.44 %5 = trunc i8 %4 to i1 96.02/37.44 %6 = xor %5 1 96.02/37.44 br %6, %7, %8 96.02/37.44 7: 96.02/37.44 br %3 96.02/37.44 8: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "gate1_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %next_state = alloca i8, align 1 96.02/37.44 %tmp = alloca i8, align 1 96.02/37.44 %tmp___0 = alloca i32, align 4 96.02/37.44 %1 = call zeroext i1 (...)* @__VERIFIER_nondet_bool() 96.02/37.44 %2 = zext i1 %1 to i8 96.02/37.44 store %2, @gate1Failed 96.02/37.44 %3 = load @gate1Failed 96.02/37.44 %4 = trunc i8 %3 to i1 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @write_history_bool(i32 0, i1 zeroext %4) 96.02/37.44 %5 = load @gate1Failed 96.02/37.44 %6 = trunc i8 %5 to i1 96.02/37.44 br %6, %7, %28 96.02/37.44 7: 96.02/37.44 %8 = load @nomsg 96.02/37.44 %9 = sext i8 %8 to i32 96.02/37.44 %10 = load @nomsg 96.02/37.44 %11 = sext i8 %10 to i32 96.02/37.44 %12 = icmp ne %9 %11 96.02/37.44 br %12, %13, %22 96.02/37.44 13: 96.02/37.44 %14 = load @g1v_new 96.02/37.44 %15 = sext i8 %14 to i32 96.02/37.44 %16 = load @nomsg 96.02/37.44 %17 = sext i8 %16 to i32 96.02/37.44 %18 = icmp eq %15 %17 96.02/37.44 br %18, %19, %22 96.02/37.44 19: 96.02/37.44 %20 = load @nomsg 96.02/37.44 %21 = sext i8 %20 to i32 96.02/37.44 br %25 96.02/37.44 22: 96.02/37.44 %23 = load @g1v_new 96.02/37.44 %24 = sext i8 %23 to i32 96.02/37.44 br %25 96.02/37.44 25: 96.02/37.44 %26 = phi [%21, %19], [%24, %22] 96.02/37.44 %27 = trunc i32 %26 to i8 96.02/37.44 store %27, @g1v_new 96.02/37.44 br %71 96.02/37.44 28: 96.02/37.44 %29 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.02/37.44 store %29, %tmp 96.02/37.44 %30 = load %tmp 96.02/37.44 store %30, %next_state 96.02/37.44 %31 = load %next_state 96.02/37.44 %32 = sext i8 %31 to i32 96.02/37.44 %33 = icmp eq %32 0 96.02/37.44 br %33, %34, %35 96.02/37.44 34: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %48 96.02/37.44 35: 96.02/37.44 %36 = load %next_state 96.02/37.44 %37 = sext i8 %36 to i32 96.02/37.44 %38 = icmp eq %37 1 96.02/37.44 br %38, %39, %40 96.02/37.44 39: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %47 96.02/37.44 40: 96.02/37.44 %41 = load %next_state 96.02/37.44 %42 = sext i8 %41 to i32 96.02/37.44 %43 = icmp eq %42 2 96.02/37.44 br %43, %44, %45 96.02/37.44 44: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %46 96.02/37.44 45: 96.02/37.44 store 0, %tmp___0 96.02/37.44 br %46 96.02/37.44 46: 96.02/37.44 br %47 96.02/37.44 47: 96.02/37.44 br %48 96.02/37.44 48: 96.02/37.44 %49 = load %tmp___0 96.02/37.44 %50 = icmp ne %49 0 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %50) 96.02/37.44 %51 = load %next_state 96.02/37.44 %52 = sext i8 %51 to i32 96.02/37.44 %53 = load @nomsg 96.02/37.44 %54 = sext i8 %53 to i32 96.02/37.44 %55 = icmp ne %52 %54 96.02/37.44 br %55, %56, %65 96.02/37.44 56: 96.02/37.44 %57 = load @g1v_new 96.02/37.44 %58 = sext i8 %57 to i32 96.02/37.44 %59 = load @nomsg 96.02/37.44 %60 = sext i8 %59 to i32 96.02/37.44 %61 = icmp eq %58 %60 96.02/37.44 br %61, %62, %65 96.02/37.44 62: 96.02/37.44 %63 = load %next_state 96.02/37.44 %64 = sext i8 %63 to i32 96.02/37.44 br %68 96.02/37.44 65: 96.02/37.44 %66 = load @g1v_new 96.02/37.44 %67 = sext i8 %66 to i32 96.02/37.44 br %68 96.02/37.44 68: 96.02/37.44 %69 = phi [%64, %62], [%67, %65] 96.02/37.44 %70 = trunc i32 %69 to i8 96.02/37.44 store %70, @g1v_new 96.02/37.44 br %71 96.02/37.44 71: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "gate2_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %next_state = alloca i8, align 1 96.02/37.44 %tmp = alloca i8, align 1 96.02/37.44 %tmp___0 = alloca i32, align 4 96.02/37.44 %1 = call zeroext i1 (...)* @__VERIFIER_nondet_bool() 96.02/37.44 %2 = zext i1 %1 to i8 96.02/37.44 store %2, @gate2Failed 96.02/37.44 %3 = load @gate2Failed 96.02/37.44 %4 = trunc i8 %3 to i1 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @write_history_bool(i32 1, i1 zeroext %4) 96.02/37.44 %5 = load @gate2Failed 96.02/37.44 %6 = trunc i8 %5 to i1 96.02/37.44 br %6, %7, %28 96.02/37.44 7: 96.02/37.44 %8 = load @nomsg 96.02/37.44 %9 = sext i8 %8 to i32 96.02/37.44 %10 = load @nomsg 96.02/37.44 %11 = sext i8 %10 to i32 96.02/37.44 %12 = icmp ne %9 %11 96.02/37.44 br %12, %13, %22 96.02/37.44 13: 96.02/37.44 %14 = load @g2v_new 96.02/37.44 %15 = sext i8 %14 to i32 96.02/37.44 %16 = load @nomsg 96.02/37.44 %17 = sext i8 %16 to i32 96.02/37.44 %18 = icmp eq %15 %17 96.02/37.44 br %18, %19, %22 96.02/37.44 19: 96.02/37.44 %20 = load @nomsg 96.02/37.44 %21 = sext i8 %20 to i32 96.02/37.44 br %25 96.02/37.44 22: 96.02/37.44 %23 = load @g2v_new 96.02/37.44 %24 = sext i8 %23 to i32 96.02/37.44 br %25 96.02/37.44 25: 96.02/37.44 %26 = phi [%21, %19], [%24, %22] 96.02/37.44 %27 = trunc i32 %26 to i8 96.02/37.44 store %27, @g2v_new 96.02/37.44 br %71 96.02/37.44 28: 96.02/37.44 %29 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.02/37.44 store %29, %tmp 96.02/37.44 %30 = load %tmp 96.02/37.44 store %30, %next_state 96.02/37.44 %31 = load %next_state 96.02/37.44 %32 = sext i8 %31 to i32 96.02/37.44 %33 = icmp eq %32 0 96.02/37.44 br %33, %34, %35 96.02/37.44 34: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %48 96.02/37.44 35: 96.02/37.44 %36 = load %next_state 96.02/37.44 %37 = sext i8 %36 to i32 96.02/37.44 %38 = icmp eq %37 1 96.02/37.44 br %38, %39, %40 96.02/37.44 39: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %47 96.02/37.44 40: 96.02/37.44 %41 = load %next_state 96.02/37.44 %42 = sext i8 %41 to i32 96.02/37.44 %43 = icmp eq %42 2 96.02/37.44 br %43, %44, %45 96.02/37.44 44: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %46 96.02/37.44 45: 96.02/37.44 store 0, %tmp___0 96.02/37.44 br %46 96.02/37.44 46: 96.02/37.44 br %47 96.02/37.44 47: 96.02/37.44 br %48 96.02/37.44 48: 96.02/37.44 %49 = load %tmp___0 96.02/37.44 %50 = icmp ne %49 0 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %50) 96.02/37.44 %51 = load %next_state 96.02/37.44 %52 = sext i8 %51 to i32 96.02/37.44 %53 = load @nomsg 96.02/37.44 %54 = sext i8 %53 to i32 96.02/37.44 %55 = icmp ne %52 %54 96.02/37.44 br %55, %56, %65 96.02/37.44 56: 96.02/37.44 %57 = load @g2v_new 96.02/37.44 %58 = sext i8 %57 to i32 96.02/37.44 %59 = load @nomsg 96.02/37.44 %60 = sext i8 %59 to i32 96.02/37.44 %61 = icmp eq %58 %60 96.02/37.44 br %61, %62, %65 96.02/37.44 62: 96.02/37.44 %63 = load %next_state 96.02/37.44 %64 = sext i8 %63 to i32 96.02/37.44 br %68 96.02/37.44 65: 96.02/37.44 %66 = load @g2v_new 96.02/37.44 %67 = sext i8 %66 to i32 96.02/37.44 br %68 96.02/37.44 68: 96.02/37.44 %69 = phi [%64, %62], [%67, %65] 96.02/37.44 %70 = trunc i32 %69 to i8 96.02/37.44 store %70, @g2v_new 96.02/37.44 br %71 96.02/37.44 71: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "gate3_each_pals_period" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %next_state = alloca i8, align 1 96.02/37.44 %tmp = alloca i8, align 1 96.02/37.44 %tmp___0 = alloca i32, align 4 96.02/37.44 %1 = call zeroext i1 (...)* @__VERIFIER_nondet_bool() 96.02/37.44 %2 = zext i1 %1 to i8 96.02/37.44 store %2, @gate3Failed 96.02/37.44 %3 = load @gate3Failed 96.02/37.44 %4 = trunc i8 %3 to i1 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @write_history_bool(i32 2, i1 zeroext %4) 96.02/37.44 %5 = load @gate3Failed 96.02/37.44 %6 = trunc i8 %5 to i1 96.02/37.44 br %6, %7, %28 96.02/37.44 7: 96.02/37.44 %8 = load @nomsg 96.02/37.44 %9 = sext i8 %8 to i32 96.02/37.44 %10 = load @nomsg 96.02/37.44 %11 = sext i8 %10 to i32 96.02/37.44 %12 = icmp ne %9 %11 96.02/37.44 br %12, %13, %22 96.02/37.44 13: 96.02/37.44 %14 = load @g3v_new 96.02/37.44 %15 = sext i8 %14 to i32 96.02/37.44 %16 = load @nomsg 96.02/37.44 %17 = sext i8 %16 to i32 96.02/37.44 %18 = icmp eq %15 %17 96.02/37.44 br %18, %19, %22 96.02/37.44 19: 96.02/37.44 %20 = load @nomsg 96.02/37.44 %21 = sext i8 %20 to i32 96.02/37.44 br %25 96.02/37.44 22: 96.02/37.44 %23 = load @g3v_new 96.02/37.44 %24 = sext i8 %23 to i32 96.02/37.44 br %25 96.02/37.44 25: 96.02/37.44 %26 = phi [%21, %19], [%24, %22] 96.02/37.44 %27 = trunc i32 %26 to i8 96.02/37.44 store %27, @g3v_new 96.02/37.44 br %71 96.02/37.44 28: 96.02/37.44 %29 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.02/37.44 store %29, %tmp 96.02/37.44 %30 = load %tmp 96.02/37.44 store %30, %next_state 96.02/37.44 %31 = load %next_state 96.02/37.44 %32 = sext i8 %31 to i32 96.02/37.44 %33 = icmp eq %32 0 96.02/37.44 br %33, %34, %35 96.02/37.44 34: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %48 96.02/37.44 35: 96.02/37.44 %36 = load %next_state 96.02/37.44 %37 = sext i8 %36 to i32 96.02/37.44 %38 = icmp eq %37 1 96.02/37.44 br %38, %39, %40 96.02/37.44 39: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %47 96.02/37.44 40: 96.02/37.44 %41 = load %next_state 96.02/37.44 %42 = sext i8 %41 to i32 96.02/37.44 %43 = icmp eq %42 2 96.02/37.44 br %43, %44, %45 96.02/37.44 44: 96.02/37.44 store 1, %tmp___0 96.02/37.44 br %46 96.02/37.44 45: 96.02/37.44 store 0, %tmp___0 96.02/37.44 br %46 96.02/37.44 46: 96.02/37.44 br %47 96.02/37.44 47: 96.02/37.44 br %48 96.02/37.44 48: 96.02/37.44 %49 = load %tmp___0 96.02/37.44 %50 = icmp ne %49 0 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %50) 96.02/37.44 %51 = load %next_state 96.02/37.44 %52 = sext i8 %51 to i32 96.02/37.44 %53 = load @nomsg 96.02/37.44 %54 = sext i8 %53 to i32 96.02/37.44 %55 = icmp ne %52 %54 96.02/37.44 br %55, %56, %65 96.02/37.44 56: 96.02/37.44 %57 = load @g3v_new 96.02/37.44 %58 = sext i8 %57 to i32 96.02/37.44 %59 = load @nomsg 96.02/37.44 %60 = sext i8 %59 to i32 96.02/37.44 %61 = icmp eq %58 %60 96.02/37.44 br %61, %62, %65 96.02/37.44 62: 96.02/37.44 %63 = load %next_state 96.02/37.44 %64 = sext i8 %63 to i32 96.02/37.44 br %68 96.02/37.44 65: 96.02/37.44 %66 = load @g3v_new 96.02/37.44 %67 = sext i8 %66 to i32 96.02/37.44 br %68 96.02/37.44 68: 96.02/37.44 %69 = phi [%64, %62], [%67, %65] 96.02/37.44 %70 = trunc i32 %69 to i8 96.02/37.44 store %70, @g3v_new 96.02/37.44 br %71 96.02/37.44 71: 96.02/37.44 ret void 96.02/37.44 96.02/37.44 *BasicFunctionTypename: "voter" linkageType: EXTERNALLY_VISIBLE returnParam: BasicVoidType parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.02/37.44 0: 96.02/37.44 %voted_value = alloca i8, align 1 96.02/37.44 %1 = load @nomsg 96.02/37.44 store %1, %voted_value 96.02/37.44 %2 = load @g1v_old 96.02/37.44 store %2, @VALUE1 96.02/37.44 %3 = load @nomsg 96.02/37.44 store %3, @g1v_old 96.02/37.44 %4 = load @g2v_old 96.02/37.44 store %4, @VALUE2 96.02/37.44 %5 = load @nomsg 96.02/37.44 store %5, @g2v_old 96.02/37.44 %6 = load @g3v_old 96.02/37.44 store %6, @VALUE3 96.02/37.44 %7 = load @nomsg 96.02/37.44 store %7, @g3v_old 96.02/37.44 %8 = load @VALUE1 96.02/37.44 %9 = sext i8 %8 to i32 96.02/37.44 %10 = load @VALUE2 96.02/37.44 %11 = sext i8 %10 to i32 96.02/37.44 %12 = icmp eq %9 %11 96.02/37.44 br %12, %13, %15 96.02/37.44 13: 96.02/37.44 %14 = load @VALUE1 96.02/37.44 store %14, %voted_value 96.02/37.44 br %80 96.02/37.44 15: 96.02/37.44 %16 = load @VALUE1 96.02/37.44 %17 = sext i8 %16 to i32 96.02/37.44 %18 = load @VALUE3 96.02/37.44 %19 = sext i8 %18 to i32 96.02/37.44 %20 = icmp eq %17 %19 96.02/37.44 br %20, %21, %32 96.02/37.44 21: 96.02/37.44 %22 = load @VALUE1 96.02/37.44 %23 = sext i8 %22 to i32 96.02/37.44 %24 = load @nomsg 96.02/37.44 %25 = sext i8 %24 to i32 96.02/37.44 %26 = icmp eq %23 %25 96.02/37.44 br %26, %27, %29 96.02/37.44 27: 96.02/37.44 %28 = load @VALUE2 96.02/37.44 store %28, %voted_value 96.02/37.44 br %31 96.02/37.44 29: 96.02/37.44 %30 = load @VALUE1 96.02/37.44 store %30, %voted_value 96.02/37.44 br %31 96.02/37.44 31: 96.02/37.44 br %79 96.02/37.44 32: 96.02/37.44 %33 = load @VALUE2 96.02/37.44 %34 = sext i8 %33 to i32 96.02/37.44 %35 = load @VALUE3 96.02/37.44 %36 = sext i8 %35 to i32 96.02/37.44 %37 = icmp eq %34 %36 96.02/37.44 br %37, %38, %50 96.02/37.44 38: 96.02/37.44 %39 = load @VALUE2 96.02/37.44 store %39, %voted_value 96.02/37.44 %40 = load @VALUE2 96.02/37.44 %41 = sext i8 %40 to i32 96.02/37.44 %42 = load @nomsg 96.02/37.44 %43 = sext i8 %42 to i32 96.02/37.44 %44 = icmp eq %41 %43 96.02/37.44 br %44, %45, %47 96.02/37.44 45: 96.02/37.44 %46 = load @VALUE1 96.02/37.44 store %46, %voted_value 96.02/37.44 br %49 96.02/37.44 47: 96.02/37.44 %48 = load @VALUE2 96.02/37.44 store %48, %voted_value 96.02/37.44 br %49 96.02/37.44 49: 96.02/37.44 br %78 96.02/37.44 50: 96.02/37.44 %51 = load @VALUE1 96.02/37.44 %52 = sext i8 %51 to i32 96.02/37.44 %53 = load @nomsg 96.02/37.44 %54 = sext i8 %53 to i32 96.02/37.44 %55 = icmp ne %52 %54 96.02/37.44 br %55, %56, %58 96.02/37.44 56: 96.02/37.44 %57 = load @VALUE1 96.02/37.44 store %57, %voted_value 96.02/37.44 br %77 96.02/37.44 58: 96.02/37.44 %59 = load @VALUE2 96.02/37.44 %60 = sext i8 %59 to i32 96.02/37.44 %61 = load @nomsg 96.02/37.44 %62 = sext i8 %61 to i32 96.02/37.44 %63 = icmp ne %60 %62 96.02/37.44 br %63, %64, %66 96.02/37.44 64: 96.02/37.44 %65 = load @VALUE2 96.02/37.44 store %65, %voted_value 96.02/37.44 br %76 96.02/37.44 66: 96.02/37.44 %67 = load @VALUE3 96.02/37.44 %68 = sext i8 %67 to i32 96.02/37.44 %69 = load @nomsg 96.02/37.44 %70 = sext i8 %69 to i32 96.02/37.44 %71 = icmp ne %68 %70 96.02/37.44 br %71, %72, %74 96.02/37.44 72: 96.02/37.44 %73 = load @VALUE3 96.02/37.44 store %73, %voted_value 96.02/37.44 br %75 96.02/37.44 74: 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext 0) 96.02/37.44 br %75 96.02/37.44 75: 96.02/37.44 br %76 96.02/37.44 76: 96.02/37.44 br %77 96.02/37.44 77: 96.02/37.44 br %78 96.02/37.44 78: 96.02/37.44 br %79 96.02/37.44 79: 96.02/37.44 br %80 96.02/37.44 80: 96.02/37.44 %81 = load %voted_value 96.02/37.44 Unnamed Call-Instruction = call BasicVoidType @write_history_int8(i32 3, i8 signext %81) 96.25/37.44 ret void 96.25/37.44 96.25/37.44 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 96.25/37.44 0: 96.25/37.44 %1 = alloca i32, align 4 96.25/37.44 %c1 = alloca i32, align 4 96.25/37.44 %i2 = alloca i32, align 4 96.25/37.44 store 0, %1 96.25/37.44 store 0, %c1 96.25/37.44 %2 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %3 = zext i1 %2 to i8 96.25/37.44 store %3, @gate1Failed 96.25/37.44 %4 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %5 = zext i1 %4 to i8 96.25/37.44 store %5, @gate2Failed 96.25/37.44 %6 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %7 = zext i1 %6 to i8 96.25/37.44 store %7, @gate3Failed 96.25/37.44 %8 = call signext i8 @__VERIFIER_nondet_msg_t() 96.25/37.44 store %8, @VALUE1 96.25/37.44 %9 = call signext i8 @__VERIFIER_nondet_msg_t() 96.25/37.44 store %9, @VALUE2 96.25/37.44 %10 = call signext i8 @__VERIFIER_nondet_msg_t() 96.25/37.44 store %10, @VALUE3 96.25/37.44 %11 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %12 = zext i1 %11 to i8 96.25/37.44 store %12, @gate1Failed_History_0 96.25/37.44 %13 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %14 = zext i1 %13 to i8 96.25/37.44 store %14, @gate1Failed_History_1 96.25/37.44 %15 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %16 = zext i1 %15 to i8 96.25/37.44 store %16, @gate1Failed_History_2 96.25/37.44 %17 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %18 = zext i1 %17 to i8 96.25/37.44 store %18, @gate2Failed_History_0 96.25/37.44 %19 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %20 = zext i1 %19 to i8 96.25/37.44 store %20, @gate2Failed_History_1 96.25/37.44 %21 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %22 = zext i1 %21 to i8 96.25/37.44 store %22, @gate2Failed_History_2 96.25/37.44 %23 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %24 = zext i1 %23 to i8 96.25/37.44 store %24, @gate3Failed_History_0 96.25/37.44 %25 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %26 = zext i1 %25 to i8 96.25/37.44 store %26, @gate3Failed_History_1 96.25/37.44 %27 = call zeroext i1 @__VERIFIER_nondet__Bool() 96.25/37.44 %28 = zext i1 %27 to i8 96.25/37.44 store %28, @gate3Failed_History_2 96.25/37.44 %29 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.25/37.44 store %29, @votedValue_History_0 96.25/37.44 %30 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.25/37.44 store %30, @votedValue_History_1 96.25/37.44 %31 = call signext i8 (...)* @__VERIFIER_nondet_int8_t() 96.25/37.44 store %31, @votedValue_History_2 96.25/37.44 %32 = call i32 @init() 96.25/37.44 store %32, %i2 96.25/37.44 %33 = load %i2 96.25/37.44 %34 = icmp ne %33 0 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @__VERIFIER_assume(i1 zeroext %34) 96.25/37.44 %35 = load @nomsg 96.25/37.44 store %35, @g1v_old 96.25/37.44 %36 = load @nomsg 96.25/37.44 store %36, @g1v_new 96.25/37.44 %37 = load @nomsg 96.25/37.44 store %37, @g2v_old 96.25/37.44 %38 = load @nomsg 96.25/37.44 store %38, @g2v_new 96.25/37.44 %39 = load @nomsg 96.25/37.44 store %39, @g3v_old 96.25/37.44 %40 = load @nomsg 96.25/37.44 store %40, @g3v_new 96.25/37.44 store 0, %i2 96.25/37.44 br %41 96.25/37.44 41: 96.25/37.44 %42 = load %i2 96.25/37.44 %43 = icmp slt %42 10 96.25/37.44 br %43, %44, %56 96.25/37.44 44: 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @gate1_each_pals_period() 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @gate2_each_pals_period() 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @gate3_each_pals_period() 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @voter() 96.25/37.44 %45 = load @g1v_new 96.25/37.44 store %45, @g1v_old 96.25/37.44 %46 = load @nomsg 96.25/37.44 store %46, @g1v_new 96.25/37.44 %47 = load @g2v_new 96.25/37.44 store %47, @g2v_old 96.25/37.44 %48 = load @nomsg 96.25/37.44 store %48, @g2v_new 96.25/37.44 %49 = load @g3v_new 96.25/37.44 store %49, @g3v_old 96.25/37.44 %50 = load @nomsg 96.25/37.44 store %50, @g3v_new 96.25/37.44 %51 = call i32 @check() 96.25/37.44 store %51, %c1 96.25/37.44 %52 = load %c1 96.25/37.44 %53 = icmp ne %52 0 96.25/37.44 Unnamed Call-Instruction = call BasicVoidType @assert(i1 zeroext %53) 96.25/37.44 %54 = load %i2 96.25/37.44 %55 = add %54 1 96.25/37.44 store %55, %i2 96.25/37.44 br %41 96.25/37.44 56: 96.25/37.44 %57 = load %1 96.25/37.44 ret %57 96.25/37.44 96.25/37.44 96.25/37.44 Analyze Termination of all function calls matching the pattern: 96.25/37.44 main() 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (3) LLVMToTerminationGraphProof (EQUIVALENT) 96.25/37.44 Constructed symbolic execution graph for LLVM program and proved memory safety. 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (4) 96.25/37.44 Obligation: 96.25/37.44 SE Graph 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (5) SymbolicExecutionGraphToSCCProof (SOUND) 96.25/37.44 Splitted symbolic execution graph to 3 SCCs. 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (6) 96.25/37.44 Complex Obligation (AND) 96.25/37.44 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (7) 96.25/37.44 Obligation: 96.25/37.44 SCC 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (8) 96.25/37.44 Obligation: 96.25/37.44 SCC 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (9) 96.25/37.44 Obligation: 96.25/37.44 SCC 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (10) SymbolicExecutionGraphToLassoProof (COMPLETE) 96.25/37.44 Converted SEGraph to 108 dependent lassos. 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (11) 96.25/37.44 Complex Obligation (AND) 96.25/37.44 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (12) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (13) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (14) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (15) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (16) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (17) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (18) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (19) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (20) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (21) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (22) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (23) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (24) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (25) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (26) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (27) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (28) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (29) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (30) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (31) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (32) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (33) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (34) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (35) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (36) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (37) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (38) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (39) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (40) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (41) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (42) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (43) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (44) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (45) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (46) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (47) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (48) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (49) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (50) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (51) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (52) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (53) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (54) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (55) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (56) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (57) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (58) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (59) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (60) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (61) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (62) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (63) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (64) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (65) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (66) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (67) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (68) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (69) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (70) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (71) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (72) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (73) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (74) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (75) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (76) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (77) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (78) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (79) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (80) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (81) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (82) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (83) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (84) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (85) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (86) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (87) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (88) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (89) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (90) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (91) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (92) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (93) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (94) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (95) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (96) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (97) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (98) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (99) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (100) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (101) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (102) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (103) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (104) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (105) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (106) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (107) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (108) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (109) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (110) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (111) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (112) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (113) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (114) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (115) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (116) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (117) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (118) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.25/37.44 ---------------------------------------- 96.25/37.44 96.25/37.44 (119) 96.25/37.44 Obligation: 96.25/37.44 Lasso 96.26/37.48 EOF