Research Article

Formal Modelling of PBFT Consensus Algorithm in Event-B

Listing 9

Context ‘Ma1_ctx’.
Context Ma1_ctx extends Ma0_ctx
Sets value
Constants contents Correct_value Faulty_value H
Axioms
 @axm1 value≠∅
 @axm2 finite(value)
 @axm3 partition(Value,Correct_value,Faulty_value)
 @axm4 card(Correct_value)=card(Faulty_value)
 @axm5 contentsmessage↣(ℕ×value)
 @axm6 ∀x,y·x∈message∧y∈message∧x≠y⇒
prj2(contents(x))≠prj2(contents(y))
 @axm7 ∀x·x∈message⇒(∃y·y∈message∧x≠y∧
    (prj1(contents(x))=prj1(contents(y))+1∨
     prj1(contents(x))=prj1(contents(y))−1))
 @axm8 ∀x,y·x∈message∧y∈message∧x≠y∧⇒
(prj2(contents(x))∈Correct_value∧prj2(contents(y))∈Faulty_value)∨
(prj2(contents(x))∈Faulty_value∧prj2(contents(y))∈Correct_value)
 @axm9 H=2
End