Metamath Proof Explorer


Theorem wdom2d

Description: Deduce weak dominance from an implicit onto function (stated in a way which avoids ax-rep ). (Contributed by Stefan O'Rear, 13-Feb-2015)

Ref Expression
Hypotheses wdom2d.a ( 𝜑𝐴𝑉 )
wdom2d.b ( 𝜑𝐵𝑊 )
wdom2d.o ( ( 𝜑𝑥𝐴 ) → ∃ 𝑦𝐵 𝑥 = 𝑋 )
Assertion wdom2d ( 𝜑𝐴* 𝐵 )

Proof

Step Hyp Ref Expression
1 wdom2d.a ( 𝜑𝐴𝑉 )
2 wdom2d.b ( 𝜑𝐵𝑊 )
3 wdom2d.o ( ( 𝜑𝑥𝐴 ) → ∃ 𝑦𝐵 𝑥 = 𝑋 )
4 rabexg ( 𝐵𝑊 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ∈ V )
5 2 4 syl ( 𝜑 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ∈ V )
6 5 1 xpexd ( 𝜑 → ( { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } × 𝐴 ) ∈ V )
7 csbeq1 ( 𝑧 = 𝑤 𝑧 / 𝑦 𝑋 = 𝑤 / 𝑦 𝑋 )
8 7 eleq1d ( 𝑧 = 𝑤 → ( 𝑧 / 𝑦 𝑋𝐴 𝑤 / 𝑦 𝑋𝐴 ) )
9 8 elrab ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↔ ( 𝑤𝐵 𝑤 / 𝑦 𝑋𝐴 ) )
10 9 simprbi ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } → 𝑤 / 𝑦 𝑋𝐴 )
11 10 adantl ( ( 𝜑𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ) → 𝑤 / 𝑦 𝑋𝐴 )
12 11 fmpttd ( 𝜑 → ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ⟶ 𝐴 )
13 fssxp ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ⟶ 𝐴 → ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ⊆ ( { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } × 𝐴 ) )
14 12 13 syl ( 𝜑 → ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ⊆ ( { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } × 𝐴 ) )
15 6 14 ssexd ( 𝜑 → ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ∈ V )
16 eleq1 ( 𝑥 = 𝑋 → ( 𝑥𝐴𝑋𝐴 ) )
17 16 biimpcd ( 𝑥𝐴 → ( 𝑥 = 𝑋𝑋𝐴 ) )
18 17 ancrd ( 𝑥𝐴 → ( 𝑥 = 𝑋 → ( 𝑋𝐴𝑥 = 𝑋 ) ) )
19 18 adantl ( ( 𝜑𝑥𝐴 ) → ( 𝑥 = 𝑋 → ( 𝑋𝐴𝑥 = 𝑋 ) ) )
20 19 reximdv ( ( 𝜑𝑥𝐴 ) → ( ∃ 𝑦𝐵 𝑥 = 𝑋 → ∃ 𝑦𝐵 ( 𝑋𝐴𝑥 = 𝑋 ) ) )
21 3 20 mpd ( ( 𝜑𝑥𝐴 ) → ∃ 𝑦𝐵 ( 𝑋𝐴𝑥 = 𝑋 ) )
22 nfv 𝑣 ( 𝑋𝐴𝑥 = 𝑋 )
23 nfcsb1v 𝑦 𝑣 / 𝑦 𝑋
24 23 nfel1 𝑦 𝑣 / 𝑦 𝑋𝐴
25 23 nfeq2 𝑦 𝑥 = 𝑣 / 𝑦 𝑋
26 24 25 nfan 𝑦 ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 )
27 csbeq1a ( 𝑦 = 𝑣𝑋 = 𝑣 / 𝑦 𝑋 )
28 27 eleq1d ( 𝑦 = 𝑣 → ( 𝑋𝐴 𝑣 / 𝑦 𝑋𝐴 ) )
29 27 eqeq2d ( 𝑦 = 𝑣 → ( 𝑥 = 𝑋𝑥 = 𝑣 / 𝑦 𝑋 ) )
30 28 29 anbi12d ( 𝑦 = 𝑣 → ( ( 𝑋𝐴𝑥 = 𝑋 ) ↔ ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 ) ) )
31 22 26 30 cbvrexw ( ∃ 𝑦𝐵 ( 𝑋𝐴𝑥 = 𝑋 ) ↔ ∃ 𝑣𝐵 ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 ) )
32 21 31 sylib ( ( 𝜑𝑥𝐴 ) → ∃ 𝑣𝐵 ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 ) )
33 csbeq1 ( 𝑧 = 𝑣 𝑧 / 𝑦 𝑋 = 𝑣 / 𝑦 𝑋 )
34 33 eleq1d ( 𝑧 = 𝑣 → ( 𝑧 / 𝑦 𝑋𝐴 𝑣 / 𝑦 𝑋𝐴 ) )
35 34 elrab ( 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↔ ( 𝑣𝐵 𝑣 / 𝑦 𝑋𝐴 ) )
36 35 simprbi ( 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } → 𝑣 / 𝑦 𝑋𝐴 )
37 csbeq1 ( 𝑤 = 𝑣 𝑤 / 𝑦 𝑋 = 𝑣 / 𝑦 𝑋 )
38 eqid ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) = ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 )
39 37 38 fvmptg ( ( 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ∧ 𝑣 / 𝑦 𝑋𝐴 ) → ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) = 𝑣 / 𝑦 𝑋 )
40 36 39 mpdan ( 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } → ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) = 𝑣 / 𝑦 𝑋 )
41 40 eqeq2d ( 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } → ( 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) ↔ 𝑥 = 𝑣 / 𝑦 𝑋 ) )
42 41 rexbiia ( ∃ 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) ↔ ∃ 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = 𝑣 / 𝑦 𝑋 )
43 34 rexrab ( ∃ 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = 𝑣 / 𝑦 𝑋 ↔ ∃ 𝑣𝐵 ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 ) )
44 42 43 bitri ( ∃ 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) ↔ ∃ 𝑣𝐵 ( 𝑣 / 𝑦 𝑋𝐴𝑥 = 𝑣 / 𝑦 𝑋 ) )
45 32 44 sylibr ( ( 𝜑𝑥𝐴 ) → ∃ 𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) )
46 45 ralrimiva ( 𝜑 → ∀ 𝑥𝐴𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) )
47 dffo3 ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } –onto𝐴 ↔ ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ⟶ 𝐴 ∧ ∀ 𝑥𝐴𝑣 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } 𝑥 = ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ‘ 𝑣 ) ) )
48 12 46 47 sylanbrc ( 𝜑 → ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } –onto𝐴 )
49 fowdom ( ( ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) ∈ V ∧ ( 𝑤 ∈ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ↦ 𝑤 / 𝑦 𝑋 ) : { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } –onto𝐴 ) → 𝐴* { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } )
50 15 48 49 syl2anc ( 𝜑𝐴* { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } )
51 ssrab2 { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ⊆ 𝐵
52 ssdomg ( 𝐵𝑊 → ( { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ⊆ 𝐵 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼ 𝐵 ) )
53 51 52 mpi ( 𝐵𝑊 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼ 𝐵 )
54 domwdom ( { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼ 𝐵 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼* 𝐵 )
55 2 53 54 3syl ( 𝜑 → { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼* 𝐵 )
56 wdomtr ( ( 𝐴* { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ∧ { 𝑧𝐵 𝑧 / 𝑦 𝑋𝐴 } ≼* 𝐵 ) → 𝐴* 𝐵 )
57 50 55 56 syl2anc ( 𝜑𝐴* 𝐵 )