Metamath Proof Explorer


Theorem fodomfir

Description: There exists a mapping from a finite set onto any nonempty set that it dominates, proved without using the Axiom of Power Sets (unlike fodomr ). (Contributed by BTernaryTau, 23-Jun-2025)

Ref Expression
Assertion fodomfir ⊢ A ∈ Fin ∧ ∅ ≺ B ∧ B ≼ A → ∃ f f : A ⟶ onto B

Proof

Step Hyp Ref Expression
1 relsdom ⊢ Rel ⁡ ≺
2 1 brrelex2i ⊢ ∅ ≺ B → B ∈ V
3 0sdomg ⊢ B ∈ V → ∅ ≺ B ↔ B ≠ ∅
4 n0 ⊢ B ≠ ∅ ↔ ∃ z z ∈ B
5 3 4 bitrdi ⊢ B ∈ V → ∅ ≺ B ↔ ∃ z z ∈ B
6 2 5 syl ⊢ ∅ ≺ B → ∅ ≺ B ↔ ∃ z z ∈ B
7 6 ibi ⊢ ∅ ≺ B → ∃ z z ∈ B
8 domfi ⊢ A ∈ Fin ∧ B ≼ A → B ∈ Fin
9 simpl ⊢ A ∈ Fin ∧ B ≼ A → A ∈ Fin
10 brdomi ⊢ B ≼ A → ∃ g g : B ⟶ 1-1 A
11 f1fn ⊢ g : B ⟶ 1-1 A → g Fn B
12 fnfi ⊢ g Fn B ∧ B ∈ Fin → g ∈ Fin
13 11 12 sylan ⊢ g : B ⟶ 1-1 A ∧ B ∈ Fin → g ∈ Fin
14 13 ex ⊢ g : B ⟶ 1-1 A → B ∈ Fin → g ∈ Fin
15 cnvfi ⊢ g ∈ Fin → g -1 ∈ Fin
16 diffi ⊢ A ∈ Fin → A ∖ ran ⁡ g ∈ Fin
17 snfi ⊢ z ∈ Fin
18 xpfi ⊢ A ∖ ran ⁡ g ∈ Fin ∧ z ∈ Fin → A ∖ ran ⁡ g × z ∈ Fin
19 16 17 18 sylancl ⊢ A ∈ Fin → A ∖ ran ⁡ g × z ∈ Fin
20 unfi ⊢ g -1 ∈ Fin ∧ A ∖ ran ⁡ g × z ∈ Fin → g -1 ∪ A ∖ ran ⁡ g × z ∈ Fin
21 15 19 20 syl2an ⊢ g ∈ Fin ∧ A ∈ Fin → g -1 ∪ A ∖ ran ⁡ g × z ∈ Fin
22 df-f1 ⊢ g : B ⟶ 1-1 A ↔ g : B ⟶ A ∧ Fun ⁡ g -1
23 22 simprbi ⊢ g : B ⟶ 1-1 A → Fun ⁡ g -1
24 vex ⊢ z ∈ V
25 24 fconst ⊢ A ∖ ran ⁡ g × z : A ∖ ran ⁡ g ⟶ z
26 ffun ⊢ A ∖ ran ⁡ g × z : A ∖ ran ⁡ g ⟶ z → Fun ⁡ A ∖ ran ⁡ g × z
27 25 26 ax-mp ⊢ Fun ⁡ A ∖ ran ⁡ g × z
28 23 27 jctir ⊢ g : B ⟶ 1-1 A → Fun ⁡ g -1 ∧ Fun ⁡ A ∖ ran ⁡ g × z
29 df-rn ⊢ ran ⁡ g = dom ⁡ g -1
30 29 eqcomi ⊢ dom ⁡ g -1 = ran ⁡ g
31 24 snnz ⊢ z ≠ ∅
32 dmxp ⊢ z ≠ ∅ → dom ⁡ A ∖ ran ⁡ g × z = A ∖ ran ⁡ g
33 31 32 ax-mp ⊢ dom ⁡ A ∖ ran ⁡ g × z = A ∖ ran ⁡ g
34 30 33 ineq12i ⊢ dom ⁡ g -1 ∩ dom ⁡ A ∖ ran ⁡ g × z = ran ⁡ g ∩ A ∖ ran ⁡ g
35 disjdif ⊢ ran ⁡ g ∩ A ∖ ran ⁡ g = ∅
36 34 35 eqtri ⊢ dom ⁡ g -1 ∩ dom ⁡ A ∖ ran ⁡ g × z = ∅
37 funun ⊢ Fun ⁡ g -1 ∧ Fun ⁡ A ∖ ran ⁡ g × z ∧ dom ⁡ g -1 ∩ dom ⁡ A ∖ ran ⁡ g × z = ∅ → Fun ⁡ g -1 ∪ A ∖ ran ⁡ g × z
38 28 36 37 sylancl ⊢ g : B ⟶ 1-1 A → Fun ⁡ g -1 ∪ A ∖ ran ⁡ g × z
39 38 adantl ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → Fun ⁡ g -1 ∪ A ∖ ran ⁡ g × z
40 dmun ⊢ dom ⁡ g -1 ∪ A ∖ ran ⁡ g × z = dom ⁡ g -1 ∪ dom ⁡ A ∖ ran ⁡ g × z
41 29 uneq1i ⊢ ran ⁡ g ∪ dom ⁡ A ∖ ran ⁡ g × z = dom ⁡ g -1 ∪ dom ⁡ A ∖ ran ⁡ g × z
42 33 uneq2i ⊢ ran ⁡ g ∪ dom ⁡ A ∖ ran ⁡ g × z = ran ⁡ g ∪ A ∖ ran ⁡ g
43 40 41 42 3eqtr2i ⊢ dom ⁡ g -1 ∪ A ∖ ran ⁡ g × z = ran ⁡ g ∪ A ∖ ran ⁡ g
44 f1f ⊢ g : B ⟶ 1-1 A → g : B ⟶ A
45 44 frnd ⊢ g : B ⟶ 1-1 A → ran ⁡ g ⊆ A
46 undif ⊢ ran ⁡ g ⊆ A ↔ ran ⁡ g ∪ A ∖ ran ⁡ g = A
47 45 46 sylib ⊢ g : B ⟶ 1-1 A → ran ⁡ g ∪ A ∖ ran ⁡ g = A
48 43 47 eqtrid ⊢ g : B ⟶ 1-1 A → dom ⁡ g -1 ∪ A ∖ ran ⁡ g × z = A
49 48 adantl ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → dom ⁡ g -1 ∪ A ∖ ran ⁡ g × z = A
50 df-fn ⊢ g -1 ∪ A ∖ ran ⁡ g × z Fn A ↔ Fun ⁡ g -1 ∪ A ∖ ran ⁡ g × z ∧ dom ⁡ g -1 ∪ A ∖ ran ⁡ g × z = A
51 39 49 50 sylanbrc ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → g -1 ∪ A ∖ ran ⁡ g × z Fn A
52 rnun ⊢ ran ⁡ g -1 ∪ A ∖ ran ⁡ g × z = ran ⁡ g -1 ∪ ran ⁡ A ∖ ran ⁡ g × z
53 dfdm4 ⊢ dom ⁡ g = ran ⁡ g -1
54 f1dm ⊢ g : B ⟶ 1-1 A → dom ⁡ g = B
55 53 54 eqtr3id ⊢ g : B ⟶ 1-1 A → ran ⁡ g -1 = B
56 55 uneq1d ⊢ g : B ⟶ 1-1 A → ran ⁡ g -1 ∪ ran ⁡ A ∖ ran ⁡ g × z = B ∪ ran ⁡ A ∖ ran ⁡ g × z
57 xpeq1 ⊢ A ∖ ran ⁡ g = ∅ → A ∖ ran ⁡ g × z = ∅ × z
58 0xp ⊢ ∅ × z = ∅
59 57 58 eqtrdi ⊢ A ∖ ran ⁡ g = ∅ → A ∖ ran ⁡ g × z = ∅
60 59 rneqd ⊢ A ∖ ran ⁡ g = ∅ → ran ⁡ A ∖ ran ⁡ g × z = ran ⁡ ∅
61 rn0 ⊢ ran ⁡ ∅ = ∅
62 60 61 eqtrdi ⊢ A ∖ ran ⁡ g = ∅ → ran ⁡ A ∖ ran ⁡ g × z = ∅
63 0ss ⊢ ∅ ⊆ B
64 62 63 eqsstrdi ⊢ A ∖ ran ⁡ g = ∅ → ran ⁡ A ∖ ran ⁡ g × z ⊆ B
65 64 a1d ⊢ A ∖ ran ⁡ g = ∅ → z ∈ B → ran ⁡ A ∖ ran ⁡ g × z ⊆ B
66 rnxp ⊢ A ∖ ran ⁡ g ≠ ∅ → ran ⁡ A ∖ ran ⁡ g × z = z
67 66 adantr ⊢ A ∖ ran ⁡ g ≠ ∅ ∧ z ∈ B → ran ⁡ A ∖ ran ⁡ g × z = z
68 snssi ⊢ z ∈ B → z ⊆ B
69 68 adantl ⊢ A ∖ ran ⁡ g ≠ ∅ ∧ z ∈ B → z ⊆ B
70 67 69 eqsstrd ⊢ A ∖ ran ⁡ g ≠ ∅ ∧ z ∈ B → ran ⁡ A ∖ ran ⁡ g × z ⊆ B
71 70 ex ⊢ A ∖ ran ⁡ g ≠ ∅ → z ∈ B → ran ⁡ A ∖ ran ⁡ g × z ⊆ B
72 65 71 pm2.61ine ⊢ z ∈ B → ran ⁡ A ∖ ran ⁡ g × z ⊆ B
73 ssequn2 ⊢ ran ⁡ A ∖ ran ⁡ g × z ⊆ B ↔ B ∪ ran ⁡ A ∖ ran ⁡ g × z = B
74 72 73 sylib ⊢ z ∈ B → B ∪ ran ⁡ A ∖ ran ⁡ g × z = B
75 56 74 sylan9eqr ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → ran ⁡ g -1 ∪ ran ⁡ A ∖ ran ⁡ g × z = B
76 52 75 eqtrid ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → ran ⁡ g -1 ∪ A ∖ ran ⁡ g × z = B
77 df-fo ⊢ g -1 ∪ A ∖ ran ⁡ g × z : A ⟶ onto B ↔ g -1 ∪ A ∖ ran ⁡ g × z Fn A ∧ ran ⁡ g -1 ∪ A ∖ ran ⁡ g × z = B
78 51 76 77 sylanbrc ⊢ z ∈ B ∧ g : B ⟶ 1-1 A → g -1 ∪ A ∖ ran ⁡ g × z : A ⟶ onto B
79 foeq1 ⊢ f = g -1 ∪ A ∖ ran ⁡ g × z → f : A ⟶ onto B ↔ g -1 ∪ A ∖ ran ⁡ g × z : A ⟶ onto B
80 79 spcegv ⊢ g -1 ∪ A ∖ ran ⁡ g × z ∈ Fin → g -1 ∪ A ∖ ran ⁡ g × z : A ⟶ onto B → ∃ f f : A ⟶ onto B
81 21 78 80 syl2im ⊢ g ∈ Fin ∧ A ∈ Fin → z ∈ B ∧ g : B ⟶ 1-1 A → ∃ f f : A ⟶ onto B
82 81 expcomd ⊢ g ∈ Fin ∧ A ∈ Fin → g : B ⟶ 1-1 A → z ∈ B → ∃ f f : A ⟶ onto B
83 82 com12 ⊢ g : B ⟶ 1-1 A → g ∈ Fin ∧ A ∈ Fin → z ∈ B → ∃ f f : A ⟶ onto B
84 14 83 syland ⊢ g : B ⟶ 1-1 A → B ∈ Fin ∧ A ∈ Fin → z ∈ B → ∃ f f : A ⟶ onto B
85 84 exlimiv ⊢ ∃ g g : B ⟶ 1-1 A → B ∈ Fin ∧ A ∈ Fin → z ∈ B → ∃ f f : A ⟶ onto B
86 10 85 syl ⊢ B ≼ A → B ∈ Fin ∧ A ∈ Fin → z ∈ B → ∃ f f : A ⟶ onto B
87 86 adantl ⊢ A ∈ Fin ∧ B ≼ A → B ∈ Fin ∧ A ∈ Fin → z ∈ B → ∃ f f : A ⟶ onto B
88 8 9 87 mp2and ⊢ A ∈ Fin ∧ B ≼ A → z ∈ B → ∃ f f : A ⟶ onto B
89 88 exlimdv ⊢ A ∈ Fin ∧ B ≼ A → ∃ z z ∈ B → ∃ f f : A ⟶ onto B
90 7 89 syl5 ⊢ A ∈ Fin ∧ B ≼ A → ∅ ≺ B → ∃ f f : A ⟶ onto B
91 90 3impia ⊢ A ∈ Fin ∧ B ≼ A ∧ ∅ ≺ B → ∃ f f : A ⟶ onto B
92 91 3com23 ⊢ A ∈ Fin ∧ ∅ ≺ B ∧ B ≼ A → ∃ f f : A ⟶ onto B