Trustworthy communicating software systems


  • Communicating software systems often fail; they might dead-lock or run out of memory
  • We prove dead-lock freedom by construction on a high-level language for communications
  • We allow for proofs of space safety (no out-of-memory errors) via verified cost semantics

                # A
                x = crunch()
                if good(x)
                  send(B,x)
                else
                  🙊
              

                # B
                y = receive(A)
                🙉
                ...
              

                # C
                w = big_crunch()
                🔥🔥🔥
                ...
              

Alejandro Gómez-Londoño (alejandro.gomez@chalmers.se)