SML is a programming language wit a formal proof of semantics. I prefer OCaml for it's good implementation - however good a proof, if the programmer screwed up, or something simply got into way, the end product is flawed. Just my two cents...