There are also other ways to express the empty type by means of other Nuprl primitives, such as,
Thm* Void =ext {x: | x<x }
Thm* Void =ext rec(A.A) 
Thm* Void =ext ( since these singleton types are disjoint.x:
. {x:
})
And of course,  A
 A
Here are a few examples of how 
Thm* Void A =ext Void
Thm* Void List =ext {nil:Void List} 
Thm* Void A =ext {
x.x:Void
A}
The last theorem above states that 
 A
A x.x)
x.x)
Thm* ( x.whatever) = (
x.x)
Void
A
So, although 
 A
A
Similarly, the intersection over the empty domain is a trivial one-element type whose single member is denoted by every expression that can denote at all:
Thm* whatever1 = whatever2 Whatever(given Void)
Thm* whatever1 = whatever2 (
x:Void. Whatever(x))
Sometimes this last type is denoted 
Thm* A Top
where
Def Top == Void(given Void) .
See 
About:
|  |  |  |  |  |  |  |  |  | 
|  |  |  |  |  |  |  |  |