一款用于教育的证明检查器
A proof checker meant for education

原始链接: https://jsiek.github.io/deduce/index.html

Deduce 是一款教育工具,旨在帮助学生学习和练习证明函数式程序的正确性。其目标是使形式化验证易于理解,加深对逻辑的理解,并提高数学证明写作能力。 Deduce 面向具有基本编程经验(Java、Python、C++)和一些离散数学基础的学生,它提供了一个编写函数式程序和构建其属性形式化证明的平台。 Deduce 提供教程、示例和练习来指导学生完成整个过程。Deduce 参考手册和速查表等资源可提供支持和指导。线性搜索的示例实现和证明展示了该工具的功能。Deduce 是一款通过志愿者工作开发的开源工具,它促进了形式化验证方面的实践学习。

Hacker News 最新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 一款面向教育的证明检查器 (jsiek.github.io) 3 分,由 alabhyajindal 发布,2 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 vitalmixofntrnt 1 小时前 [–] 由于 Curry-Howard 同构,他们是否有编译器可以将用这种语言编写的证明编译成机器码,并可选地支持内联汇编? 回复 加入我们 6 月 16-17 日在旧金山举办的 AI 初创公司学校! 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系我们 搜索:

原文

Teaching correctness proofs of functional programs to students.

Deduce hippo logo

What is Deduce?

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

  • Ease their way into proving the correctness of programs.
  • Deepening their understanding of logic.
  • Improve their ability to write mathematical proofs.

Who can use Deduce?

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

  • Basic programming skills in a mainstream language such as Java, Python, or C++
  • Some exposure to logic, as one would learn in a course on Discrete Mathematics

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.

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.

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.

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.

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.

  • Matei Cloteaux
  • Shulin Gonsalves
  • Calvin Josenhans
  • Jeremy Siek
联系我们 contact @ memedata.com