Metamath Proof Explorer


Theorem choicefi

Description: For a finite set, a choice function exists, without using the axiom of choice. (Contributed by Glauco Siliprandi, 24-Dec-2020)

Ref Expression
Hypotheses choicefi.a ( 𝜑𝐴 ∈ Fin )
choicefi.b ( ( 𝜑𝑥𝐴 ) → 𝐵𝑊 )
choicefi.n ( ( 𝜑𝑥𝐴 ) → 𝐵 ≠ ∅ )
Assertion choicefi ( 𝜑 → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )

Proof

Step Hyp Ref Expression
1 choicefi.a ( 𝜑𝐴 ∈ Fin )
2 choicefi.b ( ( 𝜑𝑥𝐴 ) → 𝐵𝑊 )
3 choicefi.n ( ( 𝜑𝑥𝐴 ) → 𝐵 ≠ ∅ )
4 mptfi ( 𝐴 ∈ Fin → ( 𝑥𝐴𝐵 ) ∈ Fin )
5 rnfi ( ( 𝑥𝐴𝐵 ) ∈ Fin → ran ( 𝑥𝐴𝐵 ) ∈ Fin )
6 fnchoice ( ran ( 𝑥𝐴𝐵 ) ∈ Fin → ∃ 𝑔 ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) )
7 1 4 5 6 4syl ( 𝜑 → ∃ 𝑔 ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) )
8 simpl ( ( 𝜑 ∧ ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ) → 𝜑 )
9 simprl ( ( 𝜑 ∧ ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ) → 𝑔 Fn ran ( 𝑥𝐴𝐵 ) )
10 nfv 𝑦 𝜑
11 nfra1 𝑦𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 )
12 10 11 nfan 𝑦 ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) )
13 rspa ( ( ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) )
14 13 adantll ( ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ∧ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) )
15 vex 𝑦 ∈ V
16 eqid ( 𝑥𝐴𝐵 ) = ( 𝑥𝐴𝐵 )
17 16 elrnmpt ( 𝑦 ∈ V → ( 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ↔ ∃ 𝑥𝐴 𝑦 = 𝐵 ) )
18 15 17 ax-mp ( 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ↔ ∃ 𝑥𝐴 𝑦 = 𝐵 )
19 18 bilani ( ( 𝜑𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → ∃ 𝑥𝐴 𝑦 = 𝐵 )
20 simp3 ( ( 𝜑𝑥𝐴𝑦 = 𝐵 ) → 𝑦 = 𝐵 )
21 3 3adant3 ( ( 𝜑𝑥𝐴𝑦 = 𝐵 ) → 𝐵 ≠ ∅ )
22 20 21 eqnetrd ( ( 𝜑𝑥𝐴𝑦 = 𝐵 ) → 𝑦 ≠ ∅ )
23 22 3exp ( 𝜑 → ( 𝑥𝐴 → ( 𝑦 = 𝐵𝑦 ≠ ∅ ) ) )
24 23 rexlimdv ( 𝜑 → ( ∃ 𝑥𝐴 𝑦 = 𝐵𝑦 ≠ ∅ ) )
25 24 adantr ( ( 𝜑𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → ( ∃ 𝑥𝐴 𝑦 = 𝐵𝑦 ≠ ∅ ) )
26 19 25 mpd ( ( 𝜑𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → 𝑦 ≠ ∅ )
27 26 adantlr ( ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ∧ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → 𝑦 ≠ ∅ )
28 id ( ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) → ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) )
29 28 imp ( ( ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑦 ≠ ∅ ) → ( 𝑔𝑦 ) ∈ 𝑦 )
30 14 27 29 syl2anc ( ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ∧ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ) → ( 𝑔𝑦 ) ∈ 𝑦 )
31 30 ex ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ( 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) → ( 𝑔𝑦 ) ∈ 𝑦 ) )
32 12 31 ralrimi ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 )
33 rsp ( ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 → ( 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) → ( 𝑔𝑦 ) ∈ 𝑦 ) )
34 32 33 syl ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ( 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) → ( 𝑔𝑦 ) ∈ 𝑦 ) )
35 12 34 ralrimi ( ( 𝜑 ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 )
36 35 adantrl ( ( 𝜑 ∧ ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ) → ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 )
37 vex 𝑔 ∈ V
38 37 a1i ( 𝜑𝑔 ∈ V )
39 1 mptexd ( 𝜑 → ( 𝑥𝐴𝐵 ) ∈ V )
40 coexg ( ( 𝑔 ∈ V ∧ ( 𝑥𝐴𝐵 ) ∈ V ) → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ∈ V )
41 38 39 40 syl2anc ( 𝜑 → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ∈ V )
42 41 3ad2ant1 ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ∈ V )
43 simpr ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ) → 𝑔 Fn ran ( 𝑥𝐴𝐵 ) )
44 2 ralrimiva ( 𝜑 → ∀ 𝑥𝐴 𝐵𝑊 )
45 16 fnmpt ( ∀ 𝑥𝐴 𝐵𝑊 → ( 𝑥𝐴𝐵 ) Fn 𝐴 )
46 44 45 syl ( 𝜑 → ( 𝑥𝐴𝐵 ) Fn 𝐴 )
47 46 adantr ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ) → ( 𝑥𝐴𝐵 ) Fn 𝐴 )
48 ssidd ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ) → ran ( 𝑥𝐴𝐵 ) ⊆ ran ( 𝑥𝐴𝐵 ) )
49 fnco ( ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ( 𝑥𝐴𝐵 ) Fn 𝐴 ∧ ran ( 𝑥𝐴𝐵 ) ⊆ ran ( 𝑥𝐴𝐵 ) ) → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 )
50 43 47 48 49 syl3anc ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ) → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 )
51 50 3adant3 ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 )
52 nfv 𝑥 𝜑
53 nfcv 𝑥 𝑔
54 nfmpt1 𝑥 ( 𝑥𝐴𝐵 )
55 54 nfrn 𝑥 ran ( 𝑥𝐴𝐵 )
56 53 55 nffn 𝑥 𝑔 Fn ran ( 𝑥𝐴𝐵 )
57 nfv 𝑥 ( 𝑔𝑦 ) ∈ 𝑦
58 55 57 nfralw 𝑥𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦
59 52 56 58 nf3an 𝑥 ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 )
60 funmpt Fun ( 𝑥𝐴𝐵 )
61 60 a1i ( ( 𝜑𝑥𝐴 ) → Fun ( 𝑥𝐴𝐵 ) )
62 simpr ( ( 𝜑𝑥𝐴 ) → 𝑥𝐴 )
63 16 2 dmmptd ( 𝜑 → dom ( 𝑥𝐴𝐵 ) = 𝐴 )
64 63 eqcomd ( 𝜑𝐴 = dom ( 𝑥𝐴𝐵 ) )
65 64 adantr ( ( 𝜑𝑥𝐴 ) → 𝐴 = dom ( 𝑥𝐴𝐵 ) )
66 62 65 eleqtrd ( ( 𝜑𝑥𝐴 ) → 𝑥 ∈ dom ( 𝑥𝐴𝐵 ) )
67 fvco ( ( Fun ( 𝑥𝐴𝐵 ) ∧ 𝑥 ∈ dom ( 𝑥𝐴𝐵 ) ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) = ( 𝑔 ‘ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) )
68 61 66 67 syl2anc ( ( 𝜑𝑥𝐴 ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) = ( 𝑔 ‘ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) )
69 16 fvmpt2 ( ( 𝑥𝐴𝐵𝑊 ) → ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) = 𝐵 )
70 62 2 69 syl2anc ( ( 𝜑𝑥𝐴 ) → ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) = 𝐵 )
71 70 fveq2d ( ( 𝜑𝑥𝐴 ) → ( 𝑔 ‘ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) = ( 𝑔𝐵 ) )
72 68 71 eqtrd ( ( 𝜑𝑥𝐴 ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) = ( 𝑔𝐵 ) )
73 72 3ad2antl1 ( ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑥𝐴 ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) = ( 𝑔𝐵 ) )
74 16 elrnmpt1 ( ( 𝑥𝐴𝐵𝑊 ) → 𝐵 ∈ ran ( 𝑥𝐴𝐵 ) )
75 62 2 74 syl2anc ( ( 𝜑𝑥𝐴 ) → 𝐵 ∈ ran ( 𝑥𝐴𝐵 ) )
76 75 3ad2antl1 ( ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑥𝐴 ) → 𝐵 ∈ ran ( 𝑥𝐴𝐵 ) )
77 simpl3 ( ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑥𝐴 ) → ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 )
78 fveq2 ( 𝑦 = 𝐵 → ( 𝑔𝑦 ) = ( 𝑔𝐵 ) )
79 id ( 𝑦 = 𝐵𝑦 = 𝐵 )
80 78 79 eleq12d ( 𝑦 = 𝐵 → ( ( 𝑔𝑦 ) ∈ 𝑦 ↔ ( 𝑔𝐵 ) ∈ 𝐵 ) )
81 80 rspcva ( ( 𝐵 ∈ ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ( 𝑔𝐵 ) ∈ 𝐵 )
82 76 77 81 syl2anc ( ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑥𝐴 ) → ( 𝑔𝐵 ) ∈ 𝐵 )
83 73 82 eqeltrd ( ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) ∧ 𝑥𝐴 ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 )
84 83 ex ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ( 𝑥𝐴 → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
85 59 84 ralrimi ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ∀ 𝑥𝐴 ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 )
86 51 85 jca ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 ∧ ∀ 𝑥𝐴 ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
87 fneq1 ( 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) → ( 𝑓 Fn 𝐴 ↔ ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 ) )
88 nfcv 𝑥 𝑓
89 53 54 nfco 𝑥 ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) )
90 88 89 nfeq 𝑥 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) )
91 fveq1 ( 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) → ( 𝑓𝑥 ) = ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) )
92 91 eleq1d ( 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) → ( ( 𝑓𝑥 ) ∈ 𝐵 ↔ ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
93 90 92 ralbid ( 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) → ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ↔ ∀ 𝑥𝐴 ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
94 87 93 anbi12d ( 𝑓 = ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) → ( ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) ↔ ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 ∧ ∀ 𝑥𝐴 ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) ) )
95 94 spcegv ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ∈ V → ( ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) Fn 𝐴 ∧ ∀ 𝑥𝐴 ( ( 𝑔 ∘ ( 𝑥𝐴𝐵 ) ) ‘ 𝑥 ) ∈ 𝐵 ) → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
96 42 86 95 sylc ( ( 𝜑𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑔𝑦 ) ∈ 𝑦 ) → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )
97 8 9 36 96 syl3anc ( ( 𝜑 ∧ ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) ) → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )
98 97 ex ( 𝜑 → ( ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
99 98 exlimdv ( 𝜑 → ( ∃ 𝑔 ( 𝑔 Fn ran ( 𝑥𝐴𝐵 ) ∧ ∀ 𝑦 ∈ ran ( 𝑥𝐴𝐵 ) ( 𝑦 ≠ ∅ → ( 𝑔𝑦 ) ∈ 𝑦 ) ) → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
100 7 99 mpd ( 𝜑 → ∃ 𝑓 ( 𝑓 Fn 𝐴 ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )