This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The value of the rank function expressed recursively: the rank of a set is the smallest ordinal number containing the ranks of all members of the set. Proposition 9.17 of TakeutiZaring p. 79. (Contributed by Mario Carneiro, 8-Jun-2013)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | rankuni2b | |- ( A e. U. ( R1 " On ) -> ( rank ` U. A ) = U_ x e. A ( rank ` x ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | uniwf | |- ( A e. U. ( R1 " On ) <-> U. A e. U. ( R1 " On ) ) |
|
| 2 | rankval3b | |- ( U. A e. U. ( R1 " On ) -> ( rank ` U. A ) = |^| { z e. On | A. y e. U. A ( rank ` y ) e. z } ) |
|
| 3 | 1 2 | sylbi | |- ( A e. U. ( R1 " On ) -> ( rank ` U. A ) = |^| { z e. On | A. y e. U. A ( rank ` y ) e. z } ) |
| 4 | eleq2 | |- ( z = U_ x e. A ( rank ` x ) -> ( ( rank ` y ) e. z <-> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) |
|
| 5 | 4 | ralbidv | |- ( z = U_ x e. A ( rank ` x ) -> ( A. y e. U. A ( rank ` y ) e. z <-> A. y e. U. A ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) |
| 6 | iuneq1 | |- ( y = A -> U_ x e. y ( rank ` x ) = U_ x e. A ( rank ` x ) ) |
|
| 7 | 6 | eleq1d | |- ( y = A -> ( U_ x e. y ( rank ` x ) e. On <-> U_ x e. A ( rank ` x ) e. On ) ) |
| 8 | vex | |- y e. _V |
|
| 9 | rankon | |- ( rank ` x ) e. On |
|
| 10 | 9 | rgenw | |- A. x e. y ( rank ` x ) e. On |
| 11 | iunon | |- ( ( y e. _V /\ A. x e. y ( rank ` x ) e. On ) -> U_ x e. y ( rank ` x ) e. On ) |
|
| 12 | 8 10 11 | mp2an | |- U_ x e. y ( rank ` x ) e. On |
| 13 | 7 12 | vtoclg | |- ( A e. U. ( R1 " On ) -> U_ x e. A ( rank ` x ) e. On ) |
| 14 | eluni2 | |- ( y e. U. A <-> E. x e. A y e. x ) |
|
| 15 | nfv | |- F/ x A e. U. ( R1 " On ) |
|
| 16 | nfiu1 | |- F/_ x U_ x e. A ( rank ` x ) |
|
| 17 | 16 | nfel2 | |- F/ x ( rank ` y ) e. U_ x e. A ( rank ` x ) |
| 18 | r1elssi | |- ( A e. U. ( R1 " On ) -> A C_ U. ( R1 " On ) ) |
|
| 19 | 18 | sseld | |- ( A e. U. ( R1 " On ) -> ( x e. A -> x e. U. ( R1 " On ) ) ) |
| 20 | rankelb | |- ( x e. U. ( R1 " On ) -> ( y e. x -> ( rank ` y ) e. ( rank ` x ) ) ) |
|
| 21 | 19 20 | syl6 | |- ( A e. U. ( R1 " On ) -> ( x e. A -> ( y e. x -> ( rank ` y ) e. ( rank ` x ) ) ) ) |
| 22 | ssiun2 | |- ( x e. A -> ( rank ` x ) C_ U_ x e. A ( rank ` x ) ) |
|
| 23 | 22 | sseld | |- ( x e. A -> ( ( rank ` y ) e. ( rank ` x ) -> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) |
| 24 | 23 | a1i | |- ( A e. U. ( R1 " On ) -> ( x e. A -> ( ( rank ` y ) e. ( rank ` x ) -> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) ) |
| 25 | 21 24 | syldd | |- ( A e. U. ( R1 " On ) -> ( x e. A -> ( y e. x -> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) ) |
| 26 | 15 17 25 | rexlimd | |- ( A e. U. ( R1 " On ) -> ( E. x e. A y e. x -> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) |
| 27 | 14 26 | biimtrid | |- ( A e. U. ( R1 " On ) -> ( y e. U. A -> ( rank ` y ) e. U_ x e. A ( rank ` x ) ) ) |
| 28 | 27 | ralrimiv | |- ( A e. U. ( R1 " On ) -> A. y e. U. A ( rank ` y ) e. U_ x e. A ( rank ` x ) ) |
| 29 | 5 13 28 | elrabd | |- ( A e. U. ( R1 " On ) -> U_ x e. A ( rank ` x ) e. { z e. On | A. y e. U. A ( rank ` y ) e. z } ) |
| 30 | intss1 | |- ( U_ x e. A ( rank ` x ) e. { z e. On | A. y e. U. A ( rank ` y ) e. z } -> |^| { z e. On | A. y e. U. A ( rank ` y ) e. z } C_ U_ x e. A ( rank ` x ) ) |
|
| 31 | 29 30 | syl | |- ( A e. U. ( R1 " On ) -> |^| { z e. On | A. y e. U. A ( rank ` y ) e. z } C_ U_ x e. A ( rank ` x ) ) |
| 32 | 3 31 | eqsstrd | |- ( A e. U. ( R1 " On ) -> ( rank ` U. A ) C_ U_ x e. A ( rank ` x ) ) |
| 33 | 1 | biimpi | |- ( A e. U. ( R1 " On ) -> U. A e. U. ( R1 " On ) ) |
| 34 | elssuni | |- ( x e. A -> x C_ U. A ) |
|
| 35 | rankssb | |- ( U. A e. U. ( R1 " On ) -> ( x C_ U. A -> ( rank ` x ) C_ ( rank ` U. A ) ) ) |
|
| 36 | 33 34 35 | syl2im | |- ( A e. U. ( R1 " On ) -> ( x e. A -> ( rank ` x ) C_ ( rank ` U. A ) ) ) |
| 37 | 36 | ralrimiv | |- ( A e. U. ( R1 " On ) -> A. x e. A ( rank ` x ) C_ ( rank ` U. A ) ) |
| 38 | iunss | |- ( U_ x e. A ( rank ` x ) C_ ( rank ` U. A ) <-> A. x e. A ( rank ` x ) C_ ( rank ` U. A ) ) |
|
| 39 | 37 38 | sylibr | |- ( A e. U. ( R1 " On ) -> U_ x e. A ( rank ` x ) C_ ( rank ` U. A ) ) |
| 40 | 32 39 | eqssd | |- ( A e. U. ( R1 " On ) -> ( rank ` U. A ) = U_ x e. A ( rank ` x ) ) |