Program Development by Proof Transformation

We begin by reviewing the natural deduction rules for the →∧∀-fragment of minimal logic. It is shown how intuitionistic and classical logic can be embedded. Recursion and induction is added to obtain a more realistic proof system. Simple types are added in order to make the language more expressive. We also consider two alternative methods to deal with the strong or constructive existential quantifier ∃*. Finally we discuss the well-known notion of an extracted program of a derivation involving ∃*, in order to set up a relation between the two alternatives.