# * Constructive Proofs and Program Extraction *

## by Christoph Kreitz

2003-2004

The purpose of this lecture is to demonstrate the computational aspects of Type Theory. I will briefly discuss the key features of the Nuprl Proof Development System and then present two different formal proofs of a theorem stating the existence of integer square roots. From a "classical" point of view, these two proofs lead to the same result, but computationally there are vast differences between them. I will demonstrate the latter by running the algorithms extracted from the proofs in the Nuprl system.

**Background Literature:**

Derivation of a Fast Integer Square Root Algorithm

http://www.nuprl.org/Algorithms/03cucs-intsqrt.pdf

http://www.nuprl.org/Algorithms/03cucs-intsqrt.ps

**Slides:**