Psi-calculi: a framework for mobile processes with nominal data and logic (Logical Methods in Computer Science, 2011)