!747 abstract class Pred { boolean eval(Map s); } m { static int nextMCellID; static new Map memoryCells; // a memory cell static class MCell { S id; O value; long lastAccess; *(S *id) { lastAccess = now(); } O get() { lastAccess = now(); return value; } void set(O value) { lastAccess = now(); this.value = value; } } static MCell newMCell() { S id = "m" + ++nextMCellID; MCell cell = new MCell(id); memoryCells.put(id, cell); return cell; } static MCell getMCell(S id) { return memoryCells.get(id); } p { defineVerification(" is occupied.", new Pred() { boolean eval(Map s) { S cell = s.get("memory cell"); return memoryCells.get(cell).get() != null; } }); verify("m1 is occupied."); } static void defineVerification(S sentence, Pred p) { } }