Metamath Proof Explorer


Theorem ttcmin

Description: The transitive closure of A is a subclass of every transitive class containing A . (Contributed by Matthew House, 6-Apr-2026)

Ref Expression
Assertion ttcmin ( ( 𝐴𝐵 ∧ Tr 𝐵 ) → TC+ 𝐴𝐵 )

Proof

Step Hyp Ref Expression
1 df-ttc TC+ 𝐴 = 𝑥𝐴 ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω )
2 ssel2 ( ( 𝐴𝐵𝑥𝐴 ) → 𝑥𝐵 )
3 rdgfun Fun rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } )
4 funiunfv ( Fun rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) → 𝑧 ∈ ω ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω ) )
5 3 4 ax-mp 𝑧 ∈ ω ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω )
6 fveq2 ( 𝑧 = ∅ → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ ∅ ) )
7 6 sseq1d ( 𝑧 = ∅ → ( ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 ↔ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ ∅ ) ⊆ 𝐵 ) )
8 fveq2 ( 𝑧 = 𝑤 → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) )
9 8 sseq1d ( 𝑧 = 𝑤 → ( ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 ↔ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) )
10 fveq2 ( 𝑧 = suc 𝑤 → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) )
11 10 sseq1d ( 𝑧 = suc 𝑤 → ( ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 ↔ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) ⊆ 𝐵 ) )
12 vsnex { 𝑥 } ∈ V
13 12 rdg0 ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ ∅ ) = { 𝑥 }
14 snssi ( 𝑥𝐵 → { 𝑥 } ⊆ 𝐵 )
15 13 14 eqsstrid ( 𝑥𝐵 → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ ∅ ) ⊆ 𝐵 )
16 15 adantr ( ( 𝑥𝐵 ∧ Tr 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ ∅ ) ⊆ 𝐵 )
17 nnon ( 𝑤 ∈ ω → 𝑤 ∈ On )
18 fvex ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ∈ V
19 18 uniex ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ∈ V
20 eqid rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) = rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } )
21 unieq ( 𝑧 = 𝑦 𝑧 = 𝑦 )
22 unieq ( 𝑧 = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) → 𝑧 = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) )
23 20 21 22 rdgsucmpt2 ( ( 𝑤 ∈ On ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ∈ V ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) )
24 17 19 23 sylancl ( 𝑤 ∈ ω → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) )
25 24 3ad2ant1 ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) = ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) )
26 uniss ( ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 )
27 26 3ad2ant3 ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 )
28 simp2r ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → Tr 𝐵 )
29 df-tr ( Tr 𝐵 𝐵𝐵 )
30 28 29 sylib ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → 𝐵𝐵 )
31 27 30 sstrd ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 )
32 25 31 eqsstrd ( ( 𝑤 ∈ ω ∧ ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) ⊆ 𝐵 )
33 32 3exp ( 𝑤 ∈ ω → ( ( 𝑥𝐵 ∧ Tr 𝐵 ) → ( ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑤 ) ⊆ 𝐵 → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ suc 𝑤 ) ⊆ 𝐵 ) ) )
34 7 9 11 16 33 finds2 ( 𝑧 ∈ ω → ( ( 𝑥𝐵 ∧ Tr 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 ) )
35 34 impcom ( ( ( 𝑥𝐵 ∧ Tr 𝐵 ) ∧ 𝑧 ∈ ω ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 )
36 35 iunssd ( ( 𝑥𝐵 ∧ Tr 𝐵 ) → 𝑧 ∈ ω ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) ‘ 𝑧 ) ⊆ 𝐵 )
37 5 36 eqsstrrid ( ( 𝑥𝐵 ∧ Tr 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω ) ⊆ 𝐵 )
38 2 37 sylan ( ( ( 𝐴𝐵𝑥𝐴 ) ∧ Tr 𝐵 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω ) ⊆ 𝐵 )
39 38 an32s ( ( ( 𝐴𝐵 ∧ Tr 𝐵 ) ∧ 𝑥𝐴 ) → ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω ) ⊆ 𝐵 )
40 39 iunssd ( ( 𝐴𝐵 ∧ Tr 𝐵 ) → 𝑥𝐴 ( rec ( ( 𝑦 ∈ V ↦ 𝑦 ) , { 𝑥 } ) “ ω ) ⊆ 𝐵 )
41 1 40 eqsstrid ( ( 𝐴𝐵 ∧ Tr 𝐵 ) → TC+ 𝐴𝐵 )