Metamath Proof Explorer


Theorem nosepon

Description: Given two unequal surreals, the minimal ordinal at which they differ is an ordinal. (Contributed by Scott Fenton, 21-Sep-2020)

Ref Expression
Assertion nosepon ( ( 𝐴 No 𝐵 No 𝐴𝐵 ) → { 𝑥 ∈ On ∣ ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) } ∈ On )

Proof

Step Hyp Ref Expression
1 df-ne ( ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ↔ ¬ ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
2 1 rexbii ( ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ↔ ∃ 𝑥 ∈ On ¬ ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
3 2 notbii ( ¬ ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ↔ ¬ ∃ 𝑥 ∈ On ¬ ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
4 dfral2 ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ↔ ¬ ∃ 𝑥 ∈ On ¬ ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
5 3 4 bitr4i ( ¬ ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ↔ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
6 nodmord ( 𝐴 No → Ord dom 𝐴 )
7 nodmord ( 𝐵 No → Ord dom 𝐵 )
8 ordtri3or ( ( Ord dom 𝐴 ∧ Ord dom 𝐵 ) → ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) )
9 6 7 8 syl2an ( ( 𝐴 No 𝐵 No ) → ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) )
10 3orass ( ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ↔ ( dom 𝐴 ∈ dom 𝐵 ∨ ( dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) )
11 or12 ( ( dom 𝐴 ∈ dom 𝐵 ∨ ( dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) ↔ ( dom 𝐴 = dom 𝐵 ∨ ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) )
12 10 11 bitri ( ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐴 = dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ↔ ( dom 𝐴 = dom 𝐵 ∨ ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) )
13 9 12 sylib ( ( 𝐴 No 𝐵 No ) → ( dom 𝐴 = dom 𝐵 ∨ ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) )
14 13 ord ( ( 𝐴 No 𝐵 No ) → ( ¬ dom 𝐴 = dom 𝐵 → ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) ) )
15 noseponlem ( ( 𝐴 No 𝐵 No ∧ dom 𝐴 ∈ dom 𝐵 ) → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
16 15 3expia ( ( 𝐴 No 𝐵 No ) → ( dom 𝐴 ∈ dom 𝐵 → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
17 noseponlem ( ( 𝐵 No 𝐴 No ∧ dom 𝐵 ∈ dom 𝐴 ) → ¬ ∀ 𝑥 ∈ On ( 𝐵𝑥 ) = ( 𝐴𝑥 ) )
18 eqcom ( ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ↔ ( 𝐵𝑥 ) = ( 𝐴𝑥 ) )
19 18 ralbii ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ↔ ∀ 𝑥 ∈ On ( 𝐵𝑥 ) = ( 𝐴𝑥 ) )
20 17 19 sylnibr ( ( 𝐵 No 𝐴 No ∧ dom 𝐵 ∈ dom 𝐴 ) → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
21 20 3expia ( ( 𝐵 No 𝐴 No ) → ( dom 𝐵 ∈ dom 𝐴 → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
22 21 ancoms ( ( 𝐴 No 𝐵 No ) → ( dom 𝐵 ∈ dom 𝐴 → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
23 16 22 jaod ( ( 𝐴 No 𝐵 No ) → ( ( dom 𝐴 ∈ dom 𝐵 ∨ dom 𝐵 ∈ dom 𝐴 ) → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
24 14 23 syld ( ( 𝐴 No 𝐵 No ) → ( ¬ dom 𝐴 = dom 𝐵 → ¬ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
25 24 con4d ( ( 𝐴 No 𝐵 No ) → ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) → dom 𝐴 = dom 𝐵 ) )
26 25 3impia ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → dom 𝐴 = dom 𝐵 )
27 ordsson ( Ord dom 𝐴 → dom 𝐴 ⊆ On )
28 ssralv ( dom 𝐴 ⊆ On → ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) → ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
29 6 27 28 3syl ( 𝐴 No → ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) → ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
30 29 adantr ( ( 𝐴 No 𝐵 No ) → ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) → ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) )
31 30 3impia ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) )
32 nofun ( 𝐴 No → Fun 𝐴 )
33 32 3ad2ant1 ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → Fun 𝐴 )
34 nofun ( 𝐵 No → Fun 𝐵 )
35 34 3ad2ant2 ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → Fun 𝐵 )
36 eqfunfv ( ( Fun 𝐴 ∧ Fun 𝐵 ) → ( 𝐴 = 𝐵 ↔ ( dom 𝐴 = dom 𝐵 ∧ ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) ) )
37 33 35 36 syl2anc ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → ( 𝐴 = 𝐵 ↔ ( dom 𝐴 = dom 𝐵 ∧ ∀ 𝑥 ∈ dom 𝐴 ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) ) )
38 26 31 37 mpbir2and ( ( 𝐴 No 𝐵 No ∧ ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) ) → 𝐴 = 𝐵 )
39 38 3expia ( ( 𝐴 No 𝐵 No ) → ( ∀ 𝑥 ∈ On ( 𝐴𝑥 ) = ( 𝐵𝑥 ) → 𝐴 = 𝐵 ) )
40 5 39 syl5bi ( ( 𝐴 No 𝐵 No ) → ( ¬ ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) → 𝐴 = 𝐵 ) )
41 40 necon1ad ( ( 𝐴 No 𝐵 No ) → ( 𝐴𝐵 → ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ) )
42 41 3impia ( ( 𝐴 No 𝐵 No 𝐴𝐵 ) → ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) )
43 onintrab2 ( ∃ 𝑥 ∈ On ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) ↔ { 𝑥 ∈ On ∣ ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) } ∈ On )
44 42 43 sylib ( ( 𝐴 No 𝐵 No 𝐴𝐵 ) → { 𝑥 ∈ On ∣ ( 𝐴𝑥 ) ≠ ( 𝐵𝑥 ) } ∈ On )