@startuml !pragma teoz true database DL actor P1 actor Pi P1 -> P1 : ABcast(m) P1 -> P1 : m \in S P1 -> DL : READ() DL --> P1 : P P1 -> P1 : r_{max} = max\{r : (\_, prove(r)) \in P\} loop \textbf{foreach } r \in \{r_{max} + 1, \dots\} P1 ->(05) Pi : RBcast(prop, S, r, 1) P1 -> DL : PROVE(r) P1 -> DL : APPEND(r) P1 -> DL : READ() DL --> P1 : P alt (1, \text{prove(}r\text{)}) \in P note over P1 : break else (\exists j, r' : (j, prove(r')) \in P \land m \in prop[r'][j]) note over P1 : break end end hide footbox @enduml