Metamath Proof Explorer


Theorem hartogs

Description: Given any set, the Hartogs number of the set is the least ordinal not dominated by that set. This theorem proves that there is always an ordinal which satisfies this. (This theorem can be proven trivially using the AC - see theorem ondomon - but this proof works in ZF.) (Contributed by Jeff Hankins, 22-Oct-2009) (Revised by Mario Carneiro, 15-May-2015)

Ref Expression
Assertion hartogs ( 𝐴𝑉 → { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ On )

Proof

Step Hyp Ref Expression
1 onelon ( ( 𝑧 ∈ On ∧ 𝑦𝑧 ) → 𝑦 ∈ On )
2 vex 𝑧 ∈ V
3 onelss ( 𝑧 ∈ On → ( 𝑦𝑧𝑦𝑧 ) )
4 3 imp ( ( 𝑧 ∈ On ∧ 𝑦𝑧 ) → 𝑦𝑧 )
5 ssdomg ( 𝑧 ∈ V → ( 𝑦𝑧𝑦𝑧 ) )
6 2 4 5 mpsyl ( ( 𝑧 ∈ On ∧ 𝑦𝑧 ) → 𝑦𝑧 )
7 1 6 jca ( ( 𝑧 ∈ On ∧ 𝑦𝑧 ) → ( 𝑦 ∈ On ∧ 𝑦𝑧 ) )
8 domtr ( ( 𝑦𝑧𝑧𝐴 ) → 𝑦𝐴 )
9 8 anim2i ( ( 𝑦 ∈ On ∧ ( 𝑦𝑧𝑧𝐴 ) ) → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) )
10 9 anassrs ( ( ( 𝑦 ∈ On ∧ 𝑦𝑧 ) ∧ 𝑧𝐴 ) → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) )
11 7 10 sylan ( ( ( 𝑧 ∈ On ∧ 𝑦𝑧 ) ∧ 𝑧𝐴 ) → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) )
12 11 exp31 ( 𝑧 ∈ On → ( 𝑦𝑧 → ( 𝑧𝐴 → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) ) ) )
13 12 com12 ( 𝑦𝑧 → ( 𝑧 ∈ On → ( 𝑧𝐴 → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) ) ) )
14 13 impd ( 𝑦𝑧 → ( ( 𝑧 ∈ On ∧ 𝑧𝐴 ) → ( 𝑦 ∈ On ∧ 𝑦𝐴 ) ) )
15 breq1 ( 𝑥 = 𝑧 → ( 𝑥𝐴𝑧𝐴 ) )
16 15 elrab ( 𝑧 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ↔ ( 𝑧 ∈ On ∧ 𝑧𝐴 ) )
17 breq1 ( 𝑥 = 𝑦 → ( 𝑥𝐴𝑦𝐴 ) )
18 17 elrab ( 𝑦 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ↔ ( 𝑦 ∈ On ∧ 𝑦𝐴 ) )
19 14 16 18 3imtr4g ( 𝑦𝑧 → ( 𝑧 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } → 𝑦 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ) )
20 19 imp ( ( 𝑦𝑧𝑧 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ) → 𝑦 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } )
21 20 gen2 𝑦𝑧 ( ( 𝑦𝑧𝑧 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ) → 𝑦 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } )
22 dftr2 ( Tr { 𝑥 ∈ On ∣ 𝑥𝐴 } ↔ ∀ 𝑦𝑧 ( ( 𝑦𝑧𝑧 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ) → 𝑦 ∈ { 𝑥 ∈ On ∣ 𝑥𝐴 } ) )
23 21 22 mpbir Tr { 𝑥 ∈ On ∣ 𝑥𝐴 }
24 ssrab2 { 𝑥 ∈ On ∣ 𝑥𝐴 } ⊆ On
25 ordon Ord On
26 trssord ( ( Tr { 𝑥 ∈ On ∣ 𝑥𝐴 } ∧ { 𝑥 ∈ On ∣ 𝑥𝐴 } ⊆ On ∧ Ord On ) → Ord { 𝑥 ∈ On ∣ 𝑥𝐴 } )
27 23 24 25 26 mp3an Ord { 𝑥 ∈ On ∣ 𝑥𝐴 }
28 eqid { ⟨ 𝑟 , 𝑦 ⟩ ∣ ( ( ( dom 𝑟𝐴 ∧ ( I ↾ dom 𝑟 ) ⊆ 𝑟𝑟 ⊆ ( dom 𝑟 × dom 𝑟 ) ) ∧ ( 𝑟 ∖ I ) We dom 𝑟 ) ∧ 𝑦 = dom OrdIso ( ( 𝑟 ∖ I ) , dom 𝑟 ) ) } = { ⟨ 𝑟 , 𝑦 ⟩ ∣ ( ( ( dom 𝑟𝐴 ∧ ( I ↾ dom 𝑟 ) ⊆ 𝑟𝑟 ⊆ ( dom 𝑟 × dom 𝑟 ) ) ∧ ( 𝑟 ∖ I ) We dom 𝑟 ) ∧ 𝑦 = dom OrdIso ( ( 𝑟 ∖ I ) , dom 𝑟 ) ) }
29 eqid { ⟨ 𝑠 , 𝑡 ⟩ ∣ ∃ 𝑤𝑦𝑧𝑦 ( ( 𝑠 = ( 𝑔𝑤 ) ∧ 𝑡 = ( 𝑔𝑧 ) ) ∧ 𝑤 E 𝑧 ) } = { ⟨ 𝑠 , 𝑡 ⟩ ∣ ∃ 𝑤𝑦𝑧𝑦 ( ( 𝑠 = ( 𝑔𝑤 ) ∧ 𝑡 = ( 𝑔𝑧 ) ) ∧ 𝑤 E 𝑧 ) }
30 28 29 hartogslem2 ( 𝐴𝑉 → { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ V )
31 elong ( { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ V → ( { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ On ↔ Ord { 𝑥 ∈ On ∣ 𝑥𝐴 } ) )
32 30 31 syl ( 𝐴𝑉 → ( { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ On ↔ Ord { 𝑥 ∈ On ∣ 𝑥𝐴 } ) )
33 27 32 mpbiri ( 𝐴𝑉 → { 𝑥 ∈ On ∣ 𝑥𝐴 } ∈ On )