Metamath Proof Explorer


Theorem rabfodom

Description: Domination relation for restricted abstract class builders, based on a surjective function. (Contributed by Thierry Arnoux, 27-Jan-2020)

Ref Expression
Hypotheses rabfodom.1 ( ( 𝜑𝑥𝐴𝑦 = ( 𝐹𝑥 ) ) → ( 𝜒𝜓 ) )
rabfodom.2 ( 𝜑𝐴𝑉 )
rabfodom.3 ( 𝜑𝐹 : 𝐴onto𝐵 )
Assertion rabfodom ( 𝜑 → { 𝑦𝐵𝜒 } ≼ { 𝑥𝐴𝜓 } )

Proof

Step Hyp Ref Expression
1 rabfodom.1 ( ( 𝜑𝑥𝐴𝑦 = ( 𝐹𝑥 ) ) → ( 𝜒𝜓 ) )
2 rabfodom.2 ( 𝜑𝐴𝑉 )
3 rabfodom.3 ( 𝜑𝐹 : 𝐴onto𝐵 )
4 vex 𝑎 ∈ V
5 4 rabex { 𝑥𝑎𝜓 } ∈ V
6 eqid ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) = ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) )
7 fof ( 𝐹 : 𝐴onto𝐵𝐹 : 𝐴𝐵 )
8 3 7 syl ( 𝜑𝐹 : 𝐴𝐵 )
9 8 feqmptd ( 𝜑𝐹 = ( 𝑥𝐴 ↦ ( 𝐹𝑥 ) ) )
10 9 ad2antrr ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → 𝐹 = ( 𝑥𝐴 ↦ ( 𝐹𝑥 ) ) )
11 10 reseq1d ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( 𝐹𝑎 ) = ( ( 𝑥𝐴 ↦ ( 𝐹𝑥 ) ) ↾ 𝑎 ) )
12 elpwi ( 𝑎 ∈ 𝒫 𝐴𝑎𝐴 )
13 12 ad2antlr ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → 𝑎𝐴 )
14 13 resmptd ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( ( 𝑥𝐴 ↦ ( 𝐹𝑥 ) ) ↾ 𝑎 ) = ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) )
15 11 14 eqtrd ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( 𝐹𝑎 ) = ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) )
16 f1oeq1 ( ( 𝐹𝑎 ) = ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) → ( ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ↔ ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) : 𝑎1-1-onto𝐵 ) )
17 16 biimpa ( ( ( 𝐹𝑎 ) = ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) : 𝑎1-1-onto𝐵 )
18 15 17 sylancom ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) : 𝑎1-1-onto𝐵 )
19 simp1ll ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → 𝜑 )
20 13 3ad2ant1 ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → 𝑎𝐴 )
21 simp2 ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → 𝑥𝑎 )
22 20 21 sseldd ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → 𝑥𝐴 )
23 simp3 ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → 𝑦 = ( 𝐹𝑥 ) )
24 19 22 23 1 syl3anc ( ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) ∧ 𝑥𝑎𝑦 = ( 𝐹𝑥 ) ) → ( 𝜒𝜓 ) )
25 6 18 24 f1oresrab ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → ( ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) ↾ { 𝑥𝑎𝜓 } ) : { 𝑥𝑎𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )
26 f1oeng ( ( { 𝑥𝑎𝜓 } ∈ V ∧ ( ( 𝑥𝑎 ↦ ( 𝐹𝑥 ) ) ↾ { 𝑥𝑎𝜓 } ) : { 𝑥𝑎𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } ) → { 𝑥𝑎𝜓 } ≈ { 𝑦𝐵𝜒 } )
27 5 25 26 sylancr ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑥𝑎𝜓 } ≈ { 𝑦𝐵𝜒 } )
28 27 ensymd ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑦𝐵𝜒 } ≈ { 𝑥𝑎𝜓 } )
29 rabexg ( 𝐴𝑉 → { 𝑥𝐴𝜓 } ∈ V )
30 2 29 syl ( 𝜑 → { 𝑥𝐴𝜓 } ∈ V )
31 30 ad2antrr ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑥𝐴𝜓 } ∈ V )
32 rabss2 ( 𝑎𝐴 → { 𝑥𝑎𝜓 } ⊆ { 𝑥𝐴𝜓 } )
33 13 32 syl ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑥𝑎𝜓 } ⊆ { 𝑥𝐴𝜓 } )
34 ssdomg ( { 𝑥𝐴𝜓 } ∈ V → ( { 𝑥𝑎𝜓 } ⊆ { 𝑥𝐴𝜓 } → { 𝑥𝑎𝜓 } ≼ { 𝑥𝐴𝜓 } ) )
35 31 33 34 sylc ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑥𝑎𝜓 } ≼ { 𝑥𝐴𝜓 } )
36 endomtr ( ( { 𝑦𝐵𝜒 } ≈ { 𝑥𝑎𝜓 } ∧ { 𝑥𝑎𝜓 } ≼ { 𝑥𝐴𝜓 } ) → { 𝑦𝐵𝜒 } ≼ { 𝑥𝐴𝜓 } )
37 28 35 36 syl2anc ( ( ( 𝜑𝑎 ∈ 𝒫 𝐴 ) ∧ ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 ) → { 𝑦𝐵𝜒 } ≼ { 𝑥𝐴𝜓 } )
38 foresf1o ( ( 𝐴𝑉𝐹 : 𝐴onto𝐵 ) → ∃ 𝑎 ∈ 𝒫 𝐴 ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 )
39 2 3 38 syl2anc ( 𝜑 → ∃ 𝑎 ∈ 𝒫 𝐴 ( 𝐹𝑎 ) : 𝑎1-1-onto𝐵 )
40 37 39 r19.29a ( 𝜑 → { 𝑦𝐵𝜒 } ≼ { 𝑥𝐴𝜓 } )