Metamath Proof Explorer


Theorem acunirnmpt

Description: Axiom of choice for the union of the range of a mapping to function. (Contributed by Thierry Arnoux, 6-Nov-2019)

Ref Expression
Hypotheses acunirnmpt.0 ( 𝜑𝐴𝑉 )
acunirnmpt.1 ( ( 𝜑𝑗𝐴 ) → 𝐵 ≠ ∅ )
acunirnmpt.2 𝐶 = ran ( 𝑗𝐴𝐵 )
Assertion acunirnmpt ( 𝜑 → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) )

Proof

Step Hyp Ref Expression
1 acunirnmpt.0 ( 𝜑𝐴𝑉 )
2 acunirnmpt.1 ( ( 𝜑𝑗𝐴 ) → 𝐵 ≠ ∅ )
3 acunirnmpt.2 𝐶 = ran ( 𝑗𝐴𝐵 )
4 simpr ( ( ( ( 𝜑𝑦𝐶 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑦 = 𝐵 )
5 simplll ( ( ( ( 𝜑𝑦𝐶 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝜑 )
6 simplr ( ( ( ( 𝜑𝑦𝐶 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑗𝐴 )
7 5 6 2 syl2anc ( ( ( ( 𝜑𝑦𝐶 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝐵 ≠ ∅ )
8 4 7 eqnetrd ( ( ( ( 𝜑𝑦𝐶 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑦 ≠ ∅ )
9 3 eleq2i ( 𝑦𝐶𝑦 ∈ ran ( 𝑗𝐴𝐵 ) )
10 vex 𝑦 ∈ V
11 eqid ( 𝑗𝐴𝐵 ) = ( 𝑗𝐴𝐵 )
12 11 elrnmpt ( 𝑦 ∈ V → ( 𝑦 ∈ ran ( 𝑗𝐴𝐵 ) ↔ ∃ 𝑗𝐴 𝑦 = 𝐵 ) )
13 10 12 ax-mp ( 𝑦 ∈ ran ( 𝑗𝐴𝐵 ) ↔ ∃ 𝑗𝐴 𝑦 = 𝐵 )
14 9 13 bitri ( 𝑦𝐶 ↔ ∃ 𝑗𝐴 𝑦 = 𝐵 )
15 14 bilani ( ( 𝜑𝑦𝐶 ) → ∃ 𝑗𝐴 𝑦 = 𝐵 )
16 8 15 r19.29a ( ( 𝜑𝑦𝐶 ) → 𝑦 ≠ ∅ )
17 16 ralrimiva ( 𝜑 → ∀ 𝑦𝐶 𝑦 ≠ ∅ )
18 mptexg ( 𝐴𝑉 → ( 𝑗𝐴𝐵 ) ∈ V )
19 rnexg ( ( 𝑗𝐴𝐵 ) ∈ V → ran ( 𝑗𝐴𝐵 ) ∈ V )
20 1 18 19 3syl ( 𝜑 → ran ( 𝑗𝐴𝐵 ) ∈ V )
21 3 20 eqeltrid ( 𝜑𝐶 ∈ V )
22 raleq ( 𝑐 = 𝐶 → ( ∀ 𝑦𝑐 𝑦 ≠ ∅ ↔ ∀ 𝑦𝐶 𝑦 ≠ ∅ ) )
23 id ( 𝑐 = 𝐶𝑐 = 𝐶 )
24 unieq ( 𝑐 = 𝐶 𝑐 = 𝐶 )
25 23 24 feq23d ( 𝑐 = 𝐶 → ( 𝑓 : 𝑐 𝑐𝑓 : 𝐶 𝐶 ) )
26 raleq ( 𝑐 = 𝐶 → ( ∀ 𝑦𝑐 ( 𝑓𝑦 ) ∈ 𝑦 ↔ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) )
27 25 26 anbi12d ( 𝑐 = 𝐶 → ( ( 𝑓 : 𝑐 𝑐 ∧ ∀ 𝑦𝑐 ( 𝑓𝑦 ) ∈ 𝑦 ) ↔ ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) ) )
28 27 exbidv ( 𝑐 = 𝐶 → ( ∃ 𝑓 ( 𝑓 : 𝑐 𝑐 ∧ ∀ 𝑦𝑐 ( 𝑓𝑦 ) ∈ 𝑦 ) ↔ ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) ) )
29 22 28 imbi12d ( 𝑐 = 𝐶 → ( ( ∀ 𝑦𝑐 𝑦 ≠ ∅ → ∃ 𝑓 ( 𝑓 : 𝑐 𝑐 ∧ ∀ 𝑦𝑐 ( 𝑓𝑦 ) ∈ 𝑦 ) ) ↔ ( ∀ 𝑦𝐶 𝑦 ≠ ∅ → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) ) ) )
30 vex 𝑐 ∈ V
31 30 ac5b ( ∀ 𝑦𝑐 𝑦 ≠ ∅ → ∃ 𝑓 ( 𝑓 : 𝑐 𝑐 ∧ ∀ 𝑦𝑐 ( 𝑓𝑦 ) ∈ 𝑦 ) )
32 29 31 vtoclg ( 𝐶 ∈ V → ( ∀ 𝑦𝐶 𝑦 ≠ ∅ → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) ) )
33 21 32 syl ( 𝜑 → ( ∀ 𝑦𝐶 𝑦 ≠ ∅ → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) ) )
34 17 33 mpd ( 𝜑 → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) )
35 15 adantr ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) → ∃ 𝑗𝐴 𝑦 = 𝐵 )
36 simpllr ( ( ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → ( 𝑓𝑦 ) ∈ 𝑦 )
37 simpr ( ( ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑦 = 𝐵 )
38 36 37 eleqtrd ( ( ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) ∧ 𝑗𝐴 ) ∧ 𝑦 = 𝐵 ) → ( 𝑓𝑦 ) ∈ 𝐵 )
39 38 ex ( ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) ∧ 𝑗𝐴 ) → ( 𝑦 = 𝐵 → ( 𝑓𝑦 ) ∈ 𝐵 ) )
40 39 reximdva ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) → ( ∃ 𝑗𝐴 𝑦 = 𝐵 → ∃ 𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) )
41 35 40 mpd ( ( ( 𝜑𝑦𝐶 ) ∧ ( 𝑓𝑦 ) ∈ 𝑦 ) → ∃ 𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 )
42 41 ex ( ( 𝜑𝑦𝐶 ) → ( ( 𝑓𝑦 ) ∈ 𝑦 → ∃ 𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) )
43 42 ralimdva ( 𝜑 → ( ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 → ∀ 𝑦𝐶𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) )
44 43 anim2d ( 𝜑 → ( ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) → ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) ) )
45 44 eximdv ( 𝜑 → ( ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶 ( 𝑓𝑦 ) ∈ 𝑦 ) → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) ) )
46 34 45 mpd ( 𝜑 → ∃ 𝑓 ( 𝑓 : 𝐶 𝐶 ∧ ∀ 𝑦𝐶𝑗𝐴 ( 𝑓𝑦 ) ∈ 𝐵 ) )