Metamath Proof Explorer


Theorem modelac8prim

Description: If M is a transitive class, then the following are equivalent. (1) Every nonempty set x e. M of pairwise disjoint nonempty sets has a choice set in M . (2) The class M models the Axiom of Choice, in the form ac8prim .

Lemma II.2.11(7) of Kunen2 p. 114. Kunen has the additional hypotheses that the Extensionality, Separation, Pairing, and Union axioms are true in M . This, apparently, is because Kunen's statement of the Axiom of Choice uses defined notions, including (/) and i^i , and these axioms guarantee that these notions are well-defined. When we state the axiom using primitives only, the need for these hypotheses disappears. (Contributed by Eric Schmidt, 19-Oct-2025)

Ref Expression
Assertion modelac8prim ( Tr 𝑀 → ( ∀ 𝑥 ∈ 𝑀 ( ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ∧ ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ) ↔ ∀ 𝑥 ∈ 𝑀 ( ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ∧ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 ralabso ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → 𝑧 ≠ ∅ ) ) )
2 n0abso ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( 𝑧 ≠ ∅ ↔ ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) )
3 2 adantlr ⊢ ( ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) ∧ 𝑧 ∈ 𝑀 ) → ( 𝑧 ≠ ∅ ↔ ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) )
4 3 imbi2d ⊢ ( ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) ∧ 𝑧 ∈ 𝑀 ) → ( ( 𝑧 ∈ 𝑥 → 𝑧 ≠ ∅ ) ↔ ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ) )
5 4 ralbidva ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → 𝑧 ≠ ∅ ) ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ) )
6 1 5 bitrd ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ) )
7 simpl ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → Tr 𝑀 )
8 ralabso ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) )
9 7 8 ralabsobidv ⊢ ( ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ) )
10 9 anabss3 ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ) )
11 r19.21v ⊢ ( ∀ 𝑤 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) )
12 impexp ⊢ ( ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ↔ ( 𝑧 ∈ 𝑥 → ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) )
13 df-ne ⊢ ( 𝑧 ≠ 𝑤 ↔ ¬ 𝑧 = 𝑤 )
14 13 imbi1i ⊢ ( ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ( ¬ 𝑧 = 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) )
15 disjabso ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( 𝑧 ∩ 𝑤 ) = ∅ ↔ ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) )
16 15 imbi2d ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( ¬ 𝑧 = 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) )
17 14 16 bitrid ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) )
18 17 imbi2d ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ↔ ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
19 12 18 bitr3id ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( 𝑧 ∈ 𝑥 → ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
20 19 ralbidv ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ∀ 𝑤 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
21 11 20 bitr3id ⊢ ( ( Tr 𝑀 ∧ 𝑧 ∈ 𝑀 ) → ( ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
22 21 ralbidva ⊢ ( Tr 𝑀 → ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
23 22 adantr ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∀ 𝑤 ∈ 𝑀 ( 𝑤 ∈ 𝑥 → ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ) ↔ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
24 10 23 bitrd ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ↔ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) )
25 6 24 anbi12d ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ∧ ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) ↔ ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ∧ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) ) )
26 simpl ⊢ ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) → Tr 𝑀 )
27 elin ⊢ ( 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) )
28 27 eubii ⊢ ( ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∃! 𝑣 ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) )
29 trel ⊢ ( Tr 𝑀 → ( ( 𝑣 ∈ 𝑦 ∧ 𝑦 ∈ 𝑀 ) → 𝑣 ∈ 𝑀 ) )
30 29 imp ⊢ ( ( Tr 𝑀 ∧ ( 𝑣 ∈ 𝑦 ∧ 𝑦 ∈ 𝑀 ) ) → 𝑣 ∈ 𝑀 )
31 30 anass1rs ⊢ ( ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) ∧ 𝑣 ∈ 𝑦 ) → 𝑣 ∈ 𝑀 )
32 31 adantrl ⊢ ( ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) ∧ ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ) → 𝑣 ∈ 𝑀 )
33 32 reueubd ⊢ ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) → ( ∃! 𝑣 ∈ 𝑀 ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ ∃! 𝑣 ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ) )
34 28 33 bitr4id ⊢ ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) → ( ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∃! 𝑣 ∈ 𝑀 ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ) )
35 reu6 ⊢ ( ∃! 𝑣 ∈ 𝑀 ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) )
36 34 35 bitrdi ⊢ ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) → ( ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) )
37 26 36 ralabsobidv ⊢ ( ( ( Tr 𝑀 ∧ 𝑦 ∈ 𝑀 ) ∧ 𝑥 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) )
38 37 an32s ⊢ ( ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) ∧ 𝑦 ∈ 𝑀 ) → ( ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) )
39 38 rexbidva ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ↔ ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) )
40 25 39 imbi12d ⊢ ( ( Tr 𝑀 ∧ 𝑥 ∈ 𝑀 ) → ( ( ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ∧ ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ) ↔ ( ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ∧ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) ) )
41 40 ralbidva ⊢ ( Tr 𝑀 → ( ∀ 𝑥 ∈ 𝑀 ( ( ∀ 𝑧 ∈ 𝑥 𝑧 ≠ ∅ ∧ ∀ 𝑧 ∈ 𝑥 ∀ 𝑤 ∈ 𝑥 ( 𝑧 ≠ 𝑤 → ( 𝑧 ∩ 𝑤 ) = ∅ ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑥 ∃! 𝑣 𝑣 ∈ ( 𝑧 ∩ 𝑦 ) ) ↔ ∀ 𝑥 ∈ 𝑀 ( ( ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 𝑤 ∈ 𝑧 ) ∧ ∀ 𝑧 ∈ 𝑀 ∀ 𝑤 ∈ 𝑀 ( ( 𝑧 ∈ 𝑥 ∧ 𝑤 ∈ 𝑥 ) → ( ¬ 𝑧 = 𝑤 → ∀ 𝑦 ∈ 𝑀 ( 𝑦 ∈ 𝑧 → ¬ 𝑦 ∈ 𝑤 ) ) ) ) → ∃ 𝑦 ∈ 𝑀 ∀ 𝑧 ∈ 𝑀 ( 𝑧 ∈ 𝑥 → ∃ 𝑤 ∈ 𝑀 ∀ 𝑣 ∈ 𝑀 ( ( 𝑣 ∈ 𝑧 ∧ 𝑣 ∈ 𝑦 ) ↔ 𝑣 = 𝑤 ) ) ) ) )