Metamath Proof Explorer


Theorem dnnumch3

Description: Define an injection from a set into the ordinals using a choice function. (Contributed by Stefan O'Rear, 18-Jan-2015)

Ref Expression
Hypotheses dnnumch.f 𝐹 = recs ( ( 𝑧 ∈ V ↦ ( 𝐺 ‘ ( 𝐴 ∖ ran 𝑧 ) ) ) )
dnnumch.a ( 𝜑𝐴𝑉 )
dnnumch.g ( 𝜑 → ∀ 𝑦 ∈ 𝒫 𝐴 ( 𝑦 ≠ ∅ → ( 𝐺𝑦 ) ∈ 𝑦 ) )
Assertion dnnumch3 ( 𝜑 → ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) : 𝐴1-1→ On )

Proof

Step Hyp Ref Expression
1 dnnumch.f 𝐹 = recs ( ( 𝑧 ∈ V ↦ ( 𝐺 ‘ ( 𝐴 ∖ ran 𝑧 ) ) ) )
2 dnnumch.a ( 𝜑𝐴𝑉 )
3 dnnumch.g ( 𝜑 → ∀ 𝑦 ∈ 𝒫 𝐴 ( 𝑦 ≠ ∅ → ( 𝐺𝑦 ) ∈ 𝑦 ) )
4 cnvimass ( 𝐹 “ { 𝑥 } ) ⊆ dom 𝐹
5 1 tfr1 𝐹 Fn On
6 5 fndmi dom 𝐹 = On
7 4 6 sseqtri ( 𝐹 “ { 𝑥 } ) ⊆ On
8 1 2 3 dnnumch2 ( 𝜑𝐴 ⊆ ran 𝐹 )
9 8 sselda ( ( 𝜑𝑥𝐴 ) → 𝑥 ∈ ran 𝐹 )
10 inisegn0 ( 𝑥 ∈ ran 𝐹 ↔ ( 𝐹 “ { 𝑥 } ) ≠ ∅ )
11 9 10 sylib ( ( 𝜑𝑥𝐴 ) → ( 𝐹 “ { 𝑥 } ) ≠ ∅ )
12 oninton ( ( ( 𝐹 “ { 𝑥 } ) ⊆ On ∧ ( 𝐹 “ { 𝑥 } ) ≠ ∅ ) → ( 𝐹 “ { 𝑥 } ) ∈ On )
13 7 11 12 sylancr ( ( 𝜑𝑥𝐴 ) → ( 𝐹 “ { 𝑥 } ) ∈ On )
14 13 fmpttd ( 𝜑 → ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) : 𝐴 ⟶ On )
15 1 2 3 dnnumch3lem ( ( 𝜑𝑣𝐴 ) → ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( 𝐹 “ { 𝑣 } ) )
16 15 adantrr ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( 𝐹 “ { 𝑣 } ) )
17 1 2 3 dnnumch3lem ( ( 𝜑𝑤𝐴 ) → ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) = ( 𝐹 “ { 𝑤 } ) )
18 17 adantrl ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) = ( 𝐹 “ { 𝑤 } ) )
19 16 18 eqeq12d ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) ↔ ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) ) )
20 fveq2 ( ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) )
21 20 adantl ( ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) ∧ ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) )
22 cnvimass ( 𝐹 “ { 𝑣 } ) ⊆ dom 𝐹
23 22 6 sseqtri ( 𝐹 “ { 𝑣 } ) ⊆ On
24 8 sselda ( ( 𝜑𝑣𝐴 ) → 𝑣 ∈ ran 𝐹 )
25 inisegn0 ( 𝑣 ∈ ran 𝐹 ↔ ( 𝐹 “ { 𝑣 } ) ≠ ∅ )
26 24 25 sylib ( ( 𝜑𝑣𝐴 ) → ( 𝐹 “ { 𝑣 } ) ≠ ∅ )
27 onint ( ( ( 𝐹 “ { 𝑣 } ) ⊆ On ∧ ( 𝐹 “ { 𝑣 } ) ≠ ∅ ) → ( 𝐹 “ { 𝑣 } ) ∈ ( 𝐹 “ { 𝑣 } ) )
28 23 26 27 sylancr ( ( 𝜑𝑣𝐴 ) → ( 𝐹 “ { 𝑣 } ) ∈ ( 𝐹 “ { 𝑣 } ) )
29 fniniseg ( 𝐹 Fn On → ( ( 𝐹 “ { 𝑣 } ) ∈ ( 𝐹 “ { 𝑣 } ) ↔ ( ( 𝐹 “ { 𝑣 } ) ∈ On ∧ ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 ) ) )
30 5 29 ax-mp ( ( 𝐹 “ { 𝑣 } ) ∈ ( 𝐹 “ { 𝑣 } ) ↔ ( ( 𝐹 “ { 𝑣 } ) ∈ On ∧ ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 ) )
31 30 simprbi ( ( 𝐹 “ { 𝑣 } ) ∈ ( 𝐹 “ { 𝑣 } ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 )
32 28 31 syl ( ( 𝜑𝑣𝐴 ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 )
33 32 adantrr ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 )
34 33 adantr ( ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) ∧ ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) ) → ( 𝐹 ( 𝐹 “ { 𝑣 } ) ) = 𝑣 )
35 cnvimass ( 𝐹 “ { 𝑤 } ) ⊆ dom 𝐹
36 35 6 sseqtri ( 𝐹 “ { 𝑤 } ) ⊆ On
37 8 sselda ( ( 𝜑𝑤𝐴 ) → 𝑤 ∈ ran 𝐹 )
38 inisegn0 ( 𝑤 ∈ ran 𝐹 ↔ ( 𝐹 “ { 𝑤 } ) ≠ ∅ )
39 37 38 sylib ( ( 𝜑𝑤𝐴 ) → ( 𝐹 “ { 𝑤 } ) ≠ ∅ )
40 onint ( ( ( 𝐹 “ { 𝑤 } ) ⊆ On ∧ ( 𝐹 “ { 𝑤 } ) ≠ ∅ ) → ( 𝐹 “ { 𝑤 } ) ∈ ( 𝐹 “ { 𝑤 } ) )
41 36 39 40 sylancr ( ( 𝜑𝑤𝐴 ) → ( 𝐹 “ { 𝑤 } ) ∈ ( 𝐹 “ { 𝑤 } ) )
42 fniniseg ( 𝐹 Fn On → ( ( 𝐹 “ { 𝑤 } ) ∈ ( 𝐹 “ { 𝑤 } ) ↔ ( ( 𝐹 “ { 𝑤 } ) ∈ On ∧ ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 ) ) )
43 5 42 ax-mp ( ( 𝐹 “ { 𝑤 } ) ∈ ( 𝐹 “ { 𝑤 } ) ↔ ( ( 𝐹 “ { 𝑤 } ) ∈ On ∧ ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 ) )
44 43 simprbi ( ( 𝐹 “ { 𝑤 } ) ∈ ( 𝐹 “ { 𝑤 } ) → ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 )
45 41 44 syl ( ( 𝜑𝑤𝐴 ) → ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 )
46 45 adantrl ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 )
47 46 adantr ( ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) ∧ ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) ) → ( 𝐹 ( 𝐹 “ { 𝑤 } ) ) = 𝑤 )
48 21 34 47 3eqtr3d ( ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) ∧ ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) ) → 𝑣 = 𝑤 )
49 48 ex ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( ( 𝐹 “ { 𝑣 } ) = ( 𝐹 “ { 𝑤 } ) → 𝑣 = 𝑤 ) )
50 19 49 sylbid ( ( 𝜑 ∧ ( 𝑣𝐴𝑤𝐴 ) ) → ( ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) → 𝑣 = 𝑤 ) )
51 50 ralrimivva ( 𝜑 → ∀ 𝑣𝐴𝑤𝐴 ( ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) → 𝑣 = 𝑤 ) )
52 dff13 ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) : 𝐴1-1→ On ↔ ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) : 𝐴 ⟶ On ∧ ∀ 𝑣𝐴𝑤𝐴 ( ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑣 ) = ( ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) ‘ 𝑤 ) → 𝑣 = 𝑤 ) ) )
53 14 51 52 sylanbrc ( 𝜑 → ( 𝑥𝐴 ( 𝐹 “ { 𝑥 } ) ) : 𝐴1-1→ On )