Chuangjie Xu, January 2017

We implement the term extraction algorithm via a nonstandard
Dialectica interpretation for system H introduced in

   B. van den Berg, E. Briseid, and P. Safarik, A functional
   interpretation for nonstandard arithmetic, Annals of pure
   and applied logic 163 (2012), no. 12, 1962–1994.

We define system H with 4 inductive datatypes

\begin{code}

import H

\end{code}

and then the term extraction algorithm via a nonstandard Dialectica
interpretation.

\begin{code}

import Dialectica

\end{code}

Extracted terms contain noncomputational information. So we define a
simplify function to remove it.

\begin{code}

import Simp

\end{code}

In the end we present a few simple examples and compare the terms
extracted from different proofs of a theorem.

\begin{code}

import Examples

\end{code}