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 uniquely determine setrecs ( F ) to be 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, 2-Sep-2021)
Ref | Expression | ||
---|---|---|---|
Hypotheses | setrec2.1 | ⊢ Ⅎ 𝑎 𝐹 | |
setrec2.2 | ⊢ 𝐵 = setrecs ( 𝐹 ) | ||
setrec2.3 | ⊢ ( 𝜑 → ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) ) | ||
Assertion | setrec2 | ⊢ ( 𝜑 → 𝐵 ⊆ 𝐶 ) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | setrec2.1 | ⊢ Ⅎ 𝑎 𝐹 | |
2 | setrec2.2 | ⊢ 𝐵 = setrecs ( 𝐹 ) | |
3 | setrec2.3 | ⊢ ( 𝜑 → ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) ) | |
4 | nfcv | ⊢ Ⅎ 𝑎 𝑥 | |
5 | nfcv | ⊢ Ⅎ 𝑎 𝑢 | |
6 | 4 1 5 | nfbr | ⊢ Ⅎ 𝑎 𝑥 𝐹 𝑢 |
7 | 6 | nfeuw | ⊢ Ⅎ 𝑎 ∃! 𝑢 𝑥 𝐹 𝑢 |
8 | 7 | nfab | ⊢ Ⅎ 𝑎 { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } |
9 | 1 8 | nfres | ⊢ Ⅎ 𝑎 ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) |
10 | setrec2lem1 | ⊢ ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) = ( 𝐹 ‘ 𝑤 ) | |
11 | 10 | sseq1i | ⊢ ( ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ↔ ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) |
12 | 11 | imbi2i | ⊢ ( ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ↔ ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) |
13 | 12 | imbi2i | ⊢ ( ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) ↔ ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) ) |
14 | 13 | albii | ⊢ ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) ↔ ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) ) |
15 | 14 | imbi1i | ⊢ ( ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) ↔ ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) ) |
16 | 15 | albii | ⊢ ( ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) ↔ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) ) |
17 | 16 | abbii | ⊢ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } = { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } |
18 | 17 | unieqi | ⊢ ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } = ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } |
19 | df-setrecs | ⊢ setrecs ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ) = ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } | |
20 | df-setrecs | ⊢ setrecs ( 𝐹 ) = ∪ { 𝑦 ∣ ∀ 𝑧 ( ∀ 𝑤 ( 𝑤 ⊆ 𝑦 → ( 𝑤 ⊆ 𝑧 → ( 𝐹 ‘ 𝑤 ) ⊆ 𝑧 ) ) → 𝑦 ⊆ 𝑧 ) } | |
21 | 18 19 20 | 3eqtr4ri | ⊢ setrecs ( 𝐹 ) = setrecs ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ) |
22 | 2 21 | eqtri | ⊢ 𝐵 = setrecs ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ) |
23 | setrec2lem2 | ⊢ Fun ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) | |
24 | setrec2lem1 | ⊢ ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑎 ) = ( 𝐹 ‘ 𝑎 ) | |
25 | 24 | sseq1i | ⊢ ( ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑎 ) ⊆ 𝐶 ↔ ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) |
26 | 25 | imbi2i | ⊢ ( ( 𝑎 ⊆ 𝐶 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑎 ) ⊆ 𝐶 ) ↔ ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) ) |
27 | 26 | albii | ⊢ ( ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑎 ) ⊆ 𝐶 ) ↔ ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( 𝐹 ‘ 𝑎 ) ⊆ 𝐶 ) ) |
28 | 3 27 | sylibr | ⊢ ( 𝜑 → ∀ 𝑎 ( 𝑎 ⊆ 𝐶 → ( ( 𝐹 ↾ { 𝑥 ∣ ∃! 𝑢 𝑥 𝐹 𝑢 } ) ‘ 𝑎 ) ⊆ 𝐶 ) ) |
29 | 9 22 23 28 | setrec2fun | ⊢ ( 𝜑 → 𝐵 ⊆ 𝐶 ) |