Metamath Proof Explorer


Theorem setrec2fun

Description: This is the second of two fundamental theorems about set recursion from which all other facts will be derived. It states that the class setrecs ( F ) is a subclass of all classes C that are closed under F . Taken together, Theorems setrec1 and setrec2v say that setrecs ( F ) is the minimal class closed under F .

We express this by saying that if F respects the C_ relation and C is closed under F , then B C_ C . By substituting strategically constructed classes for C , we can easily prove many useful properties. Although this theorem cannot show equality between B and C , if we intend to prove equality between B and some particular class (such as On ), we first apply this theorem, then the relevant induction theorem (such as tfi ) to the other class. (Contributed by Emmett Weisz, 15-Feb-2021) (New usage is discouraged.)

Ref Expression
Hypotheses setrec2fun.1 ⊢ Ⅎ 𝑎 𝐹
setrec2fun.2 ⊢ 𝐵 = setrecs ( 𝐹 )
setrec2fun.3 ⊢ Fun 𝐹
setrec2fun.4 ⊢ ( 𝜑 → ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) )
Assertion setrec2fun ( 𝜑 → 𝐵 ⊆ 𝐶 )

Proof

Step Hyp Ref Expression
1 setrec2fun.1 ⊢ Ⅎ 𝑎 𝐹
2 setrec2fun.2 ⊢ 𝐵 = setrecs ( 𝐹 )
3 setrec2fun.3 ⊢ Fun 𝐹
4 setrec2fun.4 ⊢ ( 𝜑 → ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) )
5 df-setrecs ⊢ setrecs ( 𝐹 ) = ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) }
6 2 5 eqtri ⊢ 𝐵 = ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) }
7 eqid ⊢ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } = { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) }
8 vex ⊢ 𝑥 ∈ V
9 8 a1i ⊢ ( 𝜑 → 𝑥 ∈ V )
10 7 9 setrec1lem1 ⊢ ( 𝜑 → ( 𝑥 ∈ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } ↔ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) ) )
11 id ⊢ ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) )
12 inss1 ⊢ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ⊆ 𝐶
13 11 12 sstrdi ⊢ ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → 𝑤 ⊆ 𝐶 )
14 nfv ⊢ Ⅎ 𝑎 𝑤 ⊆ 𝐶
15 nfcv ⊢ Ⅎ 𝑎 𝑤
16 1 15 nffv ⊢ Ⅎ 𝑎 ( 𝐹 ‘ 𝑤 )
17 nfcv ⊢ Ⅎ 𝑎 𝐶
18 16 17 nfss ⊢ Ⅎ 𝑎 ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶
19 14 18 nfim ⊢ Ⅎ 𝑎 ( 𝑤 ⊆ 𝐶 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 )
20 sseq1 ⊢ ( 𝑎 = 𝑤 → ( 𝑎 ⊆ 𝐶 ↔ 𝑤 ⊆ 𝐶 ) )
21 fveq2 ⊢ ( 𝑎 = 𝑤 → ( 𝐹 ‘ 𝑎 ) = ( 𝐹 ‘ 𝑤 ) )
22 21 sseq1d ⊢ ( 𝑎 = 𝑤 → ( ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ↔ ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) )
23 20 22 imbi12d ⊢ ( 𝑎 = 𝑤 → ( ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) ↔ ( 𝑤 ⊆ 𝐶 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) ) )
24 23 biimpd ⊢ ( 𝑎 = 𝑤 → ( ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) → ( 𝑤 ⊆ 𝐶 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) ) )
25 19 24 spimfv ⊢ ( ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) → ( 𝑤 ⊆ 𝐶 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) )
26 4 25 syl ⊢ ( 𝜑 → ( 𝑤 ⊆ 𝐶 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) )
27 13 26 syl5 ⊢ ( 𝜑 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 ) )
28 27 imp ⊢ ( ( 𝜑 ∧ 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 )
29 28 3adant2 ⊢ ( ( 𝜑 ∧ 𝑤 ⊆ 𝑥 ∧ 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ 𝐶 )
30 velpw ⊢ ( 𝑤 ∈ 𝒫 𝑥 ↔ 𝑤 ⊆ 𝑥 )
31 eliman0 ⊢ ( ( 𝑤 ∈ 𝒫 𝑥 ∧ ¬ ( 𝐹 ‘ 𝑤 ) = ∅ ) → ( 𝐹 ‘ 𝑤 ) ∈ ( 𝐹 “ 𝒫 𝑥 ) )
32 31 ex ⊢ ( 𝑤 ∈ 𝒫 𝑥 → ( ¬ ( 𝐹 ‘ 𝑤 ) = ∅ → ( 𝐹 ‘ 𝑤 ) ∈ ( 𝐹 “ 𝒫 𝑥 ) ) )
33 30 32 sylbir ⊢ ( 𝑤 ⊆ 𝑥 → ( ¬ ( 𝐹 ‘ 𝑤 ) = ∅ → ( 𝐹 ‘ 𝑤 ) ∈ ( 𝐹 “ 𝒫 𝑥 ) ) )
34 elssuni ⊢ ( ( 𝐹 ‘ 𝑤 ) ∈ ( 𝐹 “ 𝒫 𝑥 ) → ( 𝐹 ‘ 𝑤 ) ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 ) )
35 33 34 syl6 ⊢ ( 𝑤 ⊆ 𝑥 → ( ¬ ( 𝐹 ‘ 𝑤 ) = ∅ → ( 𝐹 ‘ 𝑤 ) ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) )
36 id ⊢ ( ( 𝐹 ‘ 𝑤 ) = ∅ → ( 𝐹 ‘ 𝑤 ) = ∅ )
37 0ss ⊢ ∅ ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 )
38 36 37 eqsstrdi ⊢ ( ( 𝐹 ‘ 𝑤 ) = ∅ → ( 𝐹 ‘ 𝑤 ) ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 ) )
39 35 38 pm2.61d2 ⊢ ( 𝑤 ⊆ 𝑥 → ( 𝐹 ‘ 𝑤 ) ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 ) )
40 39 3ad2ant2 ⊢ ( ( 𝜑 ∧ 𝑤 ⊆ 𝑥 ∧ 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ∪ ( 𝐹 “ 𝒫 𝑥 ) )
41 29 40 ssind ⊢ ( ( 𝜑 ∧ 𝑤 ⊆ 𝑥 ∧ 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) )
42 41 3exp ⊢ ( 𝜑 → ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) )
43 42 alrimiv ⊢ ( 𝜑 → ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) )
44 8 pwex ⊢ 𝒫 𝑥 ∈ V
45 44 funimaex ⊢ ( Fun 𝐹 → ( 𝐹 “ 𝒫 𝑥 ) ∈ V )
46 3 45 ax-mp ⊢ ( 𝐹 “ 𝒫 𝑥 ) ∈ V
47 46 uniex ⊢ ∪ ( 𝐹 “ 𝒫 𝑥 ) ∈ V
48 47 inex2 ⊢ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ∈ V
49 sseq2 ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝑤 ⊆ 𝑧 ↔ 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) )
50 sseq2 ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ↔ ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) )
51 49 50 imbi12d ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ↔ ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) )
52 51 imbi2d ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) ↔ ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) ) )
53 52 albidv ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) ↔ ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) ) )
54 sseq2 ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝑥 ⊆ 𝑧 ↔ 𝑥 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) )
55 53 54 imbi12d ⊢ ( 𝑧 = ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) ↔ ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) → 𝑥 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) )
56 48 55 spcv ⊢ ( ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) → ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) → ( 𝐹 ‘ 𝑤 ) ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) ) → 𝑥 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) ) )
57 43 56 mpan9 ⊢ ( ( 𝜑 ∧ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) ) → 𝑥 ⊆ ( 𝐶 ∩ ∪ ( 𝐹 “ 𝒫 𝑥 ) ) )
58 57 12 sstrdi ⊢ ( ( 𝜑 ∧ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝐶 )
59 58 ex ⊢ ( 𝜑 → ( ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑥 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑥 ⊆ 𝑧 ) → 𝑥 ⊆ 𝐶 ) )
60 10 59 sylbid ⊢ ( 𝜑 → ( 𝑥 ∈ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } → 𝑥 ⊆ 𝐶 ) )
61 60 ralrimiv ⊢ ( 𝜑 → ∀ 𝑥 ∈ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } 𝑥 ⊆ 𝐶 )
62 unissb ⊢ ( ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } ⊆ 𝐶 ↔ ∀ 𝑥 ∈ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } 𝑥 ⊆ 𝐶 )
63 61 62 sylibr ⊢ ( 𝜑 → ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } ⊆ 𝐶 )
64 6 63 eqsstrid ⊢ ( 𝜑 → 𝐵 ⊆ 𝐶 )