Views : Compositional Reasoning for Concurrent Programs A semantic pearl