This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.

Metamath Proof Explorer


Theorem trcl

Description: For any set A , show the properties of its transitive closure C . Similar to Theorem 9.1 of TakeutiZaring p. 73 except that we show an explicit expression for the transitive closure rather than just its existence. See tz9.1 for an abbreviated version showing existence. (Contributed by NM, 14-Sep-2003) (Revised by Mario Carneiro, 11-Sep-2015)

Ref Expression
Hypotheses trcl.1 𝐴 ∈ V
trcl.2 𝐹 = ( rec ( ( 𝑧 ∈ V ↦ ( 𝑧 𝑧 ) ) , 𝐴 ) ↾ ω )
trcl.3 𝐶 = 𝑦 ∈ ω ( 𝐹𝑦 )
Assertion trcl ( 𝐴𝐶 ∧ Tr 𝐶 ∧ ∀ 𝑥 ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → 𝐶𝑥 ) )

Proof

Step Hyp Ref Expression
1 trcl.1 𝐴 ∈ V
2 trcl.2 𝐹 = ( rec ( ( 𝑧 ∈ V ↦ ( 𝑧 𝑧 ) ) , 𝐴 ) ↾ ω )
3 trcl.3 𝐶 = 𝑦 ∈ ω ( 𝐹𝑦 )
4 peano1 ∅ ∈ ω
5 2 fveq1i ( 𝐹 ‘ ∅ ) = ( ( rec ( ( 𝑧 ∈ V ↦ ( 𝑧 𝑧 ) ) , 𝐴 ) ↾ ω ) ‘ ∅ )
6 fr0g ( 𝐴 ∈ V → ( ( rec ( ( 𝑧 ∈ V ↦ ( 𝑧 𝑧 ) ) , 𝐴 ) ↾ ω ) ‘ ∅ ) = 𝐴 )
7 1 6 ax-mp ( ( rec ( ( 𝑧 ∈ V ↦ ( 𝑧 𝑧 ) ) , 𝐴 ) ↾ ω ) ‘ ∅ ) = 𝐴
8 5 7 eqtr2i 𝐴 = ( 𝐹 ‘ ∅ )
9 8 eqimssi 𝐴 ⊆ ( 𝐹 ‘ ∅ )
10 fveq2 ( 𝑦 = ∅ → ( 𝐹𝑦 ) = ( 𝐹 ‘ ∅ ) )
11 10 sseq2d ( 𝑦 = ∅ → ( 𝐴 ⊆ ( 𝐹𝑦 ) ↔ 𝐴 ⊆ ( 𝐹 ‘ ∅ ) ) )
12 11 rspcev ( ( ∅ ∈ ω ∧ 𝐴 ⊆ ( 𝐹 ‘ ∅ ) ) → ∃ 𝑦 ∈ ω 𝐴 ⊆ ( 𝐹𝑦 ) )
13 4 9 12 mp2an 𝑦 ∈ ω 𝐴 ⊆ ( 𝐹𝑦 )
14 ssiun ( ∃ 𝑦 ∈ ω 𝐴 ⊆ ( 𝐹𝑦 ) → 𝐴 𝑦 ∈ ω ( 𝐹𝑦 ) )
15 13 14 ax-mp 𝐴 𝑦 ∈ ω ( 𝐹𝑦 )
16 15 3 sseqtrri 𝐴𝐶
17 dftr2 ( Tr 𝑦 ∈ ω ( 𝐹𝑦 ) ↔ ∀ 𝑣𝑢 ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) → 𝑣 𝑦 ∈ ω ( 𝐹𝑦 ) ) )
18 eliun ( 𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ↔ ∃ 𝑦 ∈ ω 𝑢 ∈ ( 𝐹𝑦 ) )
19 18 anbi2i ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) ↔ ( 𝑣𝑢 ∧ ∃ 𝑦 ∈ ω 𝑢 ∈ ( 𝐹𝑦 ) ) )
20 r19.42v ( ∃ 𝑦 ∈ ω ( 𝑣𝑢𝑢 ∈ ( 𝐹𝑦 ) ) ↔ ( 𝑣𝑢 ∧ ∃ 𝑦 ∈ ω 𝑢 ∈ ( 𝐹𝑦 ) ) )
21 19 20 bitr4i ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) ↔ ∃ 𝑦 ∈ ω ( 𝑣𝑢𝑢 ∈ ( 𝐹𝑦 ) ) )
22 elunii ( ( 𝑣𝑢𝑢 ∈ ( 𝐹𝑦 ) ) → 𝑣 ( 𝐹𝑦 ) )
23 ssun2 ( 𝐹𝑦 ) ⊆ ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) )
24 fvex ( 𝐹𝑦 ) ∈ V
25 24 uniex ( 𝐹𝑦 ) ∈ V
26 24 25 unex ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ∈ V
27 id ( 𝑥 = 𝑧𝑥 = 𝑧 )
28 unieq ( 𝑥 = 𝑧 𝑥 = 𝑧 )
29 27 28 uneq12d ( 𝑥 = 𝑧 → ( 𝑥 𝑥 ) = ( 𝑧 𝑧 ) )
30 id ( 𝑥 = ( 𝐹𝑦 ) → 𝑥 = ( 𝐹𝑦 ) )
31 unieq ( 𝑥 = ( 𝐹𝑦 ) → 𝑥 = ( 𝐹𝑦 ) )
32 30 31 uneq12d ( 𝑥 = ( 𝐹𝑦 ) → ( 𝑥 𝑥 ) = ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) )
33 2 29 32 frsucmpt2 ( ( 𝑦 ∈ ω ∧ ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ∈ V ) → ( 𝐹 ‘ suc 𝑦 ) = ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) )
34 26 33 mpan2 ( 𝑦 ∈ ω → ( 𝐹 ‘ suc 𝑦 ) = ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) )
35 23 34 sseqtrrid ( 𝑦 ∈ ω → ( 𝐹𝑦 ) ⊆ ( 𝐹 ‘ suc 𝑦 ) )
36 35 sseld ( 𝑦 ∈ ω → ( 𝑣 ( 𝐹𝑦 ) → 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) ) )
37 22 36 syl5 ( 𝑦 ∈ ω → ( ( 𝑣𝑢𝑢 ∈ ( 𝐹𝑦 ) ) → 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) ) )
38 37 reximia ( ∃ 𝑦 ∈ ω ( 𝑣𝑢𝑢 ∈ ( 𝐹𝑦 ) ) → ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) )
39 21 38 sylbi ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) → ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) )
40 peano2 ( 𝑦 ∈ ω → suc 𝑦 ∈ ω )
41 fveq2 ( 𝑢 = suc 𝑦 → ( 𝐹𝑢 ) = ( 𝐹 ‘ suc 𝑦 ) )
42 41 eleq2d ( 𝑢 = suc 𝑦 → ( 𝑣 ∈ ( 𝐹𝑢 ) ↔ 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) ) )
43 42 rspcev ( ( suc 𝑦 ∈ ω ∧ 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) ) → ∃ 𝑢 ∈ ω 𝑣 ∈ ( 𝐹𝑢 ) )
44 43 ex ( suc 𝑦 ∈ ω → ( 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) → ∃ 𝑢 ∈ ω 𝑣 ∈ ( 𝐹𝑢 ) ) )
45 40 44 syl ( 𝑦 ∈ ω → ( 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) → ∃ 𝑢 ∈ ω 𝑣 ∈ ( 𝐹𝑢 ) ) )
46 45 rexlimiv ( ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) → ∃ 𝑢 ∈ ω 𝑣 ∈ ( 𝐹𝑢 ) )
47 fveq2 ( 𝑦 = 𝑢 → ( 𝐹𝑦 ) = ( 𝐹𝑢 ) )
48 47 eleq2d ( 𝑦 = 𝑢 → ( 𝑣 ∈ ( 𝐹𝑦 ) ↔ 𝑣 ∈ ( 𝐹𝑢 ) ) )
49 48 cbvrexvw ( ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹𝑦 ) ↔ ∃ 𝑢 ∈ ω 𝑣 ∈ ( 𝐹𝑢 ) )
50 46 49 sylibr ( ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) → ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹𝑦 ) )
51 eliun ( 𝑣 𝑦 ∈ ω ( 𝐹𝑦 ) ↔ ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹𝑦 ) )
52 50 51 sylibr ( ∃ 𝑦 ∈ ω 𝑣 ∈ ( 𝐹 ‘ suc 𝑦 ) → 𝑣 𝑦 ∈ ω ( 𝐹𝑦 ) )
53 39 52 syl ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) → 𝑣 𝑦 ∈ ω ( 𝐹𝑦 ) )
54 53 ax-gen 𝑢 ( ( 𝑣𝑢𝑢 𝑦 ∈ ω ( 𝐹𝑦 ) ) → 𝑣 𝑦 ∈ ω ( 𝐹𝑦 ) )
55 17 54 mpgbir Tr 𝑦 ∈ ω ( 𝐹𝑦 )
56 treq ( 𝐶 = 𝑦 ∈ ω ( 𝐹𝑦 ) → ( Tr 𝐶 ↔ Tr 𝑦 ∈ ω ( 𝐹𝑦 ) ) )
57 3 56 ax-mp ( Tr 𝐶 ↔ Tr 𝑦 ∈ ω ( 𝐹𝑦 ) )
58 55 57 mpbir Tr 𝐶
59 fveq2 ( 𝑣 = ∅ → ( 𝐹𝑣 ) = ( 𝐹 ‘ ∅ ) )
60 59 sseq1d ( 𝑣 = ∅ → ( ( 𝐹𝑣 ) ⊆ 𝑥 ↔ ( 𝐹 ‘ ∅ ) ⊆ 𝑥 ) )
61 fveq2 ( 𝑣 = 𝑦 → ( 𝐹𝑣 ) = ( 𝐹𝑦 ) )
62 61 sseq1d ( 𝑣 = 𝑦 → ( ( 𝐹𝑣 ) ⊆ 𝑥 ↔ ( 𝐹𝑦 ) ⊆ 𝑥 ) )
63 fveq2 ( 𝑣 = suc 𝑦 → ( 𝐹𝑣 ) = ( 𝐹 ‘ suc 𝑦 ) )
64 63 sseq1d ( 𝑣 = suc 𝑦 → ( ( 𝐹𝑣 ) ⊆ 𝑥 ↔ ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ) )
65 5 7 eqtri ( 𝐹 ‘ ∅ ) = 𝐴
66 65 sseq1i ( ( 𝐹 ‘ ∅ ) ⊆ 𝑥𝐴𝑥 )
67 66 biimpri ( 𝐴𝑥 → ( 𝐹 ‘ ∅ ) ⊆ 𝑥 )
68 67 adantr ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → ( 𝐹 ‘ ∅ ) ⊆ 𝑥 )
69 uniss ( ( 𝐹𝑦 ) ⊆ 𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 )
70 df-tr ( Tr 𝑥 𝑥𝑥 )
71 sstr2 ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( 𝑥𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 ) )
72 70 71 biimtrid ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( Tr 𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 ) )
73 69 72 syl ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( Tr 𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 ) )
74 73 anc2li ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( Tr 𝑥 → ( ( 𝐹𝑦 ) ⊆ 𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 ) ) )
75 unss ( ( ( 𝐹𝑦 ) ⊆ 𝑥 ( 𝐹𝑦 ) ⊆ 𝑥 ) ↔ ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ⊆ 𝑥 )
76 74 75 imbitrdi ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( Tr 𝑥 → ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ⊆ 𝑥 ) )
77 34 sseq1d ( 𝑦 ∈ ω → ( ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ↔ ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ⊆ 𝑥 ) )
78 77 biimprd ( 𝑦 ∈ ω → ( ( ( 𝐹𝑦 ) ∪ ( 𝐹𝑦 ) ) ⊆ 𝑥 → ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ) )
79 76 78 syl9r ( 𝑦 ∈ ω → ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( Tr 𝑥 → ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ) ) )
80 79 com23 ( 𝑦 ∈ ω → ( Tr 𝑥 → ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ) ) )
81 80 adantld ( 𝑦 ∈ ω → ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → ( ( 𝐹𝑦 ) ⊆ 𝑥 → ( 𝐹 ‘ suc 𝑦 ) ⊆ 𝑥 ) ) )
82 60 62 64 68 81 finds2 ( 𝑣 ∈ ω → ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → ( 𝐹𝑣 ) ⊆ 𝑥 ) )
83 82 com12 ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → ( 𝑣 ∈ ω → ( 𝐹𝑣 ) ⊆ 𝑥 ) )
84 83 ralrimiv ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → ∀ 𝑣 ∈ ω ( 𝐹𝑣 ) ⊆ 𝑥 )
85 fveq2 ( 𝑦 = 𝑣 → ( 𝐹𝑦 ) = ( 𝐹𝑣 ) )
86 85 cbviunv 𝑦 ∈ ω ( 𝐹𝑦 ) = 𝑣 ∈ ω ( 𝐹𝑣 )
87 3 86 eqtri 𝐶 = 𝑣 ∈ ω ( 𝐹𝑣 )
88 87 sseq1i ( 𝐶𝑥 𝑣 ∈ ω ( 𝐹𝑣 ) ⊆ 𝑥 )
89 iunss ( 𝑣 ∈ ω ( 𝐹𝑣 ) ⊆ 𝑥 ↔ ∀ 𝑣 ∈ ω ( 𝐹𝑣 ) ⊆ 𝑥 )
90 88 89 bitri ( 𝐶𝑥 ↔ ∀ 𝑣 ∈ ω ( 𝐹𝑣 ) ⊆ 𝑥 )
91 84 90 sylibr ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → 𝐶𝑥 )
92 91 ax-gen 𝑥 ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → 𝐶𝑥 )
93 16 58 92 3pm3.2i ( 𝐴𝐶 ∧ Tr 𝐶 ∧ ∀ 𝑥 ( ( 𝐴𝑥 ∧ Tr 𝑥 ) → 𝐶𝑥 ) )