A forcing name for is a set of ordered pairs where and is itself a forcing name. This recursive definition is made well-founded by assigning the forcing name rank . Names over the ground model are those names belonging to ; conditions remain ground-model objects. A name describes which recursively interpreted elements are activated by the generic filter.
The generic extension is . It is transitive: if , an active pair in supplies a subname with . Ground sets belong to it by their canonical names. Without assuming a weakest condition, use ; nonemptiness of gives .
Induction on forcing name rank gives . The right side is an ordinal of . If is an ordinal, its rank equals , so it is at most a ground-model ordinal. Transitivity of then implies . Conversely every ground ordinal remains the same ordinal in the transitive extension, since membership is unchanged. Hence
This proves forcing preserves ordinals directly from ranks, without assuming cardinal preservation.
The valuation of a forcing name is defined recursively by
The recursion is on forcing name rank. Only pairs with an active condition in contribute elements, and their first coordinates are evaluated in the same filter. Thus a name is a ground-model set, while its value is a set in the generic extension.
A forcing name is built by well-founded recursion: every member of a -name is a pair with and itself a -name of lower forcing name rank. In the ground model all such forcing names form the recursively defined class . Its evaluation by a generic filter is
The recursion is on forcing name rank, not on the forcing order. Forcing names need not have a unique evaluation across different generics, and many different forcing names may have the same evaluation.