Metamath Proof Explorer


Theorem acni2

Description: The property of being a choice set of length A . (Contributed by Mario Carneiro, 31-Aug-2015)

Ref Expression
Assertion acni2 ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) )

Proof

Step Hyp Ref Expression
1 eldifsn ( 𝐵 ∈ ( 𝒫 𝑋 ∖ { ∅ } ) ↔ ( 𝐵 ∈ 𝒫 𝑋𝐵 ≠ ∅ ) )
2 elpw2g ( 𝑋AC 𝐴 → ( 𝐵 ∈ 𝒫 𝑋𝐵𝑋 ) )
3 2 anbi1d ( 𝑋AC 𝐴 → ( ( 𝐵 ∈ 𝒫 𝑋𝐵 ≠ ∅ ) ↔ ( 𝐵𝑋𝐵 ≠ ∅ ) ) )
4 1 3 bitrid ( 𝑋AC 𝐴 → ( 𝐵 ∈ ( 𝒫 𝑋 ∖ { ∅ } ) ↔ ( 𝐵𝑋𝐵 ≠ ∅ ) ) )
5 4 ralbidv ( 𝑋AC 𝐴 → ( ∀ 𝑥𝐴 𝐵 ∈ ( 𝒫 𝑋 ∖ { ∅ } ) ↔ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) )
6 5 biimpar ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ∀ 𝑥𝐴 𝐵 ∈ ( 𝒫 𝑋 ∖ { ∅ } ) )
7 eqid ( 𝑥𝐴𝐵 ) = ( 𝑥𝐴𝐵 )
8 7 fmpt ( ∀ 𝑥𝐴 𝐵 ∈ ( 𝒫 𝑋 ∖ { ∅ } ) ↔ ( 𝑥𝐴𝐵 ) : 𝐴 ⟶ ( 𝒫 𝑋 ∖ { ∅ } ) )
9 6 8 sylib ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ( 𝑥𝐴𝐵 ) : 𝐴 ⟶ ( 𝒫 𝑋 ∖ { ∅ } ) )
10 acni ( ( 𝑋AC 𝐴 ∧ ( 𝑥𝐴𝐵 ) : 𝐴 ⟶ ( 𝒫 𝑋 ∖ { ∅ } ) ) → ∃ 𝑓𝑦𝐴 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) )
11 9 10 syldan ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ∃ 𝑓𝑦𝐴 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) )
12 nffvmpt1 𝑥 ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 )
13 12 nfel2 𝑥 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 )
14 nfv 𝑦 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 )
15 fveq2 ( 𝑦 = 𝑥 → ( 𝑓𝑦 ) = ( 𝑓𝑥 ) )
16 fveq2 ( 𝑦 = 𝑥 → ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) = ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) )
17 15 16 eleq12d ( 𝑦 = 𝑥 → ( ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) ↔ ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) )
18 13 14 17 cbvralw ( ∀ 𝑦𝐴 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) ↔ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) )
19 simplr ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) )
20 simplr ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → 𝑥𝐴 )
21 simpll ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → 𝑋AC 𝐴 )
22 simpr ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → 𝐵𝑋 )
23 21 22 ssexd ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → 𝐵 ∈ V )
24 7 fvmpt2 ( ( 𝑥𝐴𝐵 ∈ V ) → ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) = 𝐵 )
25 20 23 24 syl2anc ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) = 𝐵 )
26 25 eleq2d ( ( ( 𝑋AC 𝐴𝑥𝐴 ) ∧ 𝐵𝑋 ) → ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) )
27 26 ex ( ( 𝑋AC 𝐴𝑥𝐴 ) → ( 𝐵𝑋 → ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
28 27 adantrd ( ( 𝑋AC 𝐴𝑥𝐴 ) → ( ( 𝐵𝑋𝐵 ≠ ∅ ) → ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
29 28 ralimdva ( 𝑋AC 𝐴 → ( ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) → ∀ 𝑥𝐴 ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) ) )
30 29 imp ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ∀ 𝑥𝐴 ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) )
31 ralbi ( ∀ 𝑥𝐴 ( ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) → ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )
32 30 31 syl ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ↔ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 ) )
33 32 biimpa ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 )
34 ssel ( 𝐵𝑋 → ( ( 𝑓𝑥 ) ∈ 𝐵 → ( 𝑓𝑥 ) ∈ 𝑋 ) )
35 34 adantr ( ( 𝐵𝑋𝐵 ≠ ∅ ) → ( ( 𝑓𝑥 ) ∈ 𝐵 → ( 𝑓𝑥 ) ∈ 𝑋 ) )
36 35 ral2imi ( ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) → ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 → ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝑋 ) )
37 19 33 36 sylc ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝑋 )
38 fveq2 ( 𝑥 = 𝑦 → ( 𝑓𝑥 ) = ( 𝑓𝑦 ) )
39 38 eleq1d ( 𝑥 = 𝑦 → ( ( 𝑓𝑥 ) ∈ 𝑋 ↔ ( 𝑓𝑦 ) ∈ 𝑋 ) )
40 39 rspccva ( ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝑋𝑦𝐴 ) → ( 𝑓𝑦 ) ∈ 𝑋 )
41 37 40 sylan ( ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) ∧ 𝑦𝐴 ) → ( 𝑓𝑦 ) ∈ 𝑋 )
42 41 fmpttd ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) : 𝐴𝑋 )
43 simpll ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → 𝑋AC 𝐴 )
44 acnrcl ( 𝑋AC 𝐴𝐴 ∈ V )
45 43 44 syl ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → 𝐴 ∈ V )
46 fex2 ( ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) : 𝐴𝑋𝐴 ∈ V ∧ 𝑋AC 𝐴 ) → ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ∈ V )
47 42 45 43 46 syl3anc ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ∈ V )
48 eqid ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) )
49 fvex ( 𝑓𝑥 ) ∈ V
50 15 48 49 fvmpt ( 𝑥𝐴 → ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) = ( 𝑓𝑥 ) )
51 50 eleq1d ( 𝑥𝐴 → ( ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ↔ ( 𝑓𝑥 ) ∈ 𝐵 ) )
52 51 ralbiia ( ∀ 𝑥𝐴 ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ↔ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ 𝐵 )
53 33 52 sylibr ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ∀ 𝑥𝐴 ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 )
54 42 53 jca ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
55 feq1 ( 𝑔 = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) → ( 𝑔 : 𝐴𝑋 ↔ ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) : 𝐴𝑋 ) )
56 fveq1 ( 𝑔 = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) → ( 𝑔𝑥 ) = ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) )
57 56 eleq1d ( 𝑔 = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) → ( ( 𝑔𝑥 ) ∈ 𝐵 ↔ ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
58 57 ralbidv ( 𝑔 = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) → ( ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ↔ ∀ 𝑥𝐴 ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ) )
59 55 58 anbi12d ( 𝑔 = ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) → ( ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) ↔ ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( ( 𝑦𝐴 ↦ ( 𝑓𝑦 ) ) ‘ 𝑥 ) ∈ 𝐵 ) ) )
60 47 54 59 spcedv ( ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) ∧ ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) )
61 60 ex ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ( ∀ 𝑥𝐴 ( 𝑓𝑥 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑥 ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) ) )
62 18 61 syl5bi ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ( ∀ 𝑦𝐴 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) ) )
63 62 exlimdv ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ( ∃ 𝑓𝑦𝐴 ( 𝑓𝑦 ) ∈ ( ( 𝑥𝐴𝐵 ) ‘ 𝑦 ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) ) )
64 11 63 mpd ( ( 𝑋AC 𝐴 ∧ ∀ 𝑥𝐴 ( 𝐵𝑋𝐵 ≠ ∅ ) ) → ∃ 𝑔 ( 𝑔 : 𝐴𝑋 ∧ ∀ 𝑥𝐴 ( 𝑔𝑥 ) ∈ 𝐵 ) )