The document discusses the ATS programming language, which aims to unify implementation, formal specification, and proof in one language. It has dependent types, linear types, and is compiled to C, JavaScript, and Erlang. ATS can be used for safety critical software, resource management, and integrating with C. Examples are provided of using dependent types for specifications and verification via theorem proving. The last sections discuss using ATS for modeling concurrent systems and combining type checking with model checking for verification.