For software engineering, how about a practical way to do proofs of correctness for large real-world systems written in mainstream languages?