Metamath Proof Explorer


Theorem rnttrcl

Description: The range of a transitive closure is the same as the range of the original class. (Contributed by Scott Fenton, 26-Oct-2024)

Ref Expression
Assertion rnttrcl Could not format assertion : No typesetting found for |- ran t++ R = ran R with typecode |-

Proof

Step Hyp Ref Expression
1 df-ttrcl Could not format t++ R = { <. x , y >. | E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } : No typesetting found for |- t++ R = { <. x , y >. | E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } with typecode |-
2 1 rneqi Could not format ran t++ R = ran { <. x , y >. | E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } : No typesetting found for |- ran t++ R = ran { <. x , y >. | E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } with typecode |-
3 rnopab ran x y | n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a = y | x n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a
4 2 3 eqtri Could not format ran t++ R = { y | E. x E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } : No typesetting found for |- ran t++ R = { y | E. x E. n e. ( _om \ 1o ) E. f ( f Fn suc n /\ ( ( f ` (/) ) = x /\ ( f ` n ) = y ) /\ A. a e. n ( f ` a ) R ( f ` suc a ) ) } with typecode |-
5 fveq2 a = n f a = f n
6 suceq a = n suc a = suc n
7 6 fveq2d a = n f suc a = f suc n
8 5 7 breq12d a = n f a R f suc a f n R f suc n
9 simpr3 n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a a n f a R f suc a
10 df-1o 1 𝑜 = suc
11 10 difeq2i ω 1 𝑜 = ω suc
12 11 eleq2i n ω 1 𝑜 n ω suc
13 peano1 ω
14 eldifsucnn ω n ω suc x ω n = suc x
15 13 14 ax-mp n ω suc x ω n = suc x
16 dif0 ω = ω
17 16 rexeqi x ω n = suc x x ω n = suc x
18 12 15 17 3bitri n ω 1 𝑜 x ω n = suc x
19 nnord x ω Ord x
20 ordunisuc Ord x suc x = x
21 19 20 syl x ω suc x = x
22 vex x V
23 22 sucid x suc x
24 21 23 eqeltrdi x ω suc x suc x
25 unieq n = suc x n = suc x
26 id n = suc x n = suc x
27 25 26 eleq12d n = suc x n n suc x suc x
28 24 27 syl5ibrcom x ω n = suc x n n
29 28 rexlimiv x ω n = suc x n n
30 18 29 sylbi n ω 1 𝑜 n n
31 30 adantr n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a n n
32 8 9 31 rspcdva n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a f n R f suc n
33 suceq suc x = x suc suc x = suc x
34 21 33 syl x ω suc suc x = suc x
35 suceq n = suc x suc n = suc suc x
36 25 35 syl n = suc x suc n = suc suc x
37 36 26 eqeq12d n = suc x suc n = n suc suc x = suc x
38 34 37 syl5ibrcom x ω n = suc x suc n = n
39 38 rexlimiv x ω n = suc x suc n = n
40 18 39 sylbi n ω 1 𝑜 suc n = n
41 40 fveq2d n ω 1 𝑜 f suc n = f n
42 41 adantr n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a f suc n = f n
43 simpr2r n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a f n = y
44 42 43 eqtrd n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a f suc n = y
45 32 44 breqtrd n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a f n R y
46 fvex f n V
47 vex y V
48 46 47 brelrn f n R y y ran R
49 45 48 syl n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a y ran R
50 49 ex n ω 1 𝑜 f Fn suc n f = x f n = y a n f a R f suc a y ran R
51 50 exlimdv n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a y ran R
52 51 rexlimiv n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a y ran R
53 52 exlimiv x n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a y ran R
54 53 abssi y | x n ω 1 𝑜 f f Fn suc n f = x f n = y a n f a R f suc a ran R
55 4 54 eqsstri Could not format ran t++ R C_ ran R : No typesetting found for |- ran t++ R C_ ran R with typecode |-
56 rnresv ran R V = ran R
57 relres Rel R V
58 ssttrcl Could not format ( Rel ( R |` _V ) -> ( R |` _V ) C_ t++ ( R |` _V ) ) : No typesetting found for |- ( Rel ( R |` _V ) -> ( R |` _V ) C_ t++ ( R |` _V ) ) with typecode |-
59 57 58 ax-mp Could not format ( R |` _V ) C_ t++ ( R |` _V ) : No typesetting found for |- ( R |` _V ) C_ t++ ( R |` _V ) with typecode |-
60 ttrclresv Could not format t++ ( R |` _V ) = t++ R : No typesetting found for |- t++ ( R |` _V ) = t++ R with typecode |-
61 59 60 sseqtri Could not format ( R |` _V ) C_ t++ R : No typesetting found for |- ( R |` _V ) C_ t++ R with typecode |-
62 61 rnssi Could not format ran ( R |` _V ) C_ ran t++ R : No typesetting found for |- ran ( R |` _V ) C_ ran t++ R with typecode |-
63 56 62 eqsstrri Could not format ran R C_ ran t++ R : No typesetting found for |- ran R C_ ran t++ R with typecode |-
64 55 63 eqssi Could not format ran t++ R = ran R : No typesetting found for |- ran t++ R = ran R with typecode |-