jsiek/deduce

A proof checker meant for education. Primarily for teaching proofs of correctness of functional programs.

Python

125

2,471 commits

updated Aug 13, 2026

See the code

README

Deduce

Blue Hippo next to the word Deduce.

A proof checker and small functional language for teaching logic.

Quick start

Deduce needs Python 3.12+ and the Lark parsing library. From a fresh clone:

python3 -m pip install lark
python3 deduce.py example.pf

(Use python if your system aliases that to Python 3; recent macOS and some Linux distros ship only python3. On Windows the bundled launcher is py.)

You should see:

example.pf is valid

For installation details, editor integrations, AI-assisted proof completion, and the language introduction, see Getting Started or the Deduce website.

More worked examples live in examples/.

Repo layout

  • /compiler Deduce-to-C compiler (user guide)
  • /docs Documentation for contributing to Deduce
  • /editor Editor integrations (Emacs, VS Code)
  • /examples Worked example proofs
  • /gh_pages Source code for the Deduce website
  • /lib Deduce library files. This includes Nat, List, etc.
  • /live_code_vercel_api Source code for Deduce live code
  • /logos The Hippopotamus logo and other images.
  • /test Deduce files used for testing Deduce.

Contributors

jsiek

1,920 commits

HalflingHelper

177 commits

mateidragony

171 commits

Temperz87

152 commits

jsiek/deduce

A proof checker meant for education. Primarily for teaching proofs of correctness of functional programs.

Python

125

2,471 commits

updated Aug 13, 2026

See the code

README

Deduce

Blue Hippo next to the word Deduce.

A proof checker and small functional language for teaching logic.

Quick start

Deduce needs Python 3.12+ and the Lark parsing library. From a fresh clone:

python3 -m pip install lark
python3 deduce.py example.pf

(Use python if your system aliases that to Python 3; recent macOS and some Linux distros ship only python3. On Windows the bundled launcher is py.)

You should see:

example.pf is valid

For installation details, editor integrations, AI-assisted proof completion, and the language introduction, see Getting Started or the Deduce website.

More worked examples live in examples/.

Repo layout

  • /compiler Deduce-to-C compiler (user guide)
  • /docs Documentation for contributing to Deduce
  • /editor Editor integrations (Emacs, VS Code)
  • /examples Worked example proofs
  • /gh_pages Source code for the Deduce website
  • /lib Deduce library files. This includes Nat, List, etc.
  • /live_code_vercel_api Source code for Deduce live code
  • /logos The Hippopotamus logo and other images.
  • /test Deduce files used for testing Deduce.

Contributors

jsiek

1,920 commits

HalflingHelper

177 commits

mateidragony

171 commits

Temperz87

152 commits

Languages

Python

85.4%

Emacs Lisp

8.1%

JavaScript

2.7%

CSS

2.1%