![]() |
![]() |
![]() |
We call fun a dependent functiondependent function
constructor and prod a dependent product
dependent product.32 We adopt a different notation from
and
to suggest
the more fundamental character of the construction. If we have
,
then
is the same as
and
is the same as
prod(A; x.T(x)). But now we can iterate the
construction without going beyond U1. That is, we postulate that U1 is
closed under dependent functions and products.
This conception of
and
is reminiscent of the collection
axiom in set theory. For example, in ZF if R(x, y) is a
single-valued relation on sets, then we can form
.
Another way to think of collection is to have a
function
where
and postulate the
existence of the set
.
The similarity between collection and these rules is that we can
consider B in
to define a function
from A into U1. With the addition of dependent types, the
intuitive model becomes more complex. What assurance can we offer
that the theory is still consistent, e.g. that we can't derive 0=1in N or that we derive
but evaluation of t fails to
terminate? Can we continue to understand the model inductively? If
we can build an inductive model of U1 then we can be assured of
not only consistency but of a constructive explanation. We answer
these questions next.