FTfJP: Formal Techniques for Java-like Programs