Metamath Proof Explorer


Theorem dfac9

Description: Equivalence of the axiom of choice with a statement related to ac9 ; definition AC3 of Schechter p. 139. (Contributed by Stefan O'Rear, 22-Feb-2015)

Ref Expression
Assertion dfac9 ( CHOICE ↔ ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )

Proof

Step Hyp Ref Expression
1 dfac3 ( CHOICE ↔ ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
2 vex 𝑓 ∈ V
3 2 rnex ran 𝑓 ∈ V
4 raleq ( 𝑠 = ran 𝑓 → ( ∀ 𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ↔ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) )
5 4 exbidv ( 𝑠 = ran 𝑓 → ( ∃ 𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ↔ ∃ 𝑔𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) )
6 3 5 spcv ( ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) → ∃ 𝑔𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
7 df-nel ( ∅ ∉ ran 𝑓 ↔ ¬ ∅ ∈ ran 𝑓 )
8 7 biimpi ( ∅ ∉ ran 𝑓 → ¬ ∅ ∈ ran 𝑓 )
9 8 ad2antlr ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ 𝑥 ∈ dom 𝑓 ) → ¬ ∅ ∈ ran 𝑓 )
10 fvelrn ( ( Fun 𝑓𝑥 ∈ dom 𝑓 ) → ( 𝑓𝑥 ) ∈ ran 𝑓 )
11 10 adantlr ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ 𝑥 ∈ dom 𝑓 ) → ( 𝑓𝑥 ) ∈ ran 𝑓 )
12 eleq1 ( ( 𝑓𝑥 ) = ∅ → ( ( 𝑓𝑥 ) ∈ ran 𝑓 ↔ ∅ ∈ ran 𝑓 ) )
13 11 12 syl5ibcom ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ 𝑥 ∈ dom 𝑓 ) → ( ( 𝑓𝑥 ) = ∅ → ∅ ∈ ran 𝑓 ) )
14 13 necon3bd ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ 𝑥 ∈ dom 𝑓 ) → ( ¬ ∅ ∈ ran 𝑓 → ( 𝑓𝑥 ) ≠ ∅ ) )
15 9 14 mpd ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ 𝑥 ∈ dom 𝑓 ) → ( 𝑓𝑥 ) ≠ ∅ )
16 15 adantlr ( ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) ∧ 𝑥 ∈ dom 𝑓 ) → ( 𝑓𝑥 ) ≠ ∅ )
17 neeq1 ( 𝑡 = ( 𝑓𝑥 ) → ( 𝑡 ≠ ∅ ↔ ( 𝑓𝑥 ) ≠ ∅ ) )
18 fveq2 ( 𝑡 = ( 𝑓𝑥 ) → ( 𝑔𝑡 ) = ( 𝑔 ‘ ( 𝑓𝑥 ) ) )
19 id ( 𝑡 = ( 𝑓𝑥 ) → 𝑡 = ( 𝑓𝑥 ) )
20 18 19 eleq12d ( 𝑡 = ( 𝑓𝑥 ) → ( ( 𝑔𝑡 ) ∈ 𝑡 ↔ ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) ) )
21 17 20 imbi12d ( 𝑡 = ( 𝑓𝑥 ) → ( ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ↔ ( ( 𝑓𝑥 ) ≠ ∅ → ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) ) ) )
22 simplr ( ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) ∧ 𝑥 ∈ dom 𝑓 ) → ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
23 10 ad4ant14 ( ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) ∧ 𝑥 ∈ dom 𝑓 ) → ( 𝑓𝑥 ) ∈ ran 𝑓 )
24 21 22 23 rspcdva ( ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) ∧ 𝑥 ∈ dom 𝑓 ) → ( ( 𝑓𝑥 ) ≠ ∅ → ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) ) )
25 16 24 mpd ( ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) ∧ 𝑥 ∈ dom 𝑓 ) → ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) )
26 25 ralrimiva ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) → ∀ 𝑥 ∈ dom 𝑓 ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) )
27 2 dmex dom 𝑓 ∈ V
28 mptelixpg ( dom 𝑓 ∈ V → ( ( 𝑥 ∈ dom 𝑓 ↦ ( 𝑔 ‘ ( 𝑓𝑥 ) ) ) ∈ X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ↔ ∀ 𝑥 ∈ dom 𝑓 ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) ) )
29 27 28 ax-mp ( ( 𝑥 ∈ dom 𝑓 ↦ ( 𝑔 ‘ ( 𝑓𝑥 ) ) ) ∈ X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ↔ ∀ 𝑥 ∈ dom 𝑓 ( 𝑔 ‘ ( 𝑓𝑥 ) ) ∈ ( 𝑓𝑥 ) )
30 26 29 sylibr ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) → ( 𝑥 ∈ dom 𝑓 ↦ ( 𝑔 ‘ ( 𝑓𝑥 ) ) ) ∈ X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) )
31 30 ne0d ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ∧ ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ )
32 31 ex ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → ( ∀ 𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )
33 32 exlimdv ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → ( ∃ 𝑔𝑡 ∈ ran 𝑓 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )
34 6 33 syl5com ( ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) → ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )
35 34 alrimiv ( ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) → ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )
36 fnresi ( I ↾ ( 𝑠 ∖ { ∅ } ) ) Fn ( 𝑠 ∖ { ∅ } )
37 fnfun ( ( I ↾ ( 𝑠 ∖ { ∅ } ) ) Fn ( 𝑠 ∖ { ∅ } ) → Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) ) )
38 36 37 ax-mp Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) )
39 neldifsn ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } )
40 vex 𝑠 ∈ V
41 40 difexi ( 𝑠 ∖ { ∅ } ) ∈ V
42 resiexg ( ( 𝑠 ∖ { ∅ } ) ∈ V → ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∈ V )
43 41 42 ax-mp ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∈ V
44 funeq ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( Fun 𝑓 ↔ Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ) )
45 rneq ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ran 𝑓 = ran ( I ↾ ( 𝑠 ∖ { ∅ } ) ) )
46 rnresi ran ( I ↾ ( 𝑠 ∖ { ∅ } ) ) = ( 𝑠 ∖ { ∅ } )
47 45 46 eqtrdi ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ran 𝑓 = ( 𝑠 ∖ { ∅ } ) )
48 47 eleq2d ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( ∅ ∈ ran 𝑓 ↔ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) )
49 48 notbid ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( ¬ ∅ ∈ ran 𝑓 ↔ ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) )
50 7 49 bitrid ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( ∅ ∉ ran 𝑓 ↔ ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) )
51 44 50 anbi12d ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) ↔ ( Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∧ ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) ) )
52 dmeq ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → dom 𝑓 = dom ( I ↾ ( 𝑠 ∖ { ∅ } ) ) )
53 dmresi dom ( I ↾ ( 𝑠 ∖ { ∅ } ) ) = ( 𝑠 ∖ { ∅ } )
54 52 53 eqtrdi ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → dom 𝑓 = ( 𝑠 ∖ { ∅ } ) )
55 54 ixpeq1d ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) = X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑓𝑥 ) )
56 fveq1 ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( 𝑓𝑥 ) = ( ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ‘ 𝑥 ) )
57 fvresi ( 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) → ( ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ‘ 𝑥 ) = 𝑥 )
58 56 57 sylan9eq ( ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∧ 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ) → ( 𝑓𝑥 ) = 𝑥 )
59 58 ixpeq2dva ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑓𝑥 ) = X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 )
60 55 59 eqtrd ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) = X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 )
61 60 neeq1d ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ↔ X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ ) )
62 51 61 imbi12d ( 𝑓 = ( I ↾ ( 𝑠 ∖ { ∅ } ) ) → ( ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) ↔ ( ( Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∧ ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) → X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ ) ) )
63 43 62 spcv ( ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) → ( ( Fun ( I ↾ ( 𝑠 ∖ { ∅ } ) ) ∧ ¬ ∅ ∈ ( 𝑠 ∖ { ∅ } ) ) → X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ ) )
64 38 39 63 mp2ani ( ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) → X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ )
65 n0 ( X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ ↔ ∃ 𝑔 𝑔X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 )
66 vex 𝑔 ∈ V
67 66 elixp ( 𝑔X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ↔ ( 𝑔 Fn ( 𝑠 ∖ { ∅ } ) ∧ ∀ 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑔𝑥 ) ∈ 𝑥 ) )
68 eldifsn ( 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ↔ ( 𝑥𝑠𝑥 ≠ ∅ ) )
69 68 imbi1i ( ( 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) → ( 𝑔𝑥 ) ∈ 𝑥 ) ↔ ( ( 𝑥𝑠𝑥 ≠ ∅ ) → ( 𝑔𝑥 ) ∈ 𝑥 ) )
70 impexp ( ( ( 𝑥𝑠𝑥 ≠ ∅ ) → ( 𝑔𝑥 ) ∈ 𝑥 ) ↔ ( 𝑥𝑠 → ( 𝑥 ≠ ∅ → ( 𝑔𝑥 ) ∈ 𝑥 ) ) )
71 69 70 bitri ( ( 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) → ( 𝑔𝑥 ) ∈ 𝑥 ) ↔ ( 𝑥𝑠 → ( 𝑥 ≠ ∅ → ( 𝑔𝑥 ) ∈ 𝑥 ) ) )
72 71 ralbii2 ( ∀ 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑔𝑥 ) ∈ 𝑥 ↔ ∀ 𝑥𝑠 ( 𝑥 ≠ ∅ → ( 𝑔𝑥 ) ∈ 𝑥 ) )
73 neeq1 ( 𝑥 = 𝑡 → ( 𝑥 ≠ ∅ ↔ 𝑡 ≠ ∅ ) )
74 fveq2 ( 𝑥 = 𝑡 → ( 𝑔𝑥 ) = ( 𝑔𝑡 ) )
75 id ( 𝑥 = 𝑡𝑥 = 𝑡 )
76 74 75 eleq12d ( 𝑥 = 𝑡 → ( ( 𝑔𝑥 ) ∈ 𝑥 ↔ ( 𝑔𝑡 ) ∈ 𝑡 ) )
77 73 76 imbi12d ( 𝑥 = 𝑡 → ( ( 𝑥 ≠ ∅ → ( 𝑔𝑥 ) ∈ 𝑥 ) ↔ ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ) )
78 77 cbvralvw ( ∀ 𝑥𝑠 ( 𝑥 ≠ ∅ → ( 𝑔𝑥 ) ∈ 𝑥 ) ↔ ∀ 𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
79 72 78 bitri ( ∀ 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑔𝑥 ) ∈ 𝑥 ↔ ∀ 𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
80 79 biimpi ( ∀ 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) ( 𝑔𝑥 ) ∈ 𝑥 → ∀ 𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
81 67 80 simplbiim ( 𝑔X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 → ∀ 𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
82 81 eximi ( ∃ 𝑔 𝑔X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 → ∃ 𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
83 65 82 sylbi ( X 𝑥 ∈ ( 𝑠 ∖ { ∅ } ) 𝑥 ≠ ∅ → ∃ 𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
84 64 83 syl ( ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) → ∃ 𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
85 84 alrimiv ( ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) → ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) )
86 35 85 impbii ( ∀ 𝑠𝑔𝑡𝑠 ( 𝑡 ≠ ∅ → ( 𝑔𝑡 ) ∈ 𝑡 ) ↔ ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )
87 1 86 bitri ( CHOICE ↔ ∀ 𝑓 ( ( Fun 𝑓 ∧ ∅ ∉ ran 𝑓 ) → X 𝑥 ∈ dom 𝑓 ( 𝑓𝑥 ) ≠ ∅ ) )