A proof checker meant for education

Teaching correctness proofs of functional programs to students.

Get Started Live Code

Deduce hippopotamus logo

What is Deduce?

Deduce is an automated proof checker meant for use in education to help students:

Who can use Deduce?

The intended audience is students with (roughly) the following background knowledge and skills:

Get Started

Get started by installing the necessary prerequisites and downloading the Deduce source code.

You can also find handy information on setting up your Deduce workspace.

Get Started

Write Deduce Code

Go through a series of examples to familiarize yourself with Deduce functional programming.

Check your understanding with exercises to test your knowledge of the language.

Start Programming

Prove Your Programs

Follow a detailed tutorial to learn how to write logical proofs using Deduce effectively.

Explore all of the features of the Deduce proof language in this comprehensive guide.

Start Proving

Need Help?

The Deduce Reference manual provides an alphabetical list of all the features in Deduce.

The Cheat Sheet gives some advice regarding proof strategy and which Deduce keyword to use next in a proof.

Reference Manual Cheat Sheet

Example Proof

As a taster for what it looks like to write programs and proofs in Deduce, the following is an implementation of the Linear Search algorithm and a proof that item y does not occur in the list xs at a position before the index returned by search(xs, y)

Credits

This open-source software is brought to you by the volunteer work of the following people.