Abstract. Separation logic is a popular specification language for imperative programs where the heap can only be mentioned through pointsto assertions. However, separation logic's take on assertions does not match well with the classical view of assertions as boolean, side effectfree, potentially heap-dependent expressions from the host programming language familiar to many developers. In this paper, we propose a variant of separation logic where side effectfree expressions from the host programming language, such as pointer dereferences and invocations of pure methods, can be used in assertions. We modify the symbolic execution-based verification algorithm used in Smallfoot to support mechanized checking of our variant of separation logic. We have implemented this algorithm in a tool and used the tool to verify some interesting programming patterns.