An Aronszajn tree is a set-theoretic tree of height , with countable levels and no uncountable chain in a partial order, equivalently no cofinal branch. The strict predecessors of a node are well-ordered, and its height is their order type. Such trees exist in ZFC, as the following rationally labelled Aronszajn tree construction shows.
We build countable nonempty levels for all . A node is a strictly increasing function , and the tree order is proper initial-segment extension. Every restriction must lie in . Give nonempty the rational label
and give the empty root label . We require labels to increase strictly along the tree. We also maintain the bounded rational extension property:
Keeping room below every rational cap is what makes the limit step possible.
Start with . At a successor stage, for every and every rational with , include
in . Its label is , strictly larger than its predecessor's. This level is countable. To extend an earlier node below a prescribed cap , first extend to below by the inductive property, if necessary, then choose a new rational label between that label and . Thus the extension property is preserved.
Now let be a nonzero limit. The whole tree below is countable. For each pair with , , and , construct one node at height extending below . There are only countably many such pairs.
Choose a rational with and an increasing sequence
Set . Given with , set
This is rational and satisfies . The successor rule supplies at height . If , take ; otherwise use the already established extension property below to extend to with label below .
The union has domain and extends . It is strictly increasing, and every shorter restriction is already in its prescribed level. All its values are below , while it contains the values . Hence
Every predecessor's label is below the label of some , and hence below . Thus strict increase of labels survives at the limit. Include one such for each pair in , discarding duplicates. This gives a countable level and preserves every bounded extension requirement. In particular applying it to the root makes the level nonempty. The choices here are permitted by the ambient axiom of choice; transfinite recursion through the set completes the construction.
Put . A node of domain has exactly the restrictions of domains as predecessors, so its height is . Therefore has height and countable levels. Since is strictly increasing on comparable nodes, an uncountable chain would inject into the countable set , which is impossible. Each label fiber is a tree antichain, so the tree is even a special Aronszajn tree:
Let witness the stationary diamond principle: for every , the set of with is stationary. We construct a normal splitting Suslin tree; this will be a nonspecial Aronszajn tree.
Construct its levels by recursion. Start with one root, and give every node two immediate successors. At a countable limit , the constructed portion is countable. Through each of its nodes choose a cofinal branch of that portion, and put one new node above each chosen branch at level . This keeps the level countable and gives every earlier node an extension. Branches are identified by their predecessor chains, so nodes at a limit level are uniquely determined by their predecessors.
At a limit , decode as a candidate tree antichain of . If it is maximal, choose the branches just described to meet . This is possible: for any node, maximality supplies a comparable member of , and normality of the already constructed portion extends the larger of those two nodes to a cofinal branch up to . Then every node at level , and every later node, lies above a member of . This is antichain sealing by diamond.
Here is a precise way to handle the coding. Give the countable level node codes in . There is a club set of countable limit with , and on this club the nodes below have exactly the relevant codes below . Empty unused codes are ignored. Thus any subset of the entire tree has an ordinal code set to which the stationary diamond principle applies.
Let now be any maximal tree antichain of the completed tree. There is a club set of such that is maximal in . Indeed, choose a comparable member of for each node; closure under the heights of these witnesses gives that club. Intersect it with the coding club. Stationary correct guessing supplies an on this intersection at which is sealed. A member of at or above level would extend a member of below , contradicting the tree antichain property. So is contained in the countable portion below . Every tree antichain extends to a maximal one, hence every tree antichain is countable.
There is no cofinal branch of length . Otherwise, choosing at each successor level the other successor of its branch node would give an uncountable tree antichain. Thus the resulting tree is a Suslin tree. A special Aronszajn tree is a union of countably many tree antichains; here those would all be countable and could not cover the nodes. Therefore
Construct countable levels of bounded increasing rational sequences, maintaining the bounded rational extension property. At successor stages append every allowed rational. At a countable limit, handle each earlier-node/rational-cap pair by a cofinal sequence of extensions with values approaching a rational strictly below the cap. Its union has that rational supremum. Countably many requirements give a countable new level. Strictly increasing labels exclude uncountable chains, and label fibers are tree antichains, so the result is a special Aronszajn tree.