Theory and Practice of Formal Methods