Reasoning about knowledge