Logical Aspects of Denotational Semantics