Metamath Proof Explorer


Theorem unwdomg

Description: Weak dominance of a (disjoint) union. (Contributed by Stefan O'Rear, 13-Feb-2015) (Revised by Mario Carneiro, 25-Jun-2015)

Ref Expression
Assertion unwdomg ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) )

Proof

Step Hyp Ref Expression
1 brwdom3i ( 𝐴* 𝐵 → ∃ 𝑓𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) )
2 1 3ad2ant1 ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ∃ 𝑓𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) )
3 brwdom3i ( 𝐶* 𝐷 → ∃ 𝑔𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) )
4 3 3ad2ant2 ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ∃ 𝑔𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) )
5 4 adantr ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ∃ 𝑔𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) )
6 relwdom Rel ≼*
7 6 brrelex1i ( 𝐴* 𝐵𝐴 ∈ V )
8 6 brrelex1i ( 𝐶* 𝐷𝐶 ∈ V )
9 unexg ( ( 𝐴 ∈ V ∧ 𝐶 ∈ V ) → ( 𝐴𝐶 ) ∈ V )
10 7 8 9 syl2an ( ( 𝐴* 𝐵𝐶* 𝐷 ) → ( 𝐴𝐶 ) ∈ V )
11 10 3adant3 ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ( 𝐴𝐶 ) ∈ V )
12 11 adantr ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) → ( 𝐴𝐶 ) ∈ V )
13 6 brrelex2i ( 𝐴* 𝐵𝐵 ∈ V )
14 6 brrelex2i ( 𝐶* 𝐷𝐷 ∈ V )
15 unexg ( ( 𝐵 ∈ V ∧ 𝐷 ∈ V ) → ( 𝐵𝐷 ) ∈ V )
16 13 14 15 syl2an ( ( 𝐴* 𝐵𝐶* 𝐷 ) → ( 𝐵𝐷 ) ∈ V )
17 16 3adant3 ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ( 𝐵𝐷 ) ∈ V )
18 17 adantr ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) → ( 𝐵𝐷 ) ∈ V )
19 elun ( 𝑦 ∈ ( 𝐴𝐶 ) ↔ ( 𝑦𝐴𝑦𝐶 ) )
20 eqeq1 ( 𝑎 = 𝑦 → ( 𝑎 = ( 𝑓𝑏 ) ↔ 𝑦 = ( 𝑓𝑏 ) ) )
21 20 rexbidv ( 𝑎 = 𝑦 → ( ∃ 𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ↔ ∃ 𝑏𝐵 𝑦 = ( 𝑓𝑏 ) ) )
22 21 rspcva ( ( 𝑦𝐴 ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ∃ 𝑏𝐵 𝑦 = ( 𝑓𝑏 ) )
23 fveq2 ( 𝑏 = 𝑧 → ( 𝑓𝑏 ) = ( 𝑓𝑧 ) )
24 23 eqeq2d ( 𝑏 = 𝑧 → ( 𝑦 = ( 𝑓𝑏 ) ↔ 𝑦 = ( 𝑓𝑧 ) ) )
25 24 cbvrexvw ( ∃ 𝑏𝐵 𝑦 = ( 𝑓𝑏 ) ↔ ∃ 𝑧𝐵 𝑦 = ( 𝑓𝑧 ) )
26 ssun1 𝐵 ⊆ ( 𝐵𝐷 )
27 iftrue ( 𝑧𝐵 → if ( 𝑧𝐵 , 𝑓 , 𝑔 ) = 𝑓 )
28 27 fveq1d ( 𝑧𝐵 → ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) = ( 𝑓𝑧 ) )
29 28 eqeq2d ( 𝑧𝐵 → ( 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ↔ 𝑦 = ( 𝑓𝑧 ) ) )
30 29 biimprd ( 𝑧𝐵 → ( 𝑦 = ( 𝑓𝑧 ) → 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
31 30 reximia ( ∃ 𝑧𝐵 𝑦 = ( 𝑓𝑧 ) → ∃ 𝑧𝐵 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
32 ssrexv ( 𝐵 ⊆ ( 𝐵𝐷 ) → ( ∃ 𝑧𝐵 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
33 26 31 32 mpsyl ( ∃ 𝑧𝐵 𝑦 = ( 𝑓𝑧 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
34 25 33 sylbi ( ∃ 𝑏𝐵 𝑦 = ( 𝑓𝑏 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
35 22 34 syl ( ( 𝑦𝐴 ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
36 35 ancoms ( ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ 𝑦𝐴 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
37 36 adantlr ( ( ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ∧ 𝑦𝐴 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
38 37 adantll ( ( ( ( 𝐵𝐷 ) = ∅ ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) ∧ 𝑦𝐴 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
39 eqeq1 ( 𝑎 = 𝑦 → ( 𝑎 = ( 𝑔𝑏 ) ↔ 𝑦 = ( 𝑔𝑏 ) ) )
40 39 rexbidv ( 𝑎 = 𝑦 → ( ∃ 𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ↔ ∃ 𝑏𝐷 𝑦 = ( 𝑔𝑏 ) ) )
41 fveq2 ( 𝑏 = 𝑧 → ( 𝑔𝑏 ) = ( 𝑔𝑧 ) )
42 41 eqeq2d ( 𝑏 = 𝑧 → ( 𝑦 = ( 𝑔𝑏 ) ↔ 𝑦 = ( 𝑔𝑧 ) ) )
43 42 cbvrexvw ( ∃ 𝑏𝐷 𝑦 = ( 𝑔𝑏 ) ↔ ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) )
44 40 43 bitrdi ( 𝑎 = 𝑦 → ( ∃ 𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ↔ ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) ) )
45 44 rspccva ( ( ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ∧ 𝑦𝐶 ) → ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) )
46 ssun2 𝐷 ⊆ ( 𝐵𝐷 )
47 minel ( ( 𝑧𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ¬ 𝑧𝐵 )
48 47 ancoms ( ( ( 𝐵𝐷 ) = ∅ ∧ 𝑧𝐷 ) → ¬ 𝑧𝐵 )
49 48 iffalsed ( ( ( 𝐵𝐷 ) = ∅ ∧ 𝑧𝐷 ) → if ( 𝑧𝐵 , 𝑓 , 𝑔 ) = 𝑔 )
50 49 fveq1d ( ( ( 𝐵𝐷 ) = ∅ ∧ 𝑧𝐷 ) → ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) = ( 𝑔𝑧 ) )
51 50 eqeq2d ( ( ( 𝐵𝐷 ) = ∅ ∧ 𝑧𝐷 ) → ( 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ↔ 𝑦 = ( 𝑔𝑧 ) ) )
52 51 biimprd ( ( ( 𝐵𝐷 ) = ∅ ∧ 𝑧𝐷 ) → ( 𝑦 = ( 𝑔𝑧 ) → 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
53 52 reximdva ( ( 𝐵𝐷 ) = ∅ → ( ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) → ∃ 𝑧𝐷 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
54 53 imp ( ( ( 𝐵𝐷 ) = ∅ ∧ ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) ) → ∃ 𝑧𝐷 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
55 ssrexv ( 𝐷 ⊆ ( 𝐵𝐷 ) → ( ∃ 𝑧𝐷 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
56 46 54 55 mpsyl ( ( ( 𝐵𝐷 ) = ∅ ∧ ∃ 𝑧𝐷 𝑦 = ( 𝑔𝑧 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
57 45 56 sylan2 ( ( ( 𝐵𝐷 ) = ∅ ∧ ( ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ∧ 𝑦𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
58 57 anassrs ( ( ( ( 𝐵𝐷 ) = ∅ ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ∧ 𝑦𝐶 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
59 58 adantlrl ( ( ( ( 𝐵𝐷 ) = ∅ ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) ∧ 𝑦𝐶 ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
60 38 59 jaodan ( ( ( ( 𝐵𝐷 ) = ∅ ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) ∧ ( 𝑦𝐴𝑦𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
61 19 60 sylan2b ( ( ( ( 𝐵𝐷 ) = ∅ ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) ∧ 𝑦 ∈ ( 𝐴𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
62 61 expl ( ( 𝐵𝐷 ) = ∅ → ( ( ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ∧ 𝑦 ∈ ( 𝐴𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
63 62 3ad2ant3 ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ( ( ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ∧ 𝑦 ∈ ( 𝐴𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) ) )
64 63 impl ( ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) ∧ 𝑦 ∈ ( 𝐴𝐶 ) ) → ∃ 𝑧 ∈ ( 𝐵𝐷 ) 𝑦 = ( if ( 𝑧𝐵 , 𝑓 , 𝑔 ) ‘ 𝑧 ) )
65 12 18 64 wdom2d ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ( ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ∧ ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) ) ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) )
66 65 expr ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ( ∀ 𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) ) )
67 66 exlimdv ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ( ∃ 𝑔𝑎𝐶𝑏𝐷 𝑎 = ( 𝑔𝑏 ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) ) )
68 5 67 mpd ( ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) ∧ ∀ 𝑎𝐴𝑏𝐵 𝑎 = ( 𝑓𝑏 ) ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) )
69 2 68 exlimddv ( ( 𝐴* 𝐵𝐶* 𝐷 ∧ ( 𝐵𝐷 ) = ∅ ) → ( 𝐴𝐶 ) ≼* ( 𝐵𝐷 ) )