Metamath Proof Explorer


Theorem f1o3d

Description: Describe an implicit one-to-one onto function. (Contributed by Thierry Arnoux, 23-Apr-2017)

Ref Expression
Hypotheses f1o3d.1 ( 𝜑𝐹 = ( 𝑥𝐴𝐶 ) )
f1o3d.2 ( ( 𝜑𝑥𝐴 ) → 𝐶𝐵 )
f1o3d.3 ( ( 𝜑𝑦𝐵 ) → 𝐷𝐴 )
f1o3d.4 ( ( 𝜑 ∧ ( 𝑥𝐴𝑦𝐵 ) ) → ( 𝑥 = 𝐷𝑦 = 𝐶 ) )
Assertion f1o3d ( 𝜑 → ( 𝐹 : 𝐴1-1-onto𝐵 𝐹 = ( 𝑦𝐵𝐷 ) ) )

Proof

Step Hyp Ref Expression
1 f1o3d.1 ( 𝜑𝐹 = ( 𝑥𝐴𝐶 ) )
2 f1o3d.2 ( ( 𝜑𝑥𝐴 ) → 𝐶𝐵 )
3 f1o3d.3 ( ( 𝜑𝑦𝐵 ) → 𝐷𝐴 )
4 f1o3d.4 ( ( 𝜑 ∧ ( 𝑥𝐴𝑦𝐵 ) ) → ( 𝑥 = 𝐷𝑦 = 𝐶 ) )
5 2 ralrimiva ( 𝜑 → ∀ 𝑥𝐴 𝐶𝐵 )
6 eqid ( 𝑥𝐴𝐶 ) = ( 𝑥𝐴𝐶 )
7 6 fnmpt ( ∀ 𝑥𝐴 𝐶𝐵 → ( 𝑥𝐴𝐶 ) Fn 𝐴 )
8 5 7 syl ( 𝜑 → ( 𝑥𝐴𝐶 ) Fn 𝐴 )
9 1 fneq1d ( 𝜑 → ( 𝐹 Fn 𝐴 ↔ ( 𝑥𝐴𝐶 ) Fn 𝐴 ) )
10 8 9 mpbird ( 𝜑𝐹 Fn 𝐴 )
11 3 ralrimiva ( 𝜑 → ∀ 𝑦𝐵 𝐷𝐴 )
12 eqid ( 𝑦𝐵𝐷 ) = ( 𝑦𝐵𝐷 )
13 12 fnmpt ( ∀ 𝑦𝐵 𝐷𝐴 → ( 𝑦𝐵𝐷 ) Fn 𝐵 )
14 11 13 syl ( 𝜑 → ( 𝑦𝐵𝐷 ) Fn 𝐵 )
15 eleq1a ( 𝐶𝐵 → ( 𝑦 = 𝐶𝑦𝐵 ) )
16 2 15 syl ( ( 𝜑𝑥𝐴 ) → ( 𝑦 = 𝐶𝑦𝐵 ) )
17 16 impr ( ( 𝜑 ∧ ( 𝑥𝐴𝑦 = 𝐶 ) ) → 𝑦𝐵 )
18 4 biimpar ( ( ( 𝜑 ∧ ( 𝑥𝐴𝑦𝐵 ) ) ∧ 𝑦 = 𝐶 ) → 𝑥 = 𝐷 )
19 18 exp42 ( 𝜑 → ( 𝑥𝐴 → ( 𝑦𝐵 → ( 𝑦 = 𝐶𝑥 = 𝐷 ) ) ) )
20 19 com34 ( 𝜑 → ( 𝑥𝐴 → ( 𝑦 = 𝐶 → ( 𝑦𝐵𝑥 = 𝐷 ) ) ) )
21 20 imp32 ( ( 𝜑 ∧ ( 𝑥𝐴𝑦 = 𝐶 ) ) → ( 𝑦𝐵𝑥 = 𝐷 ) )
22 17 21 jcai ( ( 𝜑 ∧ ( 𝑥𝐴𝑦 = 𝐶 ) ) → ( 𝑦𝐵𝑥 = 𝐷 ) )
23 eleq1a ( 𝐷𝐴 → ( 𝑥 = 𝐷𝑥𝐴 ) )
24 3 23 syl ( ( 𝜑𝑦𝐵 ) → ( 𝑥 = 𝐷𝑥𝐴 ) )
25 24 impr ( ( 𝜑 ∧ ( 𝑦𝐵𝑥 = 𝐷 ) ) → 𝑥𝐴 )
26 4 biimpa ( ( ( 𝜑 ∧ ( 𝑥𝐴𝑦𝐵 ) ) ∧ 𝑥 = 𝐷 ) → 𝑦 = 𝐶 )
27 26 exp42 ( 𝜑 → ( 𝑥𝐴 → ( 𝑦𝐵 → ( 𝑥 = 𝐷𝑦 = 𝐶 ) ) ) )
28 27 com23 ( 𝜑 → ( 𝑦𝐵 → ( 𝑥𝐴 → ( 𝑥 = 𝐷𝑦 = 𝐶 ) ) ) )
29 28 com34 ( 𝜑 → ( 𝑦𝐵 → ( 𝑥 = 𝐷 → ( 𝑥𝐴𝑦 = 𝐶 ) ) ) )
30 29 imp32 ( ( 𝜑 ∧ ( 𝑦𝐵𝑥 = 𝐷 ) ) → ( 𝑥𝐴𝑦 = 𝐶 ) )
31 25 30 jcai ( ( 𝜑 ∧ ( 𝑦𝐵𝑥 = 𝐷 ) ) → ( 𝑥𝐴𝑦 = 𝐶 ) )
32 22 31 impbida ( 𝜑 → ( ( 𝑥𝐴𝑦 = 𝐶 ) ↔ ( 𝑦𝐵𝑥 = 𝐷 ) ) )
33 32 opabbidv ( 𝜑 → { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) } = { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑦𝐵𝑥 = 𝐷 ) } )
34 df-mpt ( 𝑥𝐴𝐶 ) = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) }
35 1 34 eqtrdi ( 𝜑𝐹 = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) } )
36 35 cnveqd ( 𝜑 𝐹 = { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) } )
37 cnvopab { ⟨ 𝑥 , 𝑦 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) } = { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) }
38 36 37 eqtrdi ( 𝜑 𝐹 = { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑥𝐴𝑦 = 𝐶 ) } )
39 df-mpt ( 𝑦𝐵𝐷 ) = { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑦𝐵𝑥 = 𝐷 ) }
40 39 a1i ( 𝜑 → ( 𝑦𝐵𝐷 ) = { ⟨ 𝑦 , 𝑥 ⟩ ∣ ( 𝑦𝐵𝑥 = 𝐷 ) } )
41 33 38 40 3eqtr4d ( 𝜑 𝐹 = ( 𝑦𝐵𝐷 ) )
42 41 fneq1d ( 𝜑 → ( 𝐹 Fn 𝐵 ↔ ( 𝑦𝐵𝐷 ) Fn 𝐵 ) )
43 14 42 mpbird ( 𝜑 𝐹 Fn 𝐵 )
44 dff1o4 ( 𝐹 : 𝐴1-1-onto𝐵 ↔ ( 𝐹 Fn 𝐴 𝐹 Fn 𝐵 ) )
45 10 43 44 sylanbrc ( 𝜑𝐹 : 𝐴1-1-onto𝐵 )
46 45 41 jca ( 𝜑 → ( 𝐹 : 𝐴1-1-onto𝐵 𝐹 = ( 𝑦𝐵𝐷 ) ) )