Disclaimer: I am one of the maintainers of the web tutorial.<p>Thanks for posting this!<p>This tutorial is being used as a textbook for the 'Interactive Theorem Proving' course at Carnegie Mellon University (<a href="http://leanprover.github.io/cmu-15815-s15" rel="nofollow">http://leanprover.github.io/cmu-15815-s15</a>). It's mainly written by Prof. Jeremy Avigad (CMU) and Leonardo de Moura (MSR), with help of many contributors. While the course is listed as a graduate-level course, I think the tutorial is kindly written and readable for one who has basic understanding in logic and wants to learn more about interactive theorem proving. In fact, we do have undergraduate students in the class taking this course for credits as well.<p>The tutorial is (and will be) including the following topics:<p><pre><code> - dependent data types
- type theory as a proof language
- inductive data types
- declarative vs. tactic-based proof style
- classical vs. constructive logic
- encodings of structures and type classes
- elaboration and unification algorithms
- homotopy type theory
- ...
</code></pre>
The course is based on a new open-source theorem prover, Lean (<a href="http://leanprover.github.io" rel="nofollow">http://leanprover.github.io</a>), developed at Microsoft Research.<p>We've tried hard to make the tutorial on 'Interactive Theorem Proving' really <i>interactive</i>. It contains many examples and exercises, and we provide an environment where you can load, modify, and execute code blocks. Technically, we use emscripten to compile C++ code into JavaScript. As a result, everything is running on a web-browser without a server-side help.<p>PDF version of the tutorial is also available: <a href="https://leanprover.github.io/tutorial/tutorial.pdf" rel="nofollow">https://leanprover.github.io/tutorial/tutorial.pdf</a><p>The tutorial is still in-progress and your contributions are welcome. We host the repository at <a href="https://github.com/leanprover/tutorial" rel="nofollow">https://github.com/leanprover/tutorial</a> . Please feel free to open an issue or make a pull request if you find typos or have suggestions.