I. Correctness and Progress


In a concurrent setting, we need to specify both the safety and the liveness properties of an object

1. Safety and Liveness

Safety ⇒ Can be checked

Liveness ⇒ Can’t be checked

2. Objective

Need a way to define

  1. When an implementation is correct
  2. The conditions under which it guarantees progress

In this lecture, we focus on correctness.

II. Sequential Objects