Verification: Theory and Practice