• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
      • Apt
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Legacy-defrstobj
      • Prime-field-constraint-systems
      • Proof-checker-array
      • Soft
      • Rp-rewriter
      • Farray
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Taspi
      • Bitcoin
      • Des
      • Ethereum
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Bigmem
      • Regex
      • ACL2-programming-language
      • Java
      • C
      • Jfkr
      • X86isa
      • Equational
      • Cryptography
      • Where-do-i-place-my-book
      • Json
      • Built-ins
      • Execloader
      • Solidity
      • Paco
      • Concurrent-programs
        • Bakery-algorithm
        • German-protocol
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Testing-utilities
    • Math
  • Projects

Concurrent-programs

ACL2 proofs establishing the fairness of the Bakery Algorithm and the coherence of the German Cache Protocol.

Subtopics

Bakery-algorithm
This set of books shows how one can use stuttering trace containment with fairness constraints to verify concurrent protocols. We apply the method here to prove the correctness of an implementation of the Bakery algorithm. The implementation is interesting in the sense that it depends critically on fair selection of processes to ensure absence of deadlock. We show how the requisite notions can be formalized as generic theories and used in the proof of refinements.
German-protocol
An ACL2 proof of coherence of the German Cache Protocol. The protocol is translated directly into ACL2 from the murphy code provided in ccp.m. The proof involves formalizing coherence and strengthening the property into an inductive invariant.