Metamath Proof Explorer


Theorem fmptcof2

Description: Composition of two functions expressed as ordered-pair class abstractions. (Contributed by FL, 21-Jun-2012) (Revised by Mario Carneiro, 24-Jul-2014) (Revised by Thierry Arnoux, 10-May-2017)

Ref Expression
Hypotheses fmptcof2.x ⊢ Ⅎ _ x S
fmptcof2.y ⊢ Ⅎ _ y T
fmptcof2.1 ⊢ Ⅎ _ x A
fmptcof2.2 ⊢ Ⅎ _ x B
fmptcof2.3 ⊢ Ⅎ x φ
fmptcof2.4 ⊢ φ → ∀ x ∈ A R ∈ B
fmptcof2.5 ⊢ φ → F = x ∈ A ⟼ R
fmptcof2.6 ⊢ φ → G = y ∈ B ⟼ S
fmptcof2.7 ⊢ y = R → S = T
Assertion fmptcof2 ⊢ φ → G ∘ F = x ∈ A ⟼ T

Proof

Step Hyp Ref Expression
1 fmptcof2.x ⊢ Ⅎ _ x S
2 fmptcof2.y ⊢ Ⅎ _ y T
3 fmptcof2.1 ⊢ Ⅎ _ x A
4 fmptcof2.2 ⊢ Ⅎ _ x B
5 fmptcof2.3 ⊢ Ⅎ x φ
6 fmptcof2.4 ⊢ φ → ∀ x ∈ A R ∈ B
7 fmptcof2.5 ⊢ φ → F = x ∈ A ⟼ R
8 fmptcof2.6 ⊢ φ → G = y ∈ B ⟼ S
9 fmptcof2.7 ⊢ y = R → S = T
10 relco ⊢ Rel ⁡ G ∘ F
11 mptrel ⊢ Rel ⁡ x ∈ A ⟼ T
12 6 r19.21bi ⊢ φ ∧ x ∈ A → R ∈ B
13 eqid ⊢ x ∈ A ⟼ R = x ∈ A ⟼ R
14 5 3 4 12 13 fmptdf2 ⊢ φ → x ∈ A ⟼ R : A ⟶ B
15 7 feq1d ⊢ φ → F : A ⟶ B ↔ x ∈ A ⟼ R : A ⟶ B
16 14 15 mpbird ⊢ φ → F : A ⟶ B
17 16 ffund ⊢ φ → Fun ⁡ F
18 funbrfv ⊢ Fun ⁡ F → z F u → F ⁡ z = u
19 18 imp ⊢ Fun ⁡ F ∧ z F u → F ⁡ z = u
20 17 19 sylan ⊢ φ ∧ z F u → F ⁡ z = u
21 20 eqcomd ⊢ φ ∧ z F u → u = F ⁡ z
22 21 a1d ⊢ φ ∧ z F u → u G w → u = F ⁡ z
23 22 expimpd ⊢ φ → z F u ∧ u G w → u = F ⁡ z
24 23 pm4.71rd ⊢ φ → z F u ∧ u G w ↔ u = F ⁡ z ∧ z F u ∧ u G w
25 24 exbidv ⊢ φ → ∃ u z F u ∧ u G w ↔ ∃ u u = F ⁡ z ∧ z F u ∧ u G w
26 fvex ⊢ F ⁡ z ∈ V
27 breq2 ⊢ u = F ⁡ z → z F u ↔ z F F ⁡ z
28 breq1 ⊢ u = F ⁡ z → u G w ↔ F ⁡ z G w
29 27 28 anbi12d ⊢ u = F ⁡ z → z F u ∧ u G w ↔ z F F ⁡ z ∧ F ⁡ z G w
30 26 29 ceqsexv ⊢ ∃ u u = F ⁡ z ∧ z F u ∧ u G w ↔ z F F ⁡ z ∧ F ⁡ z G w
31 funfvbrb ⊢ Fun ⁡ F → z ∈ dom ⁡ F ↔ z F F ⁡ z
32 17 31 syl ⊢ φ → z ∈ dom ⁡ F ↔ z F F ⁡ z
33 16 fdmd ⊢ φ → dom ⁡ F = A
34 33 eleq2d ⊢ φ → z ∈ dom ⁡ F ↔ z ∈ A
35 32 34 bitr3d ⊢ φ → z F F ⁡ z ↔ z ∈ A
36 7 fveq1d ⊢ φ → F ⁡ z = x ∈ A ⟼ R ⁡ z
37 eqidd ⊢ φ → w = w
38 36 8 37 breq123d ⊢ φ → F ⁡ z G w ↔ x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w
39 35 38 anbi12d ⊢ φ → z F F ⁡ z ∧ F ⁡ z G w ↔ z ∈ A ∧ x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w
40 3 nfcri ⊢ Ⅎ x z ∈ A
41 nffvmpt1 ⊢ Ⅎ _ x x ∈ A ⟼ R ⁡ z
42 4 1 nfmpt ⊢ Ⅎ _ x y ∈ B ⟼ S
43 nfcv ⊢ Ⅎ _ x w
44 41 42 43 nfbr ⊢ Ⅎ x x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w
45 nfcsb1v ⊢ Ⅎ _ x ⦋ z / x⦌ T
46 45 nfeq2 ⊢ Ⅎ x w = ⦋ z / x⦌ T
47 44 46 nfbi ⊢ Ⅎ x x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
48 5 47 nfim ⊢ Ⅎ x φ → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
49 40 48 nfim ⊢ Ⅎ x z ∈ A → φ → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
50 eleq1w ⊢ x = z → x ∈ A ↔ z ∈ A
51 fveq2 ⊢ x = z → x ∈ A ⟼ R ⁡ x = x ∈ A ⟼ R ⁡ z
52 51 breq1d ⊢ x = z → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w
53 csbeq1a ⊢ x = z → T = ⦋ z / x⦌ T
54 53 eqeq2d ⊢ x = z → w = T ↔ w = ⦋ z / x⦌ T
55 52 54 bibi12d ⊢ x = z → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ w = T ↔ x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
56 55 imbi2d ⊢ x = z → φ → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ w = T ↔ φ → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
57 50 56 imbi12d ⊢ x = z → x ∈ A → φ → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ w = T ↔ z ∈ A → φ → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
58 vex ⊢ w ∈ V
59 nfv ⊢ Ⅎ y R ∈ B
60 2 nfeq2 ⊢ Ⅎ y w = T
61 59 60 nfan ⊢ Ⅎ y R ∈ B ∧ w = T
62 simpl ⊢ y = R ∧ u = w → y = R
63 62 eleq1d ⊢ y = R ∧ u = w → y ∈ B ↔ R ∈ B
64 simpr ⊢ y = R ∧ u = w → u = w
65 9 adantr ⊢ y = R ∧ u = w → S = T
66 64 65 eqeq12d ⊢ y = R ∧ u = w → u = S ↔ w = T
67 63 66 anbi12d ⊢ y = R ∧ u = w → y ∈ B ∧ u = S ↔ R ∈ B ∧ w = T
68 df-mpt ⊢ y ∈ B ⟼ S = y u | y ∈ B ∧ u = S
69 61 67 68 brabgaf ⊢ R ∈ B ∧ w ∈ V → R y ∈ B ⟼ S w ↔ R ∈ B ∧ w = T
70 12 58 69 sylancl ⊢ φ ∧ x ∈ A → R y ∈ B ⟼ S w ↔ R ∈ B ∧ w = T
71 simpr ⊢ φ ∧ x ∈ A → x ∈ A
72 3 fvmpt2f ⊢ x ∈ A ∧ R ∈ B → x ∈ A ⟼ R ⁡ x = R
73 71 12 72 syl2anc ⊢ φ ∧ x ∈ A → x ∈ A ⟼ R ⁡ x = R
74 73 breq1d ⊢ φ ∧ x ∈ A → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ R y ∈ B ⟼ S w
75 12 biantrurd ⊢ φ ∧ x ∈ A → w = T ↔ R ∈ B ∧ w = T
76 70 74 75 3bitr4d ⊢ φ ∧ x ∈ A → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ w = T
77 76 expcom ⊢ x ∈ A → φ → x ∈ A ⟼ R ⁡ x y ∈ B ⟼ S w ↔ w = T
78 49 57 77 chvarfv ⊢ z ∈ A → φ → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
79 78 impcom ⊢ φ ∧ z ∈ A → x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ w = ⦋ z / x⦌ T
80 79 pm5.32da ⊢ φ → z ∈ A ∧ x ∈ A ⟼ R ⁡ z y ∈ B ⟼ S w ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
81 39 80 bitrd ⊢ φ → z F F ⁡ z ∧ F ⁡ z G w ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
82 30 81 bitrid ⊢ φ → ∃ u u = F ⁡ z ∧ z F u ∧ u G w ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
83 25 82 bitrd ⊢ φ → ∃ u z F u ∧ u G w ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
84 vex ⊢ z ∈ V
85 84 58 opelco ⊢ z w ∈ G ∘ F ↔ ∃ u z F u ∧ u G w
86 df-mpt ⊢ x ∈ A ⟼ T = x v | x ∈ A ∧ v = T
87 86 eleq2i ⊢ z w ∈ x ∈ A ⟼ T ↔ z w ∈ x v | x ∈ A ∧ v = T
88 45 nfeq2 ⊢ Ⅎ x v = ⦋ z / x⦌ T
89 40 88 nfan ⊢ Ⅎ x z ∈ A ∧ v = ⦋ z / x⦌ T
90 nfv ⊢ Ⅎ v z ∈ A ∧ w = ⦋ z / x⦌ T
91 53 eqeq2d ⊢ x = z → v = T ↔ v = ⦋ z / x⦌ T
92 50 91 anbi12d ⊢ x = z → x ∈ A ∧ v = T ↔ z ∈ A ∧ v = ⦋ z / x⦌ T
93 eqeq1 ⊢ v = w → v = ⦋ z / x⦌ T ↔ w = ⦋ z / x⦌ T
94 93 anbi2d ⊢ v = w → z ∈ A ∧ v = ⦋ z / x⦌ T ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
95 89 90 84 58 92 94 opelopabf ⊢ z w ∈ x v | x ∈ A ∧ v = T ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
96 87 95 bitri ⊢ z w ∈ x ∈ A ⟼ T ↔ z ∈ A ∧ w = ⦋ z / x⦌ T
97 83 85 96 3bitr4g ⊢ φ → z w ∈ G ∘ F ↔ z w ∈ x ∈ A ⟼ T
98 10 11 97 eqrelrdv ⊢ φ → G ∘ F = x ∈ A ⟼ T