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 ranxy|nω1𝑜ffFnsucnf=xfn=yanfaRfsuca=y|xnω1𝑜ffFnsucnf=xfn=yanfaRfsuca
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=nfa=fn
6 suceq a=nsuca=sucn
7 6 fveq2d a=nfsuca=fsucn
8 5 7 breq12d a=nfaRfsucafnRfsucn
9 simpr3 nω1𝑜fFnsucnf=xfn=yanfaRfsucaanfaRfsuca
10 df-1o 1𝑜=suc
11 10 difeq2i ω1𝑜=ωsuc
12 11 eleq2i nω1𝑜nωsuc
13 peano1 ω
14 eldifsucnn ωnωsucxωn=sucx
15 13 14 ax-mp nωsucxωn=sucx
16 dif0 ω=ω
17 16 rexeqi xωn=sucxxωn=sucx
18 12 15 17 3bitri nω1𝑜xωn=sucx
19 nnord xωOrdx
20 ordunisuc Ordxsucx=x
21 19 20 syl xωsucx=x
22 vex xV
23 22 sucid xsucx
24 21 23 eqeltrdi xωsucxsucx
25 unieq n=sucxn=sucx
26 id n=sucxn=sucx
27 25 26 eleq12d n=sucxnnsucxsucx
28 24 27 syl5ibrcom xωn=sucxnn
29 28 rexlimiv xωn=sucxnn
30 18 29 sylbi nω1𝑜nn
31 30 adantr nω1𝑜fFnsucnf=xfn=yanfaRfsucann
32 8 9 31 rspcdva nω1𝑜fFnsucnf=xfn=yanfaRfsucafnRfsucn
33 suceq sucx=xsucsucx=sucx
34 21 33 syl xωsucsucx=sucx
35 suceq n=sucxsucn=sucsucx
36 25 35 syl n=sucxsucn=sucsucx
37 36 26 eqeq12d n=sucxsucn=nsucsucx=sucx
38 34 37 syl5ibrcom xωn=sucxsucn=n
39 38 rexlimiv xωn=sucxsucn=n
40 18 39 sylbi nω1𝑜sucn=n
41 40 fveq2d nω1𝑜fsucn=fn
42 41 adantr nω1𝑜fFnsucnf=xfn=yanfaRfsucafsucn=fn
43 simpr2r nω1𝑜fFnsucnf=xfn=yanfaRfsucafn=y
44 42 43 eqtrd nω1𝑜fFnsucnf=xfn=yanfaRfsucafsucn=y
45 32 44 breqtrd nω1𝑜fFnsucnf=xfn=yanfaRfsucafnRy
46 fvex fnV
47 vex yV
48 46 47 brelrn fnRyyranR
49 45 48 syl nω1𝑜fFnsucnf=xfn=yanfaRfsucayranR
50 49 ex nω1𝑜fFnsucnf=xfn=yanfaRfsucayranR
51 50 exlimdv nω1𝑜ffFnsucnf=xfn=yanfaRfsucayranR
52 51 rexlimiv nω1𝑜ffFnsucnf=xfn=yanfaRfsucayranR
53 52 exlimiv xnω1𝑜ffFnsucnf=xfn=yanfaRfsucayranR
54 53 abssi y|xnω1𝑜ffFnsucnf=xfn=yanfaRfsucaranR
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 ranRV=ranR
57 relres RelRV
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 |-