Mechanical verification of Lamport’s Bakery algorithm

Proof assistants like PVS can be used fruitfully for the design and verification of concurrent algorithms. The technique is presented here by applying it to Lamport’s Bakery algorithm. The proofs for safety properties such as mutual exclusion, first-come–first-served, and absence of deadlock are bas...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Science of computer programming Ročník 78; číslo 9; s. 1622 - 1638
Hlavní autor: Hesselink, Wim H.
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier B.V 01.09.2013
Témata:
ISSN:0167-6423, 1872-7964
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Proof assistants like PVS can be used fruitfully for the design and verification of concurrent algorithms. The technique is presented here by applying it to Lamport’s Bakery algorithm. The proofs for safety properties such as mutual exclusion, first-come–first-served, and absence of deadlock are based on invariants. The argument for liveness (progress) is given in a set-theoretic version of temporal logic. Liveness requires the assumption of weak fairness and holds only for executions with not more than finitely many fault steps per process. The condition of finitely many faults can be removed by postulating strong fairness. The algorithm and its verification are extended to allow unboundedly many processes, by means of expandable arrays and weak atomic snapshots. •Lamport’s Bakery algorithm is verified with the proof assistant PVS.•The first-come–first-served property is verified with a history variable.•Progress is verified in linear-time temporal logic.•Only weak assumptions on fairness and fault tolerance are needed.•It is allowed that new processes arrive.
ISSN:0167-6423
1872-7964
DOI:10.1016/j.scico.2013.03.003