Lean

Typed programming and interactive proofs

Visit Lean official site

What it does

Lean provides a programming language and proof assistant combining types, theorems, and automation for expressing programs and formal reasoning within the same environment.

When to use it

For formal-verification learning, examine function and tactic tutorials to read proof states and develop the argument step by step.

Agda

Dependent types for programs and proofs

  • verification
  • programming

Research

Rocq

Interactive formal reasoning

  • verification
  • programming

Research

Dafny

Programming with specifications and verification

  • verification
  • programming

Research