Metamath Proof Explorer


Theorem cofuoppf

Description: Composition of opposite functors. (Contributed by Zhi Wang, 26-Nov-2025)

Ref Expression
Hypotheses cofuoppf.k ⊢ φ → G ∘ func F = K
cofuoppf.f ⊢ φ → F ∈ C Func D
cofuoppf.g ⊢ φ → G ∈ D Func E
Assertion cofuoppf Could not format assertion : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 cofuoppf.k ⊢ φ → G ∘ func F = K
2 cofuoppf.f ⊢ φ → F ∈ C Func D
3 cofuoppf.g ⊢ φ → G ∈ D Func E
4 eqid ⊢ oppCat ⁡ C = oppCat ⁡ C
5 eqid ⊢ Base C = Base C
6 4 5 oppcbas ⊢ Base C = Base oppCat ⁡ C
7 eqid ⊢ oppCat ⁡ D = oppCat ⁡ D
8 2 func1st2nd ⊢ φ → 1 st ⁡ F C Func D 2 nd ⁡ F
9 4 7 8 funcoppc ⊢ φ → 1 st ⁡ F oppCat ⁡ C Func oppCat ⁡ D tpos 2 nd ⁡ F
10 eqid ⊢ oppCat ⁡ E = oppCat ⁡ E
11 3 func1st2nd ⊢ φ → 1 st ⁡ G D Func E 2 nd ⁡ G
12 7 10 11 funcoppc ⊢ φ → 1 st ⁡ G oppCat ⁡ D Func oppCat ⁡ E tpos 2 nd ⁡ G
13 6 9 12 cofuval2 ⊢ φ → 1 st ⁡ G tpos 2 nd ⁡ G ∘ func 1 st ⁡ F tpos 2 nd ⁡ F = 1 st ⁡ G ∘ 1 st ⁡ F y ∈ Base C , x ∈ Base C ⟼ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
14 oppfval2 Could not format ( G e. ( D Func E ) -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) : No typesetting found for |- ( G e. ( D Func E ) -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) with typecode |-
15 3 14 syl Could not format ( ph -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` G ) = <. ( 1st ` G ) , tpos ( 2nd ` G ) >. ) with typecode |-
16 oppfval2 Could not format ( F e. ( C Func D ) -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) : No typesetting found for |- ( F e. ( C Func D ) -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) with typecode |-
17 2 16 syl Could not format ( ph -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` F ) = <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) with typecode |-
18 15 17 oveq12d Could not format ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( <. ( 1st ` G ) , tpos ( 2nd ` G ) >. o.func <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) ) : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( <. ( 1st ` G ) , tpos ( 2nd ` G ) >. o.func <. ( 1st ` F ) , tpos ( 2nd ` F ) >. ) ) with typecode |-
19 5 2 3 cofuval ⊢ φ → G ∘ func F = 1 st ⁡ G ∘ 1 st ⁡ F x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y
20 1 19 eqtr3d ⊢ φ → K = 1 st ⁡ G ∘ 1 st ⁡ F x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y
21 2 3 cofucl ⊢ φ → G ∘ func F ∈ C Func E
22 1 21 eqeltrrd ⊢ φ → K ∈ C Func E
23 20 22 oppfval3 Could not format ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , tpos ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , tpos ( x e. ( Base ` C ) , y e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` x ) ( 2nd ` G ) ( ( 1st ` F ) ` y ) ) o. ( x ( 2nd ` F ) y ) ) ) >. ) with typecode |-
24 ovtpos ⊢ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x = 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y
25 ovtpos ⊢ y tpos 2 nd ⁡ F x = x 2 nd ⁡ F y
26 24 25 coeq12i ⊢ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x = 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y
27 26 eqcomi ⊢ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y = 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
28 27 a1i ⊢ x ∈ Base C ∧ y ∈ Base C → 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y = 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
29 28 mpoeq3ia ⊢ x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y = x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
30 29 tposmpo ⊢ tpos x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y = y ∈ Base C , x ∈ Base C ⟼ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
31 30 opeq2i ⊢ 1 st ⁡ G ∘ 1 st ⁡ F tpos x ∈ Base C , y ∈ Base C ⟼ 1 st ⁡ F ⁡ x 2 nd ⁡ G 1 st ⁡ F ⁡ y ∘ x 2 nd ⁡ F y = 1 st ⁡ G ∘ 1 st ⁡ F y ∈ Base C , x ∈ Base C ⟼ 1 st ⁡ F ⁡ y tpos 2 nd ⁡ G 1 st ⁡ F ⁡ x ∘ y tpos 2 nd ⁡ F x
32 23 31 eqtrdi Could not format ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , ( y e. ( Base ` C ) , x e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` y ) tpos ( 2nd ` G ) ( ( 1st ` F ) ` x ) ) o. ( y tpos ( 2nd ` F ) x ) ) ) >. ) : No typesetting found for |- ( ph -> ( oppFunc ` K ) = <. ( ( 1st ` G ) o. ( 1st ` F ) ) , ( y e. ( Base ` C ) , x e. ( Base ` C ) |-> ( ( ( ( 1st ` F ) ` y ) tpos ( 2nd ` G ) ( ( 1st ` F ) ` x ) ) o. ( y tpos ( 2nd ` F ) x ) ) ) >. ) with typecode |-
33 13 18 32 3eqtr4d Could not format ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) : No typesetting found for |- ( ph -> ( ( oppFunc ` G ) o.func ( oppFunc ` F ) ) = ( oppFunc ` K ) ) with typecode |-