Metamath Proof Explorer


Theorem estrcco

Description: Composition in the category of extensible structures. (Contributed by AV, 7-Mar-2020)

Ref Expression
Hypotheses estrcbas.c ⊢ C = ExtStrCat ⁡ U
estrcbas.u ⊢ φ → U ∈ V
estrcco.o ⊢ · ˙ = comp ⁡ C
estrcco.x ⊢ φ → X ∈ U
estrcco.y ⊢ φ → Y ∈ U
estrcco.z ⊢ φ → Z ∈ U
estrcco.a ⊢ A = Base X
estrcco.b ⊢ B = Base Y
estrcco.d ⊢ D = Base Z
estrcco.f ⊢ φ → F : A ⟶ B
estrcco.g ⊢ φ → G : B ⟶ D
Assertion estrcco ⊢ φ → G X Y · ˙ Z F = G ∘ F

Proof

Step Hyp Ref Expression
1 estrcbas.c ⊢ C = ExtStrCat ⁡ U
2 estrcbas.u ⊢ φ → U ∈ V
3 estrcco.o ⊢ · ˙ = comp ⁡ C
4 estrcco.x ⊢ φ → X ∈ U
5 estrcco.y ⊢ φ → Y ∈ U
6 estrcco.z ⊢ φ → Z ∈ U
7 estrcco.a ⊢ A = Base X
8 estrcco.b ⊢ B = Base Y
9 estrcco.d ⊢ D = Base Z
10 estrcco.f ⊢ φ → F : A ⟶ B
11 estrcco.g ⊢ φ → G : B ⟶ D
12 1 2 3 estrccofval ⊢ φ → · ˙ = v ∈ U × U , z ∈ U ⟼ g ∈ Base z Base 2 nd ⁡ v , f ∈ Base 2 nd ⁡ v Base 1 st ⁡ v ⟼ g ∘ f
13 fveq2 ⊢ z = Z → Base z = Base Z
14 13 adantl ⊢ v = X Y ∧ z = Z → Base z = Base Z
15 14 adantl ⊢ φ ∧ v = X Y ∧ z = Z → Base z = Base Z
16 simprl ⊢ φ ∧ v = X Y ∧ z = Z → v = X Y
17 16 fveq2d ⊢ φ ∧ v = X Y ∧ z = Z → 2 nd ⁡ v = 2 nd ⁡ X Y
18 op2ndg ⊢ X ∈ U ∧ Y ∈ U → 2 nd ⁡ X Y = Y
19 4 5 18 syl2anc ⊢ φ → 2 nd ⁡ X Y = Y
20 19 adantr ⊢ φ ∧ v = X Y ∧ z = Z → 2 nd ⁡ X Y = Y
21 17 20 eqtrd ⊢ φ ∧ v = X Y ∧ z = Z → 2 nd ⁡ v = Y
22 21 fveq2d ⊢ φ ∧ v = X Y ∧ z = Z → Base 2 nd ⁡ v = Base Y
23 15 22 oveq12d ⊢ φ ∧ v = X Y ∧ z = Z → Base z Base 2 nd ⁡ v = Base Z Base Y
24 16 fveq2d ⊢ φ ∧ v = X Y ∧ z = Z → 1 st ⁡ v = 1 st ⁡ X Y
25 24 fveq2d ⊢ φ ∧ v = X Y ∧ z = Z → Base 1 st ⁡ v = Base 1 st ⁡ X Y
26 op1stg ⊢ X ∈ U ∧ Y ∈ U → 1 st ⁡ X Y = X
27 4 5 26 syl2anc ⊢ φ → 1 st ⁡ X Y = X
28 27 fveq2d ⊢ φ → Base 1 st ⁡ X Y = Base X
29 28 adantr ⊢ φ ∧ v = X Y ∧ z = Z → Base 1 st ⁡ X Y = Base X
30 25 29 eqtrd ⊢ φ ∧ v = X Y ∧ z = Z → Base 1 st ⁡ v = Base X
31 22 30 oveq12d ⊢ φ ∧ v = X Y ∧ z = Z → Base 2 nd ⁡ v Base 1 st ⁡ v = Base Y Base X
32 eqidd ⊢ φ ∧ v = X Y ∧ z = Z → g ∘ f = g ∘ f
33 23 31 32 mpoeq123dv ⊢ φ ∧ v = X Y ∧ z = Z → g ∈ Base z Base 2 nd ⁡ v , f ∈ Base 2 nd ⁡ v Base 1 st ⁡ v ⟼ g ∘ f = g ∈ Base Z Base Y , f ∈ Base Y Base X ⟼ g ∘ f
34 4 5 opelxpd ⊢ φ → X Y ∈ U × U
35 ovex ⊢ Base Z Base Y ∈ V
36 ovex ⊢ Base Y Base X ∈ V
37 35 36 mpoex ⊢ g ∈ Base Z Base Y , f ∈ Base Y Base X ⟼ g ∘ f ∈ V
38 37 a1i ⊢ φ → g ∈ Base Z Base Y , f ∈ Base Y Base X ⟼ g ∘ f ∈ V
39 12 33 34 6 38 ovmpod ⊢ φ → X Y · ˙ Z = g ∈ Base Z Base Y , f ∈ Base Y Base X ⟼ g ∘ f
40 simpl ⊢ g = G ∧ f = F → g = G
41 simpr ⊢ g = G ∧ f = F → f = F
42 40 41 coeq12d ⊢ g = G ∧ f = F → g ∘ f = G ∘ F
43 42 adantl ⊢ φ ∧ g = G ∧ f = F → g ∘ f = G ∘ F
44 8 a1i ⊢ φ → B = Base Y
45 44 eqcomd ⊢ φ → Base Y = B
46 9 a1i ⊢ φ → D = Base Z
47 46 eqcomd ⊢ φ → Base Z = D
48 45 47 feq23d ⊢ φ → G : Base Y ⟶ Base Z ↔ G : B ⟶ D
49 11 48 mpbird ⊢ φ → G : Base Y ⟶ Base Z
50 fvexd ⊢ φ → Base Z ∈ V
51 fvexd ⊢ φ → Base Y ∈ V
52 50 51 elmapd ⊢ φ → G ∈ Base Z Base Y ↔ G : Base Y ⟶ Base Z
53 49 52 mpbird ⊢ φ → G ∈ Base Z Base Y
54 7 a1i ⊢ φ → A = Base X
55 54 eqcomd ⊢ φ → Base X = A
56 55 45 feq23d ⊢ φ → F : Base X ⟶ Base Y ↔ F : A ⟶ B
57 10 56 mpbird ⊢ φ → F : Base X ⟶ Base Y
58 fvexd ⊢ φ → Base X ∈ V
59 51 58 elmapd ⊢ φ → F ∈ Base Y Base X ↔ F : Base X ⟶ Base Y
60 57 59 mpbird ⊢ φ → F ∈ Base Y Base X
61 coexg ⊢ G ∈ Base Z Base Y ∧ F ∈ Base Y Base X → G ∘ F ∈ V
62 53 60 61 syl2anc ⊢ φ → G ∘ F ∈ V
63 39 43 53 60 62 ovmpod ⊢ φ → G X Y · ˙ Z F = G ∘ F