Metamath Proof Explorer


Theorem dfac4

Description: Equivalence of two versions of the Axiom of Choice. The right-hand side is Axiom AC of BellMachover p. 488. The proof does not depend on AC. (Contributed by NM, 24-Mar-2004) (Revised by Mario Carneiro, 26-Jun-2015)

Ref Expression
Assertion dfac4 ( CHOICE ↔ ∀ 𝑥𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )

Proof

Step Hyp Ref Expression
1 dfac3 ( CHOICE ↔ ∀ 𝑥𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) )
2 fveq1 ( 𝑓 = 𝑦 → ( 𝑓𝑧 ) = ( 𝑦𝑧 ) )
3 2 eleq1d ( 𝑓 = 𝑦 → ( ( 𝑓𝑧 ) ∈ 𝑧 ↔ ( 𝑦𝑧 ) ∈ 𝑧 ) )
4 3 imbi2d ( 𝑓 = 𝑦 → ( ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) ) )
5 4 ralbidv ( 𝑓 = 𝑦 → ( ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) ) )
6 5 cbvexvw ( ∃ 𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ∃ 𝑦𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) )
7 fvex ( 𝑦𝑤 ) ∈ V
8 eqid ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) )
9 7 8 fnmpti ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥
10 fveq2 ( 𝑤 = 𝑧 → ( 𝑦𝑤 ) = ( 𝑦𝑧 ) )
11 fvex ( 𝑦𝑧 ) ∈ V
12 10 8 11 fvmpt ( 𝑧𝑥 → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) = ( 𝑦𝑧 ) )
13 12 eleq1d ( 𝑧𝑥 → ( ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ↔ ( 𝑦𝑧 ) ∈ 𝑧 ) )
14 13 imbi2d ( 𝑧𝑥 → ( ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ↔ ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) ) )
15 14 ralbiia ( ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ↔ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) )
16 15 anbi2i ( ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) ↔ ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) ) )
17 9 16 mpbiran ( ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) ↔ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) )
18 fvrn0 ( 𝑦𝑤 ) ∈ ( ran 𝑦 ∪ { ∅ } )
19 18 rgenw 𝑤𝑥 ( 𝑦𝑤 ) ∈ ( ran 𝑦 ∪ { ∅ } )
20 8 fmpt ( ∀ 𝑤𝑥 ( 𝑦𝑤 ) ∈ ( ran 𝑦 ∪ { ∅ } ) ↔ ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) : 𝑥 ⟶ ( ran 𝑦 ∪ { ∅ } ) )
21 19 20 mpbi ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) : 𝑥 ⟶ ( ran 𝑦 ∪ { ∅ } )
22 vex 𝑥 ∈ V
23 vex 𝑦 ∈ V
24 23 rnex ran 𝑦 ∈ V
25 p0ex { ∅ } ∈ V
26 24 25 unex ( ran 𝑦 ∪ { ∅ } ) ∈ V
27 fex2 ( ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) : 𝑥 ⟶ ( ran 𝑦 ∪ { ∅ } ) ∧ 𝑥 ∈ V ∧ ( ran 𝑦 ∪ { ∅ } ) ∈ V ) → ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ∈ V )
28 21 22 26 27 mp3an ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ∈ V
29 fneq1 ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( 𝑓 Fn 𝑥 ↔ ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ) )
30 fveq1 ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( 𝑓𝑧 ) = ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) )
31 30 eleq1d ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( ( 𝑓𝑧 ) ∈ 𝑧 ↔ ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) )
32 31 imbi2d ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) )
33 32 ralbidv ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) )
34 29 33 anbi12d ( 𝑓 = ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) → ( ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) ↔ ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) ) )
35 28 34 spcev ( ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( ( 𝑤𝑥 ↦ ( 𝑦𝑤 ) ) ‘ 𝑧 ) ∈ 𝑧 ) ) → ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
36 17 35 sylbir ( ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) → ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
37 36 exlimiv ( ∃ 𝑦𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑦𝑧 ) ∈ 𝑧 ) → ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
38 6 37 sylbi ( ∃ 𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) → ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
39 exsimpr ( ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) → ∃ 𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) )
40 38 39 impbii ( ∃ 𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ∃ 𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
41 40 albii ( ∀ 𝑥𝑓𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ↔ ∀ 𝑥𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )
42 1 41 bitri ( CHOICE ↔ ∀ 𝑥𝑓 ( 𝑓 Fn 𝑥 ∧ ∀ 𝑧𝑥 ( 𝑧 ≠ ∅ → ( 𝑓𝑧 ) ∈ 𝑧 ) ) )