Metamath Proof Explorer


Theorem mo0sn

Description: Two ways of expressing "at most one" element in a class. (Contributed by Zhi Wang, 19-Sep-2024)

Ref Expression
Assertion mo0sn ⊢ ∃* x x ∈ A ↔ A = ∅ ∨ ∃ y A = y

Proof

Step Hyp Ref Expression
1 nfv ⊢ Ⅎ z x ∈ A
2 nfv ⊢ Ⅎ x z ∈ A
3 eleq1w ⊢ x = z → x ∈ A ↔ z ∈ A
4 1 2 3 cbvmow ⊢ ∃* x x ∈ A ↔ ∃* z z ∈ A
5 neq0 ⊢ ¬ A = ∅ ↔ ∃ z z ∈ A
6 5 anbi1i ⊢ ¬ A = ∅ ∧ ∃* z z ∈ A ↔ ∃ z z ∈ A ∧ ∃* z z ∈ A
7 df-eu ⊢ ∃! z z ∈ A ↔ ∃ z z ∈ A ∧ ∃* z z ∈ A
8 eu6 ⊢ ∃! z z ∈ A ↔ ∃ y ∀ z z ∈ A ↔ z = y
9 6 7 8 3bitr2i ⊢ ¬ A = ∅ ∧ ∃* z z ∈ A ↔ ∃ y ∀ z z ∈ A ↔ z = y
10 dfcleq ⊢ A = y ↔ ∀ z z ∈ A ↔ z ∈ y
11 velsn ⊢ z ∈ y ↔ z = y
12 11 bibi2i ⊢ z ∈ A ↔ z ∈ y ↔ z ∈ A ↔ z = y
13 12 albii ⊢ ∀ z z ∈ A ↔ z ∈ y ↔ ∀ z z ∈ A ↔ z = y
14 10 13 sylbbr ⊢ ∀ z z ∈ A ↔ z = y → A = y
15 14 eximi ⊢ ∃ y ∀ z z ∈ A ↔ z = y → ∃ y A = y
16 9 15 sylbi ⊢ ¬ A = ∅ ∧ ∃* z z ∈ A → ∃ y A = y
17 16 expcom ⊢ ∃* z z ∈ A → ¬ A = ∅ → ∃ y A = y
18 17 orrd ⊢ ∃* z z ∈ A → A = ∅ ∨ ∃ y A = y
19 mo0 ⊢ A = ∅ → ∃* z z ∈ A
20 mosn ⊢ A = y → ∃* z z ∈ A
21 20 exlimiv ⊢ ∃ y A = y → ∃* z z ∈ A
22 19 21 jaoi ⊢ A = ∅ ∨ ∃ y A = y → ∃* z z ∈ A
23 18 22 impbii ⊢ ∃* z z ∈ A ↔ A = ∅ ∨ ∃ y A = y
24 4 23 bitri ⊢ ∃* x x ∈ A ↔ A = ∅ ∨ ∃ y A = y