Metamath Proof Explorer


Theorem wdomtr

Description: Transitivity of weak dominance. (Contributed by Stefan O'Rear, 11-Feb-2015) (Revised by Mario Carneiro, 5-May-2015)

Ref Expression
Assertion wdomtr ( ( 𝑋* 𝑌𝑌* 𝑍 ) → 𝑋* 𝑍 )

Proof

Step Hyp Ref Expression
1 relwdom Rel ≼*
2 1 brrelex2i ( 𝑌* 𝑍𝑍 ∈ V )
3 2 adantl ( ( 𝑋* 𝑌𝑌* 𝑍 ) → 𝑍 ∈ V )
4 0wdom ( 𝑍 ∈ V → ∅ ≼* 𝑍 )
5 breq1 ( 𝑋 = ∅ → ( 𝑋* 𝑍 ↔ ∅ ≼* 𝑍 ) )
6 4 5 syl5ibrcom ( 𝑍 ∈ V → ( 𝑋 = ∅ → 𝑋* 𝑍 ) )
7 3 6 syl ( ( 𝑋* 𝑌𝑌* 𝑍 ) → ( 𝑋 = ∅ → 𝑋* 𝑍 ) )
8 simpll ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) → 𝑋* 𝑌 )
9 brwdomn0 ( 𝑋 ≠ ∅ → ( 𝑋* 𝑌 ↔ ∃ 𝑧 𝑧 : 𝑌onto𝑋 ) )
10 9 adantl ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) → ( 𝑋* 𝑌 ↔ ∃ 𝑧 𝑧 : 𝑌onto𝑋 ) )
11 8 10 mpbid ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) → ∃ 𝑧 𝑧 : 𝑌onto𝑋 )
12 simpllr ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → 𝑌* 𝑍 )
13 simplr ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → 𝑋 ≠ ∅ )
14 dm0rn0 ( dom 𝑧 = ∅ ↔ ran 𝑧 = ∅ )
15 14 necon3bii ( dom 𝑧 ≠ ∅ ↔ ran 𝑧 ≠ ∅ )
16 15 a1i ( 𝑧 : 𝑌onto𝑋 → ( dom 𝑧 ≠ ∅ ↔ ran 𝑧 ≠ ∅ ) )
17 fof ( 𝑧 : 𝑌onto𝑋𝑧 : 𝑌𝑋 )
18 17 fdmd ( 𝑧 : 𝑌onto𝑋 → dom 𝑧 = 𝑌 )
19 18 neeq1d ( 𝑧 : 𝑌onto𝑋 → ( dom 𝑧 ≠ ∅ ↔ 𝑌 ≠ ∅ ) )
20 forn ( 𝑧 : 𝑌onto𝑋 → ran 𝑧 = 𝑋 )
21 20 neeq1d ( 𝑧 : 𝑌onto𝑋 → ( ran 𝑧 ≠ ∅ ↔ 𝑋 ≠ ∅ ) )
22 16 19 21 3bitr3rd ( 𝑧 : 𝑌onto𝑋 → ( 𝑋 ≠ ∅ ↔ 𝑌 ≠ ∅ ) )
23 22 adantl ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → ( 𝑋 ≠ ∅ ↔ 𝑌 ≠ ∅ ) )
24 13 23 mpbid ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → 𝑌 ≠ ∅ )
25 brwdomn0 ( 𝑌 ≠ ∅ → ( 𝑌* 𝑍 ↔ ∃ 𝑦 𝑦 : 𝑍onto𝑌 ) )
26 24 25 syl ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → ( 𝑌* 𝑍 ↔ ∃ 𝑦 𝑦 : 𝑍onto𝑌 ) )
27 12 26 mpbid ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → ∃ 𝑦 𝑦 : 𝑍onto𝑌 )
28 vex 𝑧 ∈ V
29 vex 𝑦 ∈ V
30 28 29 coex ( 𝑧𝑦 ) ∈ V
31 foco ( ( 𝑧 : 𝑌onto𝑋𝑦 : 𝑍onto𝑌 ) → ( 𝑧𝑦 ) : 𝑍onto𝑋 )
32 fowdom ( ( ( 𝑧𝑦 ) ∈ V ∧ ( 𝑧𝑦 ) : 𝑍onto𝑋 ) → 𝑋* 𝑍 )
33 30 31 32 sylancr ( ( 𝑧 : 𝑌onto𝑋𝑦 : 𝑍onto𝑌 ) → 𝑋* 𝑍 )
34 33 adantl ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ ( 𝑧 : 𝑌onto𝑋𝑦 : 𝑍onto𝑌 ) ) → 𝑋* 𝑍 )
35 34 expr ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → ( 𝑦 : 𝑍onto𝑌𝑋* 𝑍 ) )
36 35 exlimdv ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → ( ∃ 𝑦 𝑦 : 𝑍onto𝑌𝑋* 𝑍 ) )
37 27 36 mpd ( ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) ∧ 𝑧 : 𝑌onto𝑋 ) → 𝑋* 𝑍 )
38 11 37 exlimddv ( ( ( 𝑋* 𝑌𝑌* 𝑍 ) ∧ 𝑋 ≠ ∅ ) → 𝑋* 𝑍 )
39 38 ex ( ( 𝑋* 𝑌𝑌* 𝑍 ) → ( 𝑋 ≠ ∅ → 𝑋* 𝑍 ) )
40 7 39 pm2.61dne ( ( 𝑋* 𝑌𝑌* 𝑍 ) → 𝑋* 𝑍 )