Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sav08:lecture26 [2008/05/28 04:03] vkuncak |
sav08:lecture26 [2008/11/14 20:40] (current) vkuncak |
||
---|---|---|---|
Line 27: | Line 27: | ||
* Peter B. Andrews: An Introduction to Mathematical Logic and Type theory: To Truth through Proof, Springer 2002 (Chapter 5: Type Theory) | * Peter B. Andrews: An Introduction to Mathematical Logic and Type theory: To Truth through Proof, Springer 2002 (Chapter 5: Type Theory) | ||
* [[http://imps.mcmaster.ca/doc/seven-virtues.pdf|The Seven Virtues of Simple Type Theory]] | * [[http://imps.mcmaster.ca/doc/seven-virtues.pdf|The Seven Virtues of Simple Type Theory]] | ||
- | |||
===== LCF Theorem Proving Approach ===== | ===== LCF Theorem Proving Approach ===== | ||
Line 34: | Line 33: | ||
[[Immutable Abstract Data Types]] | [[Immutable Abstract Data Types]] | ||
- | |||
- | [[Consequence of Type Safety and Abstraction]] | ||
[[Theorems as Abstract Data Types]] | [[Theorems as Abstract Data Types]] | ||
- | [[Concrete Example in Scala]] | + | [[Proof and Code Generation in LCF Systems]] |
+ | |||
+ | [[http://afp.sourceforge.net/entries/BinarySearchTree.shtml|Binary Search Trees Example]] | ||
Further reading: | Further reading: | ||
- | * [[http://doi.acm.org/10.1145/512760.512773|A Metalanguage for interactive proof in LCF]] | + | * [[http://doi.acm.org/10.1145/512760.512773|A Metalanguage for interactive proof in LCF]] - ML stands for meta-Language, because it was a language for writing theorem provers that prove theorems (in object-language i.e. logic of computable functions) |
* [[http://www.cl.cam.ac.uk/~jrh13/hol-light/index.html|HOL Light]] | * [[http://www.cl.cam.ac.uk/~jrh13/hol-light/index.html|HOL Light]] | ||
* Upcoming book "Introduction to Logic and Automated Theorem Proving" by John Harrison | * Upcoming book "Introduction to Logic and Automated Theorem Proving" by John Harrison | ||
+ | * Logic and Computation: Interactive Proof with Cambridge LCF | ||
+ | |||
+ | ===== Some Interactive Provers ===== | ||
+ | |||
+ | [[http://hol.sourceforge.net/|HOL]] - use directly ML | ||
+ | |||
+ | [[http://www.cl.cam.ac.uk/~jrh13/hol-light/|HOL Light]] - compact version, written in OCaml | ||
+ | |||
+ | [[http://www.cl.cam.ac.uk/research/hvg/Isabelle/|Isabelle]] - popular, ML part largely hidden | ||
- | ===== Interactive Prover Overview ===== | + | [[http://pvs.csl.sri.com/|PVS]] - automation through decision procedures |
- | HOL, Isabelle | + | [[http://coq.inria.fr/|Coq]] - was less automated, now catching up; more complex logic |
- | PVS - decision procedures | + | [[http://www.cs.cornell.edu/Info/Projects/Nuprl/|NuPRL]] - more complex type theory, constructive mathematics |
- | Coq, NuPRL - more complex type theory, constructive mathematics | + | [[http://www.cs.utexas.edu/~moore/acl2/|ACL2]] - emphasis on executable functions, quantifier-free statements, automated induction, pioneering industrial-scale case studies |
- | ACL2 - emphasis on executable functions, quantifier-free statements, automated induction, pioneering industrial-scale case studies | + | ===== Example Results in Isabelle ===== |
+ | <code>NipkowETAL06FlyspeckI, | ||
+ | Paulson03ConsistencyAxiomChoiceIsabelle, | ||
+ | PaulsonGrabczewski96MechanizingSetTheory, | ||
+ | Berghofer07FirstOrderLogicAccordingtoFitting | ||
+ | </code> |