Metamath Proof Explorer


Theorem uncf

Description: Functional property of uncurrying. (Contributed by Brendan Leahy, 2-Jun-2021)

Ref Expression
Assertion uncf ⊢ F : A ⟶ C B → uncurry F : A × B ⟶ C

Proof

Step Hyp Ref Expression
1 ffvelcdm ⊢ F : A ⟶ C B ∧ x ∈ A → F ⁡ x ∈ C B
2 elmapi ⊢ F ⁡ x ∈ C B → F ⁡ x : B ⟶ C
3 1 2 syl ⊢ F : A ⟶ C B ∧ x ∈ A → F ⁡ x : B ⟶ C
4 3 ffvelcdmda ⊢ F : A ⟶ C B ∧ x ∈ A ∧ y ∈ B → F ⁡ x ⁡ y ∈ C
5 4 anasss ⊢ F : A ⟶ C B ∧ x ∈ A ∧ y ∈ B → F ⁡ x ⁡ y ∈ C
6 5 ralrimivva ⊢ F : A ⟶ C B → ∀ x ∈ A ∀ y ∈ B F ⁡ x ⁡ y ∈ C
7 df-unc ⊢ uncurry F = x y z | y F ⁡ x z
8 df-br ⊢ y F ⁡ x z ↔ y z ∈ F ⁡ x
9 elfvdm ⊢ y z ∈ F ⁡ x → x ∈ dom ⁡ F
10 8 9 sylbi ⊢ y F ⁡ x z → x ∈ dom ⁡ F
11 fdm ⊢ F : A ⟶ C B → dom ⁡ F = A
12 11 eleq2d ⊢ F : A ⟶ C B → x ∈ dom ⁡ F ↔ x ∈ A
13 10 12 imbitrid ⊢ F : A ⟶ C B → y F ⁡ x z → x ∈ A
14 13 pm4.71rd ⊢ F : A ⟶ C B → y F ⁡ x z ↔ x ∈ A ∧ y F ⁡ x z
15 elmapfun ⊢ F ⁡ x ∈ C B → Fun ⁡ F ⁡ x
16 funbrfv2b ⊢ Fun ⁡ F ⁡ x → y F ⁡ x z ↔ y ∈ dom ⁡ F ⁡ x ∧ F ⁡ x ⁡ y = z
17 1 15 16 3syl ⊢ F : A ⟶ C B ∧ x ∈ A → y F ⁡ x z ↔ y ∈ dom ⁡ F ⁡ x ∧ F ⁡ x ⁡ y = z
18 fdm ⊢ F ⁡ x : B ⟶ C → dom ⁡ F ⁡ x = B
19 1 2 18 3syl ⊢ F : A ⟶ C B ∧ x ∈ A → dom ⁡ F ⁡ x = B
20 19 eleq2d ⊢ F : A ⟶ C B ∧ x ∈ A → y ∈ dom ⁡ F ⁡ x ↔ y ∈ B
21 eqcom ⊢ F ⁡ x ⁡ y = z ↔ z = F ⁡ x ⁡ y
22 21 a1i ⊢ F : A ⟶ C B ∧ x ∈ A → F ⁡ x ⁡ y = z ↔ z = F ⁡ x ⁡ y
23 20 22 anbi12d ⊢ F : A ⟶ C B ∧ x ∈ A → y ∈ dom ⁡ F ⁡ x ∧ F ⁡ x ⁡ y = z ↔ y ∈ B ∧ z = F ⁡ x ⁡ y
24 17 23 bitrd ⊢ F : A ⟶ C B ∧ x ∈ A → y F ⁡ x z ↔ y ∈ B ∧ z = F ⁡ x ⁡ y
25 24 pm5.32da ⊢ F : A ⟶ C B → x ∈ A ∧ y F ⁡ x z ↔ x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
26 14 25 bitrd ⊢ F : A ⟶ C B → y F ⁡ x z ↔ x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
27 anass ⊢ x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y ↔ x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
28 26 27 bitr4di ⊢ F : A ⟶ C B → y F ⁡ x z ↔ x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
29 28 oprabbidv ⊢ F : A ⟶ C B → x y z | y F ⁡ x z = x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
30 7 29 eqtrid ⊢ F : A ⟶ C B → uncurry F = x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
31 30 feq1d ⊢ F : A ⟶ C B → uncurry F : A × B ⟶ C ↔ x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y : A × B ⟶ C
32 df-mpo ⊢ x ∈ A , y ∈ B ⟼ F ⁡ x ⁡ y = x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y
33 32 eqcomi ⊢ x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y = x ∈ A , y ∈ B ⟼ F ⁡ x ⁡ y
34 33 fmpo ⊢ ∀ x ∈ A ∀ y ∈ B F ⁡ x ⁡ y ∈ C ↔ x y z | x ∈ A ∧ y ∈ B ∧ z = F ⁡ x ⁡ y : A × B ⟶ C
35 31 34 bitr4di ⊢ F : A ⟶ C B → uncurry F : A × B ⟶ C ↔ ∀ x ∈ A ∀ y ∈ B F ⁡ x ⁡ y ∈ C
36 6 35 mpbird ⊢ F : A ⟶ C B → uncurry F : A × B ⟶ C