Information Flow: The Logic of Distributed Systems (Cambridge Tracts in Theoretical Computer Science)