HTT: Hoare Type Theory

HTT is a verification system which incorporates Hoare style specifications via preconditions and postconditions, into types. A Hoare type {P}x : A{Q} denotes computations with a precondition P and postcondition Q, returning a value of type A. Hoare types are a dependently typed version of monads, as used in the programming language Haskell. Monads higenically combine the language features for pure functional programming, with those for imperative programming, such as state or exceptions. In this sense, HTT establishes a formal connection between Hoare logic and monads, in the style of Curry-Howard isomorphism: every effectful command in HTT has a type which corresponds to the appropriate inference rule in Hoare logic, and vice versa, every inference rule in (a version of) Hoare logic, corresponds to a command in HTT which has that rule as the type.

Source code for HTT is available here.

Supplementary material:

Last modified: Tue Mar 10 17:02:50 CET 2015