Metamath Proof Explorer


Theorem fompt

Description: Express being onto for a mapping operation. (Contributed by Glauco Siliprandi, 17-Aug-2020)

Ref Expression
Hypothesis fompt.1 𝐹 = ( 𝑥𝐴𝐶 )
Assertion fompt ( 𝐹 : 𝐴onto𝐵 ↔ ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) )

Proof

Step Hyp Ref Expression
1 fompt.1 𝐹 = ( 𝑥𝐴𝐶 )
2 fof ( 𝐹 : 𝐴onto𝐵𝐹 : 𝐴𝐵 )
3 1 fmpt ( ∀ 𝑥𝐴 𝐶𝐵𝐹 : 𝐴𝐵 )
4 2 3 sylibr ( 𝐹 : 𝐴onto𝐵 → ∀ 𝑥𝐴 𝐶𝐵 )
5 nfmpt1 𝑥 ( 𝑥𝐴𝐶 )
6 1 5 nfcxfr 𝑥 𝐹
7 6 foelrnf ( ( 𝐹 : 𝐴onto𝐵𝑦𝐵 ) → ∃ 𝑥𝐴 𝑦 = ( 𝐹𝑥 ) )
8 nfcv 𝑥 𝐴
9 nfcv 𝑥 𝐵
10 6 8 9 nffo 𝑥 𝐹 : 𝐴onto𝐵
11 simpr ( ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) ∧ 𝑦 = ( 𝐹𝑥 ) ) → 𝑦 = ( 𝐹𝑥 ) )
12 simpr ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) → 𝑥𝐴 )
13 4 r19.21bi ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) → 𝐶𝐵 )
14 1 fvmpt2 ( ( 𝑥𝐴𝐶𝐵 ) → ( 𝐹𝑥 ) = 𝐶 )
15 12 13 14 syl2anc ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) → ( 𝐹𝑥 ) = 𝐶 )
16 15 adantr ( ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) ∧ 𝑦 = ( 𝐹𝑥 ) ) → ( 𝐹𝑥 ) = 𝐶 )
17 11 16 eqtrd ( ( ( 𝐹 : 𝐴onto𝐵𝑥𝐴 ) ∧ 𝑦 = ( 𝐹𝑥 ) ) → 𝑦 = 𝐶 )
18 17 exp31 ( 𝐹 : 𝐴onto𝐵 → ( 𝑥𝐴 → ( 𝑦 = ( 𝐹𝑥 ) → 𝑦 = 𝐶 ) ) )
19 10 18 reximdai ( 𝐹 : 𝐴onto𝐵 → ( ∃ 𝑥𝐴 𝑦 = ( 𝐹𝑥 ) → ∃ 𝑥𝐴 𝑦 = 𝐶 ) )
20 19 adantr ( ( 𝐹 : 𝐴onto𝐵𝑦𝐵 ) → ( ∃ 𝑥𝐴 𝑦 = ( 𝐹𝑥 ) → ∃ 𝑥𝐴 𝑦 = 𝐶 ) )
21 7 20 mpd ( ( 𝐹 : 𝐴onto𝐵𝑦𝐵 ) → ∃ 𝑥𝐴 𝑦 = 𝐶 )
22 21 ralrimiva ( 𝐹 : 𝐴onto𝐵 → ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 )
23 4 22 jca ( 𝐹 : 𝐴onto𝐵 → ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) )
24 3 biimpi ( ∀ 𝑥𝐴 𝐶𝐵𝐹 : 𝐴𝐵 )
25 24 adantr ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) → 𝐹 : 𝐴𝐵 )
26 nfv 𝑦𝑥𝐴 𝐶𝐵
27 nfra1 𝑦𝑦𝐵𝑥𝐴 𝑦 = 𝐶
28 26 27 nfan 𝑦 ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 )
29 simpll ( ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) ∧ 𝑦𝐵 ) → ∀ 𝑥𝐴 𝐶𝐵 )
30 rspa ( ( ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶𝑦𝐵 ) → ∃ 𝑥𝐴 𝑦 = 𝐶 )
31 30 adantll ( ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) ∧ 𝑦𝐵 ) → ∃ 𝑥𝐴 𝑦 = 𝐶 )
32 nfra1 𝑥𝑥𝐴 𝐶𝐵
33 simp3 ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴𝑦 = 𝐶 ) → 𝑦 = 𝐶 )
34 simpr ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴 ) → 𝑥𝐴 )
35 rspa ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴 ) → 𝐶𝐵 )
36 34 35 14 syl2anc ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴 ) → ( 𝐹𝑥 ) = 𝐶 )
37 36 eqcomd ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴 ) → 𝐶 = ( 𝐹𝑥 ) )
38 37 3adant3 ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴𝑦 = 𝐶 ) → 𝐶 = ( 𝐹𝑥 ) )
39 33 38 eqtrd ( ( ∀ 𝑥𝐴 𝐶𝐵𝑥𝐴𝑦 = 𝐶 ) → 𝑦 = ( 𝐹𝑥 ) )
40 39 3exp ( ∀ 𝑥𝐴 𝐶𝐵 → ( 𝑥𝐴 → ( 𝑦 = 𝐶𝑦 = ( 𝐹𝑥 ) ) ) )
41 32 40 reximdai ( ∀ 𝑥𝐴 𝐶𝐵 → ( ∃ 𝑥𝐴 𝑦 = 𝐶 → ∃ 𝑥𝐴 𝑦 = ( 𝐹𝑥 ) ) )
42 29 31 41 sylc ( ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) ∧ 𝑦𝐵 ) → ∃ 𝑥𝐴 𝑦 = ( 𝐹𝑥 ) )
43 28 42 ralrimia ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) → ∀ 𝑦𝐵𝑥𝐴 𝑦 = ( 𝐹𝑥 ) )
44 6 dffo3f ( 𝐹 : 𝐴onto𝐵 ↔ ( 𝐹 : 𝐴𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = ( 𝐹𝑥 ) ) )
45 25 43 44 sylanbrc ( ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) → 𝐹 : 𝐴onto𝐵 )
46 23 45 impbii ( 𝐹 : 𝐴onto𝐵 ↔ ( ∀ 𝑥𝐴 𝐶𝐵 ∧ ∀ 𝑦𝐵𝑥𝐴 𝑦 = 𝐶 ) )