An extension of Hoare logic for reasoning about heap-manipulating programs. Adds a separating conjunction P∗QP * QP∗Q that asserts ”PPP and QQQ hold of disjoint parts of the heap” — making local reasoning (the frame rule) sound.