Bounded genericity with dependent types

Recall that the RINGS $ R$ in Computer Algebra are obtained by applying rules like
(1)
$ R = {\mbox{${\mathbb{Z}}$}}$ ,
(2)
$ n \ \longmapsto \ {\mbox{${\mathbb{Z}}$}}/n{\mbox{${\mathbb{Z}}$}}$ ,
(3)
$ R \ \longmapsto \ {R}[X]$ ,
(4)
$ (R, {\cal I}) \ \longmapsto \ R/{\cal I}$
(5)
$ R \ \longmapsto \ {\bf Fr}({R})$ ,
(6)
$ (R_1, R_2)
\ \longmapsto \ \ R_1 \times R_2$ .
To implement the above rules we would like to do the following constructions in our programming language.

Marc Moreno Maza
2008-01-07