On Using Separation Logic to Detect Snapshot Isolation Anomalies in Software Transactional Memory