Metamath Proof Explorer


Theorem fmpoco

Description: Composition of two functions. Variation of fmptco when the second function has two arguments. (Contributed by Mario Carneiro, 8-Feb-2015)

Ref Expression
Hypotheses fmpoco.1 ⊢ φ ∧ x ∈ A ∧ y ∈ B → R ∈ C
fmpoco.2 ⊢ φ → F = x ∈ A , y ∈ B ⟼ R
fmpoco.3 ⊢ φ → G = z ∈ C ⟼ S
fmpoco.4 ⊢ z = R → S = T
Assertion fmpoco ⊢ φ → G ∘ F = x ∈ A , y ∈ B ⟼ T

Proof

Step Hyp Ref Expression
1 fmpoco.1 ⊢ φ ∧ x ∈ A ∧ y ∈ B → R ∈ C
2 fmpoco.2 ⊢ φ → F = x ∈ A , y ∈ B ⟼ R
3 fmpoco.3 ⊢ φ → G = z ∈ C ⟼ S
4 fmpoco.4 ⊢ z = R → S = T
5 1 ralrimivva ⊢ φ → ∀ x ∈ A ∀ y ∈ B R ∈ C
6 eqid ⊢ x ∈ A , y ∈ B ⟼ R = x ∈ A , y ∈ B ⟼ R
7 6 fmpo ⊢ ∀ x ∈ A ∀ y ∈ B R ∈ C ↔ x ∈ A , y ∈ B ⟼ R : A × B ⟶ C
8 5 7 sylib ⊢ φ → x ∈ A , y ∈ B ⟼ R : A × B ⟶ C
9 nfcv ⊢ Ⅎ _ u R
10 nfcv ⊢ Ⅎ _ v R
11 nfcv ⊢ Ⅎ _ x v
12 nfcsb1v ⊢ Ⅎ _ x ⦋ u / x⦌ R
13 11 12 nfcsbw ⊢ Ⅎ _ x ⦋ v / y⦌ ⦋ u / x⦌ R
14 nfcsb1v ⊢ Ⅎ _ y ⦋ v / y⦌ ⦋ u / x⦌ R
15 csbeq1a ⊢ x = u → R = ⦋ u / x⦌ R
16 csbeq1a ⊢ y = v → ⦋ u / x⦌ R = ⦋ v / y⦌ ⦋ u / x⦌ R
17 15 16 sylan9eq ⊢ x = u ∧ y = v → R = ⦋ v / y⦌ ⦋ u / x⦌ R
18 9 10 13 14 17 cbvmpo ⊢ x ∈ A , y ∈ B ⟼ R = u ∈ A , v ∈ B ⟼ ⦋ v / y⦌ ⦋ u / x⦌ R
19 vex ⊢ u ∈ V
20 vex ⊢ v ∈ V
21 19 20 op2ndd ⊢ w = u v → 2 nd ⁡ w = v
22 21 csbeq1d ⊢ w = u v → ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R = ⦋ v / y⦌ ⦋ 1 st ⁡ w / x⦌ R
23 19 20 op1std ⊢ w = u v → 1 st ⁡ w = u
24 23 csbeq1d ⊢ w = u v → ⦋ 1 st ⁡ w / x⦌ R = ⦋ u / x⦌ R
25 24 csbeq2dv ⊢ w = u v → ⦋ v / y⦌ ⦋ 1 st ⁡ w / x⦌ R = ⦋ v / y⦌ ⦋ u / x⦌ R
26 22 25 eqtrd ⊢ w = u v → ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R = ⦋ v / y⦌ ⦋ u / x⦌ R
27 26 mpompt ⊢ w ∈ A × B ⟼ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R = u ∈ A , v ∈ B ⟼ ⦋ v / y⦌ ⦋ u / x⦌ R
28 18 27 eqtr4i ⊢ x ∈ A , y ∈ B ⟼ R = w ∈ A × B ⟼ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R
29 28 fmpt ⊢ ∀ w ∈ A × B ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R ∈ C ↔ x ∈ A , y ∈ B ⟼ R : A × B ⟶ C
30 8 29 sylibr ⊢ φ → ∀ w ∈ A × B ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R ∈ C
31 2 28 eqtrdi ⊢ φ → F = w ∈ A × B ⟼ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R
32 30 31 3 fmptcos ⊢ φ → G ∘ F = w ∈ A × B ⟼ ⦋ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R / z⦌ S
33 26 csbeq1d ⊢ w = u v → ⦋ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R / z⦌ S = ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
34 33 mpompt ⊢ w ∈ A × B ⟼ ⦋ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R / z⦌ S = u ∈ A , v ∈ B ⟼ ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
35 nfcv ⊢ Ⅎ _ u ⦋ R / z⦌ S
36 nfcv ⊢ Ⅎ _ v ⦋ R / z⦌ S
37 nfcv ⊢ Ⅎ _ x S
38 13 37 nfcsbw ⊢ Ⅎ _ x ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
39 nfcv ⊢ Ⅎ _ y S
40 14 39 nfcsbw ⊢ Ⅎ _ y ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
41 17 csbeq1d ⊢ x = u ∧ y = v → ⦋ R / z⦌ S = ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
42 35 36 38 40 41 cbvmpo ⊢ x ∈ A , y ∈ B ⟼ ⦋ R / z⦌ S = u ∈ A , v ∈ B ⟼ ⦋ ⦋ v / y⦌ ⦋ u / x⦌ R / z⦌ S
43 34 42 eqtr4i ⊢ w ∈ A × B ⟼ ⦋ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R / z⦌ S = x ∈ A , y ∈ B ⟼ ⦋ R / z⦌ S
44 1 3impb ⊢ φ ∧ x ∈ A ∧ y ∈ B → R ∈ C
45 nfcvd ⊢ R ∈ C → Ⅎ _ z T
46 45 4 csbiegf ⊢ R ∈ C → ⦋ R / z⦌ S = T
47 44 46 syl ⊢ φ ∧ x ∈ A ∧ y ∈ B → ⦋ R / z⦌ S = T
48 47 mpoeq3dva ⊢ φ → x ∈ A , y ∈ B ⟼ ⦋ R / z⦌ S = x ∈ A , y ∈ B ⟼ T
49 43 48 eqtrid ⊢ φ → w ∈ A × B ⟼ ⦋ ⦋ 2 nd ⁡ w / y⦌ ⦋ 1 st ⁡ w / x⦌ R / z⦌ S = x ∈ A , y ∈ B ⟼ T
50 32 49 eqtrd ⊢ φ → G ∘ F = x ∈ A , y ∈ B ⟼ T