Agda

Dependent types for programs and proofs

Visit Agda official site

What it does

Agda provides a dependently typed functional language in which types can depend on values, with an interactive interface assisting development of programs and proofs.

When to use it

For structures such as fixed-length vectors, examine inductive-family examples to understand the relationship between values and their associated types.

Rocq

Interactive formal reasoning

  • verification
  • programming

Research

Dafny

Programming with specifications and verification

  • verification
  • programming

Research

Isabelle

Formal-language theorem proving

  • verification
  • programming

Research